@@ -629,15 +629,13 @@ def escape_for_makefile(fpath):
629
629
def generate_js (data_target , data_files , metadata ):
630
630
# emcc will add this to the output itself, so it is only needed for
631
631
# standalone calls
632
- ret = ''
633
- if not options .from_emcc :
632
+ if options .from_emcc :
633
+ ret = ''
634
+ else :
634
635
if options .export_es6 :
635
- if options .support_node :
636
- ret += 'import { createRequire } from \' module\' ;\n \n '
637
- ret += '''export default function loadDataFile(Module) {
638
- return new Promise((loadDataResolve, loadDataReject) => {'''
636
+ ret = 'export default async function loadDataFile(Module) {\n '
639
637
else :
640
- ret + = '''
638
+ ret = '''
641
639
var Module = typeof %(EXPORT_NAME)s != 'undefined' ? %(EXPORT_NAME)s : {};\n ''' % {"EXPORT_NAME" : options .export_name }
642
640
643
641
ret += '''
@@ -656,18 +654,23 @@ def generate_js(data_target, data_files, metadata):
656
654
657
655
if options .support_node :
658
656
ret += " var isNode = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';\n "
657
+
658
+ if options .support_node and options .export_es6 :
659
+ ret += '''if (isNode) {
660
+ const { createRequire } = await import('module');
661
+ /** @suppress{duplicate} */
662
+ var require = createRequire(import.meta.url);
663
+ }\n '''
664
+
665
+ if options .export_es6 :
666
+ ret += 'return new Promise((loadDataResolve, loadDataReject) => {\n '
659
667
ret += ' function loadPackage(metadata) {\n '
660
668
661
669
code = '''
662
670
function assert(check, msg) {
663
671
if (!check) throw msg + new Error().stack;
664
672
}\n '''
665
673
666
- if options .support_node and options .export_es6 :
667
- ret += '''if (isNode) {
668
- var require = createRequire(import.meta.url);
669
- }'''
670
-
671
674
# Set up folders
672
675
partial_dirs = []
673
676
for file_ in data_files :
0 commit comments