You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					65 lines
				
				1.8 KiB
			
		
		
			
		
	
	
					65 lines
				
				1.8 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								/* eslint-disable import/no-extraneous-dependencies */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import fs from "fs";
							 | 
						||
| 
								 | 
							
								import { createRequire } from "module";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const [parse, generate] = await Promise.all([
							 | 
						||
| 
								 | 
							
								  import("@babel/parser").then(ns => ns.parse),
							 | 
						||
| 
								 | 
							
								  import("@babel/generator").then(ns => ns.default.default || ns.default),
							 | 
						||
| 
								 | 
							
								]).catch(error =>
							 | 
						||
| 
								 | 
							
								  Promise.reject(
							 | 
						||
| 
								 | 
							
								    new Error(
							 | 
						||
| 
								 | 
							
								      "Before running generate-helpers.js you must compile @babel/parser and @babel/generator.",
							 | 
						||
| 
								 | 
							
								      { cause: error }
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								  )
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const REGENERATOR_RUNTIME_IN_FILE = fs.readFileSync(
							 | 
						||
| 
								 | 
							
								  createRequire(import.meta.url).resolve("regenerator-runtime"),
							 | 
						||
| 
								 | 
							
								  "utf8"
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const MIN_VERSION = "7.18.0";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const HEADER = `/* @minVersion ${MIN_VERSION} */
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * This file is auto-generated! Do not modify it directly.
							 | 
						||
| 
								 | 
							
								 * To re-generate, update the regenerator-runtime dependency of
							 | 
						||
| 
								 | 
							
								 * @babel/helpers and run 'yarn gulp generate-runtime-helpers'.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* eslint-disable */
							 | 
						||
| 
								 | 
							
								`;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const COPYRIGHT = `/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */`;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default function generateRegeneratorRuntimeHelper() {
							 | 
						||
| 
								 | 
							
								  const ast = parse(REGENERATOR_RUNTIME_IN_FILE, { sourceType: "script" });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  const factoryFunction = ast.program.body[0].declarations[0].init.callee;
							 | 
						||
| 
								 | 
							
								  factoryFunction.type = "FunctionDeclaration";
							 | 
						||
| 
								 | 
							
								  factoryFunction.id = { type: "Identifier", name: "_regeneratorRuntime" };
							 | 
						||
| 
								 | 
							
								  factoryFunction.params = [];
							 | 
						||
| 
								 | 
							
								  factoryFunction.body.body.unshift(
							 | 
						||
| 
								 | 
							
								    ...stmts(`
							 | 
						||
| 
								 | 
							
								      ${COPYRIGHT}
							 | 
						||
| 
								 | 
							
								      _regeneratorRuntime = function () { return exports; };
							 | 
						||
| 
								 | 
							
								      var exports = {};
							 | 
						||
| 
								 | 
							
								    `)
							 | 
						||
| 
								 | 
							
								  );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  const { code } = generate({
							 | 
						||
| 
								 | 
							
								    type: "ExportDefaultDeclaration",
							 | 
						||
| 
								 | 
							
								    declaration: factoryFunction,
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return HEADER + code;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function stmts(code) {
							 | 
						||
| 
								 | 
							
								  return parse(`function _() { ${code} }`, {
							 | 
						||
| 
								 | 
							
								    sourceType: "script",
							 | 
						||
| 
								 | 
							
								  }).program.body[0].body.body;
							 | 
						||
| 
								 | 
							
								}
							 |