| 79 | } |
| 80 | |
| 81 | function toCjs(code, exportsObjName, exports) { |
| 82 | code = code.replace(/^(\s*)export\s+default\s+/m, (s, before) => { |
| 83 | exports.default = true; |
| 84 | return `${before}${exportsObjName}.default=`; |
| 85 | }); |
| 86 | code = code.replace(/^(\s*)export\s+((?:async\s*)?function(?:\s*\*)?|const|let|var)(\s+)([a-zA-Z$_][a-zA-Z0-9$_]*)/mg, (s, before, type, ws, name) => { |
| 87 | exports[name] = true; |
| 88 | return `${before}${exportsObjName}.${name}=${type}${ws}${name}`; |
| 89 | }); |
| 90 | return `var ${exportsObjName}={};\n${code}\n${exportsObjName};`; |
| 91 | } |