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; | ||
|  | } |