simple-squiggle

A restricted subset of Squiggle
Log | Files | Refs | README

CompatGetDefaultExportRuntimeModule.js (1066B)


      1 /*
      2 	MIT License http://www.opensource.org/licenses/mit-license.php
      3 */
      4 
      5 "use strict";
      6 
      7 const RuntimeGlobals = require("../RuntimeGlobals");
      8 const Template = require("../Template");
      9 const HelperRuntimeModule = require("./HelperRuntimeModule");
     10 
     11 class CompatGetDefaultExportRuntimeModule extends HelperRuntimeModule {
     12 	constructor() {
     13 		super("compat get default export");
     14 	}
     15 
     16 	/**
     17 	 * @returns {string} runtime code
     18 	 */
     19 	generate() {
     20 		const { runtimeTemplate } = this.compilation;
     21 		const fn = RuntimeGlobals.compatGetDefaultExport;
     22 		return Template.asString([
     23 			"// getDefaultExport function for compatibility with non-harmony modules",
     24 			`${fn} = ${runtimeTemplate.basicFunction("module", [
     25 				"var getter = module && module.__esModule ?",
     26 				Template.indent([
     27 					`${runtimeTemplate.returningFunction("module['default']")} :`,
     28 					`${runtimeTemplate.returningFunction("module")};`
     29 				]),
     30 				`${RuntimeGlobals.definePropertyGetters}(getter, { a: getter });`,
     31 				"return getter;"
     32 			])};`
     33 		]);
     34 	}
     35 }
     36 
     37 module.exports = CompatGetDefaultExportRuntimeModule;