ts-swc-transform 1.8.2 → 1.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,14 +14,12 @@ var _installmodulelinked = /*#__PURE__*/ _interop_require_default(require("insta
14
14
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
15
15
  var _resolve = /*#__PURE__*/ _interop_require_default(require("resolve"));
16
16
  var _resolveoncecb = /*#__PURE__*/ _interop_require_default(require("resolve-once-cb"));
17
- var _lazycjs = /*#__PURE__*/ _interop_require_default(require("./lazy.js"));
18
17
  function _interop_require_default(obj) {
19
18
  return obj && obj.__esModule ? obj : {
20
19
  default: obj
21
20
  };
22
21
  }
23
- var swc = (0, _lazycjs.default)('@swc/core');
24
- function installBindings(callback) {
22
+ function installSWCBindings(callback) {
25
23
  var swcPackagePath = _resolve.default.sync('@swc/core/package.json');
26
24
  var swcDir = _path.default.dirname(_path.default.dirname(swcPackagePath));
27
25
  var optionalDependencies = JSON.parse(_fs.default.readFileSync(swcPackagePath, 'utf8')).optionalDependencies;
@@ -38,15 +36,5 @@ function installBindings(callback) {
38
36
  });
39
37
  queue.await(callback);
40
38
  }
41
- function loadSWC(callback) {
42
- installBindings(function(err) {
43
- if (err) return callback(err);
44
- try {
45
- return callback(null, swc());
46
- } catch (err) {
47
- return callback(err);
48
- }
49
- });
50
- }
51
- var _default = (0, _resolveoncecb.default)(loadSWC);
39
+ var _default = (0, _resolveoncecb.default)(installSWCBindings);
52
40
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["swcInstallBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport installModule from 'install-module-linked';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport resolveOnce from 'resolve-once-cb';\n\nfunction installSWCBindings(callback) {\n const swcPackagePath = resolve.sync('@swc/core/package.json');\n const swcDir = path.dirname(path.dirname(swcPackagePath));\n const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n installModule(installString, path.dirname(swcDir), callback);\n });\n });\n queue.await(callback);\n}\n\nexport default resolveOnce(installSWCBindings);\n"],"names":["installSWCBindings","callback","swcPackagePath","resolve","sync","swcDir","path","dirname","optionalDependencies","JSON","parse","fs","readFileSync","depKey","process","platform","arch","queue","Queue","Object","keys","filter","name","indexOf","map","defer","version","installString","installModule","await","resolveOnce"],"mappings":";;;;+BA0BA;;;eAAA;;;yDA1Be;2DACE;0EACS;8DACR;8DACE;oEACI;;;;;;AAExB,SAASA,mBAAmBC,QAAQ;IAClC,IAAMC,iBAAiBC,gBAAO,CAACC,IAAI,CAAC;IACpC,IAAMC,SAASC,aAAI,CAACC,OAAO,CAACD,aAAI,CAACC,OAAO,CAACL;IACzC,IAAM,AAAEM,uBAAyBC,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACV,gBAAgB,SAApEM;IACR,IAAMK,SAAS,AAAC,GAAsBC,OAApBA,QAAQC,QAAQ,EAAC,KAAgB,OAAbD,QAAQE,IAAI;IAElD,IAAMC,QAAQ,IAAIC,gBAAK;IACvBC,OAAOC,IAAI,CAACZ,sBACTa,MAAM,CAAC,SAACC;eAASA,KAAKC,OAAO,CAACV,WAAW;OACzCW,GAAG,CAAC,SAACF;QACJL,MAAMQ,KAAK,CAAC,SAACxB;YACX,IAAMyB,UAAUlB,oBAAoB,CAACc,KAAK;YAC1C,IAAMK,gBAAgB,AAAC,GAASD,OAAPJ,MAAoC,OAA7BI,UAAU,AAAC,IAAW,OAARA,WAAY;YAC1DE,IAAAA,4BAAa,EAACD,eAAerB,aAAI,CAACC,OAAO,CAACF,SAASJ;QACrD;IACF;IACFgB,MAAMY,KAAK,CAAC5B;AACd;IAEA,WAAe6B,IAAAA,sBAAW,EAAC9B"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return swcPrepareOptions;
9
+ }
10
+ });
11
+ var _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
+ var _swcInstallBindings = /*#__PURE__*/ _interop_require_default(require("./swcInstallBindings.js"));
13
+ var _lazycjs = /*#__PURE__*/ _interop_require_default(require("./lazy.js"));
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ var lazyTS = (0, _lazycjs.default)('typescript');
20
+ var lazySWC = (0, _lazycjs.default)('@swc/core');
21
+ var lazyTranspiler = (0, _lazycjs.default)('ts-node/transpilers/swc');
22
+ function swcPrepareOptions(tsconfig, callback) {
23
+ (0, _swcInstallBindings.default)(function(err) {
24
+ if (err) return callback(err);
25
+ try {
26
+ var ts = lazyTS();
27
+ var swc = lazySWC();
28
+ var transpiler = lazyTranspiler();
29
+ var parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, _path.default.dirname(tsconfig.path));
30
+ callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));
31
+ } catch (err) {
32
+ callback(err);
33
+ }
34
+ });
35
+ }
36
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\nimport swcInstallBindings from './swcInstallBindings.js';\n\n// @ts-ignore\nimport lazy from './lazy.cjs';\nconst lazyTS = lazy('typescript');\nconst lazySWC = lazy('@swc/core');\nconst lazyTranspiler = lazy('ts-node/transpilers/swc');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n\nexport default function swcPrepareOptions(tsconfig: TsConfigResult, callback) {\n swcInstallBindings((err) => {\n if (err) return callback(err);\n\n try {\n const ts = lazyTS();\n const swc = lazySWC();\n const transpiler = lazyTranspiler();\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));\n } catch (err) {\n callback(err);\n }\n });\n}\n"],"names":["swcPrepareOptions","lazyTS","lazy","lazySWC","lazyTranspiler","tsconfig","callback","swcInstallBindings","err","ts","swc","transpiler","parsed","parseJsonConfigFileContent","config","sys","path","dirname","createSwcOptions","options","undefined"],"mappings":";;;;+BAWA;;;eAAwBA;;;2DAXP;yEACc;8DAGd;;;;;;AACjB,IAAMC,SAASC,IAAAA,gBAAI,EAAC;AACpB,IAAMC,UAAUD,IAAAA,gBAAI,EAAC;AACrB,IAAME,iBAAiBF,IAAAA,gBAAI,EAAC;AAIb,SAASF,kBAAkBK,QAAwB,EAAEC,QAAQ;IAC1EC,IAAAA,2BAAkB,EAAC,SAACC;QAClB,IAAIA,KAAK,OAAOF,SAASE;QAEzB,IAAI;YACF,IAAMC,KAAKR;YACX,IAAMS,MAAMP;YACZ,IAAMQ,aAAaP;YACnB,IAAMQ,SAASH,GAAGI,0BAA0B,CAACR,SAASS,MAAM,EAAEL,GAAGM,GAAG,EAAEC,aAAI,CAACC,OAAO,CAACZ,SAASW,IAAI;YAChGV,SAAS,MAAMK,WAAWO,gBAAgB,CAACN,OAAOO,OAAO,EAAEC,WAAWV,KAAK;QAC7E,EAAE,OAAOF,KAAK;YACZF,SAASE;QACX;IACF;AACF"}
@@ -10,11 +10,11 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
12
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
- var _calloncefn = /*#__PURE__*/ _interop_require_default(require("call-once-fn"));
14
13
  var _gettsconfigcompat = /*#__PURE__*/ _interop_require_wildcard(require("get-tsconfig-compat"));
15
14
  var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
16
15
  var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
17
- var _transformSync = /*#__PURE__*/ _interop_require_default(require("./transformSync.js"));
16
+ var _swcPrepareOptions = /*#__PURE__*/ _interop_require_default(require("../lib/swcPrepareOptions.js"));
17
+ var _lazycjs = /*#__PURE__*/ _interop_require_default(require("../lib/lazy.js"));
18
18
  function _define_property(obj, key, value) {
19
19
  if (key in obj) {
20
20
  Object.defineProperty(obj, key, {
@@ -89,6 +89,31 @@ function _object_spread(target) {
89
89
  }
90
90
  return target;
91
91
  }
92
+ function ownKeys(object, enumerableOnly) {
93
+ var keys = Object.keys(object);
94
+ if (Object.getOwnPropertySymbols) {
95
+ var symbols = Object.getOwnPropertySymbols(object);
96
+ if (enumerableOnly) {
97
+ symbols = symbols.filter(function(sym) {
98
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
99
+ });
100
+ }
101
+ keys.push.apply(keys, symbols);
102
+ }
103
+ return keys;
104
+ }
105
+ function _object_spread_props(target, source) {
106
+ source = source != null ? source : {};
107
+ if (Object.getOwnPropertyDescriptors) {
108
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
109
+ } else {
110
+ ownKeys(Object(source)).forEach(function(key) {
111
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
112
+ });
113
+ }
114
+ return target;
115
+ }
116
+ var lazySWC = (0, _lazycjs.default)('@swc/core');
92
117
  var matchingDeps = '\\s*[\'"`]([^\'"`]+)[\'"`]\\s*';
93
118
  var matchingName = '\\s*(?:[\\w${},\\s*]+)\\s*';
94
119
  var regexCJS = new RegExp("(?:(?:var|const|let)".concat(matchingName, "=\\s*)?require\\(").concat(matchingDeps, "\\);?"), 'g');
@@ -138,47 +163,44 @@ function makeReplacements(code, regex, extensions, extension) {
138
163
  // https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125
139
164
  var interopClientDefaultExport = "/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }";
140
165
  function transformFileWorker(src, dest, type, options, callback) {
141
- _fs.default.readFile(src, 'utf8', function(err, contents) {
166
+ var tsconfig = options.tsconfig ? options.tsconfig : _gettsconfigcompat.getTsconfig(src);
167
+ // overrides for cjs
168
+ if (type === 'cjs') {
169
+ tsconfig = _object_spread({}, tsconfig);
170
+ tsconfig.tsconfig = _object_spread({}, tsconfig.config || {});
171
+ tsconfig.config.compilerOptions = _object_spread({}, tsconfig.config.compilerOptions || {});
172
+ tsconfig.config.compilerOptions.module = 'CommonJS';
173
+ tsconfig.config.compilerOptions.target = 'ES5';
174
+ }
175
+ (0, _swcPrepareOptions.default)(tsconfig, function(err, swcOptions) {
142
176
  if (err) return callback(err);
143
- callback = (0, _calloncefn.default)(callback);
144
- try {
145
- var tsconfig = options.tsconfig ? options.tsconfig : _gettsconfigcompat.getTsconfig(src);
146
- // overrides for cjs
147
- if (type === 'cjs') {
148
- tsconfig = _object_spread({}, tsconfig);
149
- tsconfig.tsconfig = _object_spread({}, tsconfig.config || {});
150
- tsconfig.config.compilerOptions = _object_spread({}, tsconfig.config.compilerOptions || {});
151
- tsconfig.config.compilerOptions.module = 'CommonJS';
152
- tsconfig.config.compilerOptions.target = 'ES5';
177
+ var swc = lazySWC();
178
+ var basename = _path.default.basename(src);
179
+ swc.transformFile(src, _object_spread_props(_object_spread({}, basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions), {
180
+ filename: basename
181
+ })).then(function(output) {
182
+ // infer extension and patch .mjs imports
183
+ var ext = _path.default.extname(basename);
184
+ if (type === 'esm') {
185
+ ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;
186
+ output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');
187
+ ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;
188
+ output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');
189
+ } else {
190
+ ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;
191
+ output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');
192
+ output.code += interopClientDefaultExport;
153
193
  }
154
- var basename = _path.default.basename(src);
155
- (0, _transformSync.default)(contents, basename, tsconfig, function(err, output) {
156
- if (err) return callback(err);
157
- // infer extension and patch .mjs imports
158
- var ext = _path.default.extname(basename);
159
- if (type === 'esm') {
160
- ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;
161
- output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');
162
- ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;
163
- output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');
164
- } else {
165
- ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;
166
- output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');
167
- output.code += interopClientDefaultExport;
168
- }
169
- var destFilePath = _path.default.join(dest, basename.replace(/\.[^/.]+$/, '') + ext);
170
- (0, _mkdirpclassic.default)(_path.default.dirname(destFilePath), function() {
171
- var queue = new _queuecb.default();
172
- queue.defer(_fs.default.writeFile.bind(null, destFilePath, output.code, 'utf8'));
173
- !options.sourceMaps || queue.defer(_fs.default.writeFile.bind(null, "".concat(destFilePath, ".map"), output.map, 'utf8'));
174
- queue.await(function() {
175
- return err ? callback(err) : callback(null, _path.default.relative(dest, destFilePath));
176
- });
194
+ var destFilePath = _path.default.join(dest, basename.replace(/\.[^/.]+$/, '') + ext);
195
+ (0, _mkdirpclassic.default)(_path.default.dirname(destFilePath), function() {
196
+ var queue = new _queuecb.default();
197
+ queue.defer(_fs.default.writeFile.bind(null, destFilePath, output.code, 'utf8'));
198
+ !options.sourceMaps || queue.defer(_fs.default.writeFile.bind(null, "".concat(destFilePath, ".map"), output.map, 'utf8'));
199
+ queue.await(function() {
200
+ return err ? callback(err) : callback(null, _path.default.relative(dest, destFilePath));
177
201
  });
178
202
  });
179
- } catch (err) {
180
- callback(err);
181
- }
203
+ }).catch(callback);
182
204
  });
183
205
  }
184
206
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport once from 'call-once-fn';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\n\nimport transformSync from './transformSync.js';\n\nconst matchingDeps = '\\\\s*[\\'\"`]([^\\'\"`]+)[\\'\"`]\\\\s*';\nconst matchingName = '\\\\s*(?:[\\\\w${},\\\\s*]+)\\\\s*';\nconst regexCJS = new RegExp(`(?:(?:var|const|let)${matchingName}=\\\\s*)?require\\\\(${matchingDeps}\\\\);?`, 'g');\nconst regexESM = new RegExp(`${regexCJS}|import(?:${matchingName}from\\\\s*)?${matchingDeps};?|export(?:${matchingName}from\\\\s*)?${matchingDeps};?`, 'g');\n\nconst importReplaceMJS = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\nconst importReplaceCJS = ['.cts'];\nconst requireReplaceJS = ['.mjs', '.cjs', '.ts', '.tsx', '.mts', '.cts'];\n\nfunction makeReplacements(code, regex, extensions, extension) {\n let matches = [];\n let match = regex.exec(code);\n while (match) {\n const dependency = match[1] || match[2] || match[3] || match[4];\n const ext = extensions.find((x) => dependency.slice(-x.length) === x);\n if (ext) matches.push({ ext, match, dependency });\n match = regex.exec(code);\n }\n\n matches = matches.reverse();\n for (const index in matches) {\n const match = matches[index];\n const start = match.match.index + match.match[0].indexOf(match.dependency) + match.dependency.indexOf(match.ext);\n code = code.substring(0, start) + extension + code.substring(start + match.ext.length);\n }\n return code;\n}\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\n\nexport default function transformFileWorker(src, dest, type, options, callback) {\n fs.readFile(src, 'utf8', (err, contents) => {\n if (err) return callback(err);\n callback = once(callback);\n\n try {\n let tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.tsconfig = { ...(tsconfig.config || {}) };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n const basename = path.basename(src);\n transformSync(contents, basename, tsconfig, (err, output) => {\n if (err) return callback(err);\n\n // infer extension and patch .mjs imports\n let ext = path.extname(basename);\n if (type === 'esm') {\n ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');\n ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');\n } else {\n ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;\n output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');\n output.code += interopClientDefaultExport;\n }\n const destFilePath = path.join(dest, basename.replace(/\\.[^/.]+$/, '') + ext);\n\n mkdirp(path.dirname(destFilePath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, destFilePath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${destFilePath}.map`, output.map, 'utf8'));\n queue.await(() => (err ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n });\n } catch (err) {\n callback(err);\n }\n });\n}\n"],"names":["transformFileWorker","matchingDeps","matchingName","regexCJS","RegExp","regexESM","importReplaceMJS","importReplaceCJS","requireReplaceJS","makeReplacements","code","regex","extensions","extension","dependency","match","ext","find","x","slice","length","matches","push","exec","reverse","index","start","indexOf","substring","interopClientDefaultExport","src","dest","type","options","callback","fs","readFile","err","contents","once","tsconfig","getTS","getTsconfig","config","compilerOptions","module","target","basename","path","transformSync","output","extname","destFilePath","join","replace","mkdirp","dirname","queue","Queue","defer","writeFile","bind","sourceMaps","map","await","relative"],"mappings":"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"}
1
+ {"version":3,"sources":["transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport once from 'call-once-fn';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\n\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\nconst lazySWC = lazy('@swc/core');\n\nconst matchingDeps = '\\\\s*[\\'\"`]([^\\'\"`]+)[\\'\"`]\\\\s*';\nconst matchingName = '\\\\s*(?:[\\\\w${},\\\\s*]+)\\\\s*';\nconst regexCJS = new RegExp(`(?:(?:var|const|let)${matchingName}=\\\\s*)?require\\\\(${matchingDeps}\\\\);?`, 'g');\nconst regexESM = new RegExp(`${regexCJS}|import(?:${matchingName}from\\\\s*)?${matchingDeps};?|export(?:${matchingName}from\\\\s*)?${matchingDeps};?`, 'g');\n\nconst importReplaceMJS = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\nconst importReplaceCJS = ['.cts'];\nconst requireReplaceJS = ['.mjs', '.cjs', '.ts', '.tsx', '.mts', '.cts'];\n\nfunction makeReplacements(code, regex, extensions, extension) {\n let matches = [];\n let match = regex.exec(code);\n while (match) {\n const dependency = match[1] || match[2] || match[3] || match[4];\n const ext = extensions.find((x) => dependency.slice(-x.length) === x);\n if (ext) matches.push({ ext, match, dependency });\n match = regex.exec(code);\n }\n\n matches = matches.reverse();\n for (const index in matches) {\n const match = matches[index];\n const start = match.match.index + match.match[0].indexOf(match.dependency) + match.dependency.indexOf(match.ext);\n code = code.substring(0, start) + extension + code.substring(start + match.ext.length);\n }\n return code;\n}\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\n\nexport default function transformFileWorker(src, dest, type, options, callback) {\n let tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.tsconfig = { ...(tsconfig.config || {}) };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n swcPrepareOptions(tsconfig, (err, swcOptions) => {\n if (err) return callback(err);\n const swc = lazySWC();\n\n const basename = path.basename(src);\n swc\n .transformFile(src, {\n ...(basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: basename,\n })\n .then((output) => {\n // infer extension and patch .mjs imports\n let ext = path.extname(basename);\n if (type === 'esm') {\n ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');\n ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');\n } else {\n ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;\n output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');\n output.code += interopClientDefaultExport;\n }\n const destFilePath = path.join(dest, basename.replace(/\\.[^/.]+$/, '') + ext);\n\n mkdirp(path.dirname(destFilePath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, destFilePath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${destFilePath}.map`, output.map, 'utf8'));\n queue.await(() => (err ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n })\n .catch(callback);\n });\n}\n"],"names":["transformFileWorker","lazySWC","lazy","matchingDeps","matchingName","regexCJS","RegExp","regexESM","importReplaceMJS","importReplaceCJS","requireReplaceJS","makeReplacements","code","regex","extensions","extension","dependency","match","ext","find","x","slice","length","matches","push","exec","reverse","index","start","indexOf","substring","interopClientDefaultExport","src","dest","type","options","callback","tsconfig","getTS","getTsconfig","config","compilerOptions","module","target","swcPrepareOptions","err","swcOptions","swc","basename","path","transformFile","endsWith","tsxOptions","nonTsxOptions","filename","then","output","extname","destFilePath","join","replace","mkdirp","dirname","queue","Queue","defer","fs","writeFile","bind","sourceMaps","map","await","relative","catch"],"mappings":"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"}
@@ -8,37 +8,75 @@ Object.defineProperty(exports, "default", {
8
8
  return transformSyncWorker;
9
9
  }
10
10
  });
11
- var _path = /*#__PURE__*/ _interop_require_default(require("path"));
11
+ var _swcPrepareOptions = /*#__PURE__*/ _interop_require_default(require("../lib/swcPrepareOptions.js"));
12
12
  var _lazycjs = /*#__PURE__*/ _interop_require_default(require("../lib/lazy.js"));
13
- var _loadSWC = /*#__PURE__*/ _interop_require_default(require("../lib/loadSWC.js"));
13
+ function _define_property(obj, key, value) {
14
+ if (key in obj) {
15
+ Object.defineProperty(obj, key, {
16
+ value: value,
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true
20
+ });
21
+ } else {
22
+ obj[key] = value;
23
+ }
24
+ return obj;
25
+ }
14
26
  function _interop_require_default(obj) {
15
27
  return obj && obj.__esModule ? obj : {
16
28
  default: obj
17
29
  };
18
30
  }
19
- var lazyTS = (0, _lazycjs.default)('typescript');
20
- var lazyTranspiler = (0, _lazycjs.default)('ts-node/transpilers/swc');
21
- function transformSyncWorker(contents, fileName, tsconfig, callback) {
22
- (0, _loadSWC.default)(function(err, swc) {
23
- if (err) return callback(err);
24
- var ts = lazyTS();
25
- var transpiler = lazyTranspiler();
26
- var parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, _path.default.dirname(tsconfig.path));
27
- var transpile = transpiler.create({
28
- swc: swc,
29
- service: {
30
- config: {
31
- options: parsed.options
32
- }
33
- }
34
- });
35
- var res = transpile.transpile(contents, {
36
- fileName: fileName
31
+ function _object_spread(target) {
32
+ for(var i = 1; i < arguments.length; i++){
33
+ var source = arguments[i] != null ? arguments[i] : {};
34
+ var ownKeys = Object.keys(source);
35
+ if (typeof Object.getOwnPropertySymbols === "function") {
36
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
37
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
38
+ }));
39
+ }
40
+ ownKeys.forEach(function(key) {
41
+ _define_property(target, key, source[key]);
37
42
  });
38
- callback(null, {
39
- code: res.outputText,
40
- map: res.sourceMapText
43
+ }
44
+ return target;
45
+ }
46
+ function ownKeys(object, enumerableOnly) {
47
+ var keys = Object.keys(object);
48
+ if (Object.getOwnPropertySymbols) {
49
+ var symbols = Object.getOwnPropertySymbols(object);
50
+ if (enumerableOnly) {
51
+ symbols = symbols.filter(function(sym) {
52
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
53
+ });
54
+ }
55
+ keys.push.apply(keys, symbols);
56
+ }
57
+ return keys;
58
+ }
59
+ function _object_spread_props(target, source) {
60
+ source = source != null ? source : {};
61
+ if (Object.getOwnPropertyDescriptors) {
62
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
63
+ } else {
64
+ ownKeys(Object(source)).forEach(function(key) {
65
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
41
66
  });
67
+ }
68
+ return target;
69
+ }
70
+ var lazySWC = (0, _lazycjs.default)('@swc/core');
71
+ function transformSyncWorker(contents, fileName, tsconfig, callback) {
72
+ (0, _swcPrepareOptions.default)(tsconfig, function(err, swcOptions) {
73
+ if (err) return callback(err);
74
+ var swc = lazySWC();
75
+ swc.transform(contents, _object_spread_props(_object_spread({}, fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions), {
76
+ filename: fileName
77
+ })).then(function(output) {
78
+ return callback(null, output);
79
+ }).catch(callback);
42
80
  });
43
81
  }
44
82
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import path from 'path';\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\n// @ts-ignore\nimport loadSWC from '../lib/loadSWC.js';\nconst lazyTS = lazy('typescript');\nconst lazyTranspiler = lazy('ts-node/transpilers/swc');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n loadSWC((err, swc) => {\n if (err) return callback(err);\n const ts = lazyTS();\n const transpiler = lazyTranspiler();\n\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n const transpile = transpiler.create({ swc: swc, service: { config: { options: parsed.options } } });\n const res = transpile.transpile(contents, { fileName });\n callback(null, { code: res.outputText, map: res.sourceMapText });\n });\n}\n"],"names":["transformSyncWorker","lazyTS","lazy","lazyTranspiler","contents","fileName","tsconfig","callback","loadSWC","err","swc","ts","transpiler","parsed","parseJsonConfigFileContent","config","sys","path","dirname","transpile","create","service","options","res","code","outputText","map","sourceMapText"],"mappings":";;;;+BASA;;;eAAwBA;;;2DATP;8DAEA;8DAEG;;;;;;AACpB,IAAMC,SAASC,IAAAA,gBAAI,EAAC;AACpB,IAAMC,iBAAiBD,IAAAA,gBAAI,EAAC;AAGb,SAASF,oBAAoBI,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB,EAAEC,QAAQ;IAChHC,IAAAA,gBAAO,EAAC,SAACC,KAAKC;QACZ,IAAID,KAAK,OAAOF,SAASE;QACzB,IAAME,KAAKV;QACX,IAAMW,aAAaT;QAEnB,IAAMU,SAASF,GAAGG,0BAA0B,CAACR,SAASS,MAAM,EAAEJ,GAAGK,GAAG,EAAEC,aAAI,CAACC,OAAO,CAACZ,SAASW,IAAI;QAChG,IAAME,YAAYP,WAAWQ,MAAM,CAAC;YAAEV,KAAKA;YAAKW,SAAS;gBAAEN,QAAQ;oBAAEO,SAAST,OAAOS,OAAO;gBAAC;YAAE;QAAE;QACjG,IAAMC,MAAMJ,UAAUA,SAAS,CAACf,UAAU;YAAEC,UAAAA;QAAS;QACrDE,SAAS,MAAM;YAAEiB,MAAMD,IAAIE,UAAU;YAAEC,KAAKH,IAAII,aAAa;QAAC;IAChE;AACF"}
1
+ {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\nconst lazySWC = lazy('@swc/core');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n swcPrepareOptions(tsconfig, (err, swcOptions) => {\n if (err) return callback(err);\n const swc = lazySWC();\n swc\n .transform(contents, {\n ...(fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: fileName,\n })\n .then((output) => callback(null, output))\n .catch(callback);\n });\n}\n"],"names":["transformSyncWorker","lazySWC","lazy","contents","fileName","tsconfig","callback","swcPrepareOptions","err","swcOptions","swc","transform","endsWith","tsxOptions","nonTsxOptions","filename","then","output","catch"],"mappings":";;;;+BAOA;;;eAAwBA;;;wEAPM;8DAGb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACjB,IAAMC,UAAUC,IAAAA,gBAAI,EAAC;AAGN,SAASF,oBAAoBG,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB,EAAEC,QAAQ;IAChHC,IAAAA,0BAAiB,EAACF,UAAU,SAACG,KAAKC;QAChC,IAAID,KAAK,OAAOF,SAASE;QACzB,IAAME,MAAMT;QACZS,IACGC,SAAS,CAACR,UAAU,wCACfC,SAASQ,QAAQ,CAAC,WAAWR,SAASQ,QAAQ,CAAC,UAAUH,WAAWI,UAAU,GAAGJ,WAAWK,aAAa;YAC7GC,UAAUX;YAEXY,IAAI,CAAC,SAACC;mBAAWX,SAAS,MAAMW;WAChCC,KAAK,CAACZ;IACX;AACF"}
@@ -4,10 +4,7 @@ import installModule from 'install-module-linked';
4
4
  import Queue from 'queue-cb';
5
5
  import resolve from 'resolve';
6
6
  import resolveOnce from 'resolve-once-cb';
7
- // @ts-ignore
8
- import lazy from './lazy.cjs';
9
- const swc = lazy('@swc/core');
10
- function installBindings(callback) {
7
+ function installSWCBindings(callback) {
11
8
  const swcPackagePath = resolve.sync('@swc/core/package.json');
12
9
  const swcDir = path.dirname(path.dirname(swcPackagePath));
13
10
  const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));
@@ -22,14 +19,4 @@ function installBindings(callback) {
22
19
  });
23
20
  queue.await(callback);
24
21
  }
25
- function loadSWC(callback) {
26
- installBindings((err)=>{
27
- if (err) return callback(err);
28
- try {
29
- return callback(null, swc());
30
- } catch (err) {
31
- return callback(err);
32
- }
33
- });
34
- }
35
- export default resolveOnce(loadSWC);
22
+ export default resolveOnce(installSWCBindings);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["swcInstallBindings.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport installModule from 'install-module-linked';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport resolveOnce from 'resolve-once-cb';\n\nfunction installSWCBindings(callback) {\n const swcPackagePath = resolve.sync('@swc/core/package.json');\n const swcDir = path.dirname(path.dirname(swcPackagePath));\n const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n installModule(installString, path.dirname(swcDir), callback);\n });\n });\n queue.await(callback);\n}\n\nexport default resolveOnce(installSWCBindings);\n"],"names":["fs","path","installModule","Queue","resolve","resolveOnce","installSWCBindings","callback","swcPackagePath","sync","swcDir","dirname","optionalDependencies","JSON","parse","readFileSync","depKey","process","platform","arch","queue","Object","keys","filter","name","indexOf","map","defer","version","installString","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,mBAAmB,wBAAwB;AAClD,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,iBAAiB,kBAAkB;AAE1C,SAASC,mBAAmBC,QAAQ;IAClC,MAAMC,iBAAiBJ,QAAQK,IAAI,CAAC;IACpC,MAAMC,SAAST,KAAKU,OAAO,CAACV,KAAKU,OAAO,CAACH;IACzC,MAAM,EAAEI,oBAAoB,EAAE,GAAGC,KAAKC,KAAK,CAACd,GAAGe,YAAY,CAACP,gBAAgB;IAC5E,MAAMQ,SAAS,GAAGC,QAAQC,QAAQ,CAAC,CAAC,EAAED,QAAQE,IAAI,EAAE;IAEpD,MAAMC,QAAQ,IAAIjB;IAClBkB,OAAOC,IAAI,CAACV,sBACTW,MAAM,CAAC,CAACC,OAASA,KAAKC,OAAO,CAACT,WAAW,GACzCU,GAAG,CAAC,CAACF;QACJJ,MAAMO,KAAK,CAAC,CAACpB;YACX,MAAMqB,UAAUhB,oBAAoB,CAACY,KAAK;YAC1C,MAAMK,gBAAgB,GAAGL,OAAOI,UAAU,CAAC,CAAC,EAAEA,SAAS,GAAG,IAAI;YAC9D1B,cAAc2B,eAAe5B,KAAKU,OAAO,CAACD,SAASH;QACrD;IACF;IACFa,MAAMU,KAAK,CAACvB;AACd;AAEA,eAAeF,YAAYC,oBAAoB"}
@@ -0,0 +1,21 @@
1
+ import path from 'path';
2
+ import swcInstallBindings from './swcInstallBindings.mjs';
3
+ // @ts-ignore
4
+ import lazy from './lazy.cjs';
5
+ const lazyTS = lazy('typescript');
6
+ const lazySWC = lazy('@swc/core');
7
+ const lazyTranspiler = lazy('ts-node/transpilers/swc');
8
+ export default function swcPrepareOptions(tsconfig, callback) {
9
+ swcInstallBindings((err)=>{
10
+ if (err) return callback(err);
11
+ try {
12
+ const ts = lazyTS();
13
+ const swc = lazySWC();
14
+ const transpiler = lazyTranspiler();
15
+ const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));
16
+ callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));
17
+ } catch (err) {
18
+ callback(err);
19
+ }
20
+ });
21
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\nimport swcInstallBindings from './swcInstallBindings.js';\n\n// @ts-ignore\nimport lazy from './lazy.cjs';\nconst lazyTS = lazy('typescript');\nconst lazySWC = lazy('@swc/core');\nconst lazyTranspiler = lazy('ts-node/transpilers/swc');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n\nexport default function swcPrepareOptions(tsconfig: TsConfigResult, callback) {\n swcInstallBindings((err) => {\n if (err) return callback(err);\n\n try {\n const ts = lazyTS();\n const swc = lazySWC();\n const transpiler = lazyTranspiler();\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));\n } catch (err) {\n callback(err);\n }\n });\n}\n"],"names":["path","swcInstallBindings","lazy","lazyTS","lazySWC","lazyTranspiler","swcPrepareOptions","tsconfig","callback","err","ts","swc","transpiler","parsed","parseJsonConfigFileContent","config","sys","dirname","createSwcOptions","options","undefined"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,wBAAwB,0BAA0B;AAEzD,aAAa;AACb,OAAOC,UAAU,aAAa;AAC9B,MAAMC,SAASD,KAAK;AACpB,MAAME,UAAUF,KAAK;AACrB,MAAMG,iBAAiBH,KAAK;AAI5B,eAAe,SAASI,kBAAkBC,QAAwB,EAAEC,QAAQ;IAC1EP,mBAAmB,CAACQ;QAClB,IAAIA,KAAK,OAAOD,SAASC;QAEzB,IAAI;YACF,MAAMC,KAAKP;YACX,MAAMQ,MAAMP;YACZ,MAAMQ,aAAaP;YACnB,MAAMQ,SAASH,GAAGI,0BAA0B,CAACP,SAASQ,MAAM,EAAEL,GAAGM,GAAG,EAAEhB,KAAKiB,OAAO,CAACV,SAASP,IAAI;YAChGQ,SAAS,MAAMI,WAAWM,gBAAgB,CAACL,OAAOM,OAAO,EAAEC,WAAWT,KAAK;QAC7E,EAAE,OAAOF,KAAK;YACZD,SAASC;QACX;IACF;AACF"}
@@ -1 +1 @@
1
- {"type":"module"}
1
+ {"type":"commonjs"}
@@ -1,10 +1,12 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import once from 'call-once-fn';
4
3
  import * as getTS from 'get-tsconfig-compat';
5
4
  import mkdirp from 'mkdirp-classic';
6
5
  import Queue from 'queue-cb';
7
- import transformSync from './transformSync.mjs';
6
+ import swcPrepareOptions from '../lib/swcPrepareOptions.mjs';
7
+ // @ts-ignore
8
+ import lazy from '../lib/lazy.cjs';
9
+ const lazySWC = lazy('@swc/core');
8
10
  const matchingDeps = '\\s*[\'"`]([^\'"`]+)[\'"`]\\s*';
9
11
  const matchingName = '\\s*(?:[\\w${},\\s*]+)\\s*';
10
12
  const regexCJS = new RegExp(`(?:(?:var|const|let)${matchingName}=\\s*)?require\\(${matchingDeps}\\);?`, 'g');
@@ -51,50 +53,48 @@ function makeReplacements(code, regex, extensions, extension) {
51
53
  // https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125
52
54
  const interopClientDefaultExport = "/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }";
53
55
  export default function transformFileWorker(src, dest, type, options, callback) {
54
- fs.readFile(src, 'utf8', (err, contents)=>{
56
+ let tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);
57
+ // overrides for cjs
58
+ if (type === 'cjs') {
59
+ tsconfig = {
60
+ ...tsconfig
61
+ };
62
+ tsconfig.tsconfig = {
63
+ ...tsconfig.config || {}
64
+ };
65
+ tsconfig.config.compilerOptions = {
66
+ ...tsconfig.config.compilerOptions || {}
67
+ };
68
+ tsconfig.config.compilerOptions.module = 'CommonJS';
69
+ tsconfig.config.compilerOptions.target = 'ES5';
70
+ }
71
+ swcPrepareOptions(tsconfig, (err, swcOptions)=>{
55
72
  if (err) return callback(err);
56
- callback = once(callback);
57
- try {
58
- let tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);
59
- // overrides for cjs
60
- if (type === 'cjs') {
61
- tsconfig = {
62
- ...tsconfig
63
- };
64
- tsconfig.tsconfig = {
65
- ...tsconfig.config || {}
66
- };
67
- tsconfig.config.compilerOptions = {
68
- ...tsconfig.config.compilerOptions || {}
69
- };
70
- tsconfig.config.compilerOptions.module = 'CommonJS';
71
- tsconfig.config.compilerOptions.target = 'ES5';
73
+ const swc = lazySWC();
74
+ const basename = path.basename(src);
75
+ swc.transformFile(src, {
76
+ ...basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions,
77
+ filename: basename
78
+ }).then((output)=>{
79
+ // infer extension and patch .mjs imports
80
+ let ext = path.extname(basename);
81
+ if (type === 'esm') {
82
+ ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;
83
+ output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');
84
+ ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;
85
+ output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');
86
+ } else {
87
+ ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;
88
+ output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');
89
+ output.code += interopClientDefaultExport;
72
90
  }
73
- const basename = path.basename(src);
74
- transformSync(contents, basename, tsconfig, (err, output)=>{
75
- if (err) return callback(err);
76
- // infer extension and patch .mjs imports
77
- let ext = path.extname(basename);
78
- if (type === 'esm') {
79
- ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;
80
- output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');
81
- ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;
82
- output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');
83
- } else {
84
- ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;
85
- output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');
86
- output.code += interopClientDefaultExport;
87
- }
88
- const destFilePath = path.join(dest, basename.replace(/\.[^/.]+$/, '') + ext);
89
- mkdirp(path.dirname(destFilePath), ()=>{
90
- const queue = new Queue();
91
- queue.defer(fs.writeFile.bind(null, destFilePath, output.code, 'utf8'));
92
- !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${destFilePath}.map`, output.map, 'utf8'));
93
- queue.await(()=>err ? callback(err) : callback(null, path.relative(dest, destFilePath)));
94
- });
91
+ const destFilePath = path.join(dest, basename.replace(/\.[^/.]+$/, '') + ext);
92
+ mkdirp(path.dirname(destFilePath), ()=>{
93
+ const queue = new Queue();
94
+ queue.defer(fs.writeFile.bind(null, destFilePath, output.code, 'utf8'));
95
+ !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${destFilePath}.map`, output.map, 'utf8'));
96
+ queue.await(()=>err ? callback(err) : callback(null, path.relative(dest, destFilePath)));
95
97
  });
96
- } catch (err) {
97
- callback(err);
98
- }
98
+ }).catch(callback);
99
99
  });
100
100
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport once from 'call-once-fn';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\n\nimport transformSync from './transformSync.js';\n\nconst matchingDeps = '\\\\s*[\\'\"`]([^\\'\"`]+)[\\'\"`]\\\\s*';\nconst matchingName = '\\\\s*(?:[\\\\w${},\\\\s*]+)\\\\s*';\nconst regexCJS = new RegExp(`(?:(?:var|const|let)${matchingName}=\\\\s*)?require\\\\(${matchingDeps}\\\\);?`, 'g');\nconst regexESM = new RegExp(`${regexCJS}|import(?:${matchingName}from\\\\s*)?${matchingDeps};?|export(?:${matchingName}from\\\\s*)?${matchingDeps};?`, 'g');\n\nconst importReplaceMJS = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\nconst importReplaceCJS = ['.cts'];\nconst requireReplaceJS = ['.mjs', '.cjs', '.ts', '.tsx', '.mts', '.cts'];\n\nfunction makeReplacements(code, regex, extensions, extension) {\n let matches = [];\n let match = regex.exec(code);\n while (match) {\n const dependency = match[1] || match[2] || match[3] || match[4];\n const ext = extensions.find((x) => dependency.slice(-x.length) === x);\n if (ext) matches.push({ ext, match, dependency });\n match = regex.exec(code);\n }\n\n matches = matches.reverse();\n for (const index in matches) {\n const match = matches[index];\n const start = match.match.index + match.match[0].indexOf(match.dependency) + match.dependency.indexOf(match.ext);\n code = code.substring(0, start) + extension + code.substring(start + match.ext.length);\n }\n return code;\n}\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\n\nexport default function transformFileWorker(src, dest, type, options, callback) {\n fs.readFile(src, 'utf8', (err, contents) => {\n if (err) return callback(err);\n callback = once(callback);\n\n try {\n let tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.tsconfig = { ...(tsconfig.config || {}) };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n const basename = path.basename(src);\n transformSync(contents, basename, tsconfig, (err, output) => {\n if (err) return callback(err);\n\n // infer extension and patch .mjs imports\n let ext = path.extname(basename);\n if (type === 'esm') {\n ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');\n ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');\n } else {\n ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;\n output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');\n output.code += interopClientDefaultExport;\n }\n const destFilePath = path.join(dest, basename.replace(/\\.[^/.]+$/, '') + ext);\n\n mkdirp(path.dirname(destFilePath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, destFilePath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${destFilePath}.map`, output.map, 'utf8'));\n queue.await(() => (err ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n });\n } catch (err) {\n callback(err);\n }\n });\n}\n"],"names":["fs","path","once","getTS","mkdirp","Queue","transformSync","matchingDeps","matchingName","regexCJS","RegExp","regexESM","importReplaceMJS","importReplaceCJS","requireReplaceJS","makeReplacements","code","regex","extensions","extension","matches","match","exec","dependency","ext","find","x","slice","length","push","reverse","index","start","indexOf","substring","interopClientDefaultExport","transformFileWorker","src","dest","type","options","callback","readFile","err","contents","tsconfig","getTsconfig","config","compilerOptions","module","target","basename","output","extname","destFilePath","join","replace","dirname","queue","defer","writeFile","bind","sourceMaps","map","await","relative"],"mappings":"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"}
1
+ {"version":3,"sources":["transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport once from 'call-once-fn';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\n\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\nconst lazySWC = lazy('@swc/core');\n\nconst matchingDeps = '\\\\s*[\\'\"`]([^\\'\"`]+)[\\'\"`]\\\\s*';\nconst matchingName = '\\\\s*(?:[\\\\w${},\\\\s*]+)\\\\s*';\nconst regexCJS = new RegExp(`(?:(?:var|const|let)${matchingName}=\\\\s*)?require\\\\(${matchingDeps}\\\\);?`, 'g');\nconst regexESM = new RegExp(`${regexCJS}|import(?:${matchingName}from\\\\s*)?${matchingDeps};?|export(?:${matchingName}from\\\\s*)?${matchingDeps};?`, 'g');\n\nconst importReplaceMJS = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\nconst importReplaceCJS = ['.cts'];\nconst requireReplaceJS = ['.mjs', '.cjs', '.ts', '.tsx', '.mts', '.cts'];\n\nfunction makeReplacements(code, regex, extensions, extension) {\n let matches = [];\n let match = regex.exec(code);\n while (match) {\n const dependency = match[1] || match[2] || match[3] || match[4];\n const ext = extensions.find((x) => dependency.slice(-x.length) === x);\n if (ext) matches.push({ ext, match, dependency });\n match = regex.exec(code);\n }\n\n matches = matches.reverse();\n for (const index in matches) {\n const match = matches[index];\n const start = match.match.index + match.match[0].indexOf(match.dependency) + match.dependency.indexOf(match.ext);\n code = code.substring(0, start) + extension + code.substring(start + match.ext.length);\n }\n return code;\n}\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\n\nexport default function transformFileWorker(src, dest, type, options, callback) {\n let tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.tsconfig = { ...(tsconfig.config || {}) };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n swcPrepareOptions(tsconfig, (err, swcOptions) => {\n if (err) return callback(err);\n const swc = lazySWC();\n\n const basename = path.basename(src);\n swc\n .transformFile(src, {\n ...(basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: basename,\n })\n .then((output) => {\n // infer extension and patch .mjs imports\n let ext = path.extname(basename);\n if (type === 'esm') {\n ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');\n ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;\n output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');\n } else {\n ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;\n output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');\n output.code += interopClientDefaultExport;\n }\n const destFilePath = path.join(dest, basename.replace(/\\.[^/.]+$/, '') + ext);\n\n mkdirp(path.dirname(destFilePath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, destFilePath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${destFilePath}.map`, output.map, 'utf8'));\n queue.await(() => (err ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n })\n .catch(callback);\n });\n}\n"],"names":["fs","path","getTS","mkdirp","Queue","swcPrepareOptions","lazy","lazySWC","matchingDeps","matchingName","regexCJS","RegExp","regexESM","importReplaceMJS","importReplaceCJS","requireReplaceJS","makeReplacements","code","regex","extensions","extension","matches","match","exec","dependency","ext","find","x","slice","length","push","reverse","index","start","indexOf","substring","interopClientDefaultExport","transformFileWorker","src","dest","type","options","callback","tsconfig","getTsconfig","config","compilerOptions","module","target","err","swcOptions","swc","basename","transformFile","endsWith","tsxOptions","nonTsxOptions","filename","then","output","extname","destFilePath","join","replace","dirname","queue","defer","writeFile","bind","sourceMaps","map","await","relative","catch"],"mappings":"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"}
@@ -1,30 +1,14 @@
1
- import path from 'path';
1
+ import swcPrepareOptions from '../lib/swcPrepareOptions.mjs';
2
2
  // @ts-ignore
3
3
  import lazy from '../lib/lazy.cjs';
4
- // @ts-ignore
5
- import loadSWC from '../lib/loadSWC.mjs';
6
- const lazyTS = lazy('typescript');
7
- const lazyTranspiler = lazy('ts-node/transpilers/swc');
4
+ const lazySWC = lazy('@swc/core');
8
5
  export default function transformSyncWorker(contents, fileName, tsconfig, callback) {
9
- loadSWC((err, swc)=>{
6
+ swcPrepareOptions(tsconfig, (err, swcOptions)=>{
10
7
  if (err) return callback(err);
11
- const ts = lazyTS();
12
- const transpiler = lazyTranspiler();
13
- const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));
14
- const transpile = transpiler.create({
15
- swc: swc,
16
- service: {
17
- config: {
18
- options: parsed.options
19
- }
20
- }
21
- });
22
- const res = transpile.transpile(contents, {
23
- fileName
24
- });
25
- callback(null, {
26
- code: res.outputText,
27
- map: res.sourceMapText
28
- });
8
+ const swc = lazySWC();
9
+ swc.transform(contents, {
10
+ ...fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions,
11
+ filename: fileName
12
+ }).then((output)=>callback(null, output)).catch(callback);
29
13
  });
30
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import path from 'path';\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\n// @ts-ignore\nimport loadSWC from '../lib/loadSWC.js';\nconst lazyTS = lazy('typescript');\nconst lazyTranspiler = lazy('ts-node/transpilers/swc');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n loadSWC((err, swc) => {\n if (err) return callback(err);\n const ts = lazyTS();\n const transpiler = lazyTranspiler();\n\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n const transpile = transpiler.create({ swc: swc, service: { config: { options: parsed.options } } });\n const res = transpile.transpile(contents, { fileName });\n callback(null, { code: res.outputText, map: res.sourceMapText });\n });\n}\n"],"names":["path","lazy","loadSWC","lazyTS","lazyTranspiler","transformSyncWorker","contents","fileName","tsconfig","callback","err","swc","ts","transpiler","parsed","parseJsonConfigFileContent","config","sys","dirname","transpile","create","service","options","res","code","outputText","map","sourceMapText"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,aAAa;AACb,OAAOC,UAAU,kBAAkB;AACnC,aAAa;AACb,OAAOC,aAAa,oBAAoB;AACxC,MAAMC,SAASF,KAAK;AACpB,MAAMG,iBAAiBH,KAAK;AAG5B,eAAe,SAASI,oBAAoBC,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB,EAAEC,QAAQ;IAChHP,QAAQ,CAACQ,KAAKC;QACZ,IAAID,KAAK,OAAOD,SAASC;QACzB,MAAME,KAAKT;QACX,MAAMU,aAAaT;QAEnB,MAAMU,SAASF,GAAGG,0BAA0B,CAACP,SAASQ,MAAM,EAAEJ,GAAGK,GAAG,EAAEjB,KAAKkB,OAAO,CAACV,SAASR,IAAI;QAChG,MAAMmB,YAAYN,WAAWO,MAAM,CAAC;YAAET,KAAKA;YAAKU,SAAS;gBAAEL,QAAQ;oBAAEM,SAASR,OAAOQ,OAAO;gBAAC;YAAE;QAAE;QACjG,MAAMC,MAAMJ,UAAUA,SAAS,CAACb,UAAU;YAAEC;QAAS;QACrDE,SAAS,MAAM;YAAEe,MAAMD,IAAIE,UAAU;YAAEC,KAAKH,IAAII,aAAa;QAAC;IAChE;AACF"}
1
+ {"version":3,"sources":["transformSync.ts"],"sourcesContent":["import swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\nconst lazySWC = lazy('@swc/core');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n swcPrepareOptions(tsconfig, (err, swcOptions) => {\n if (err) return callback(err);\n const swc = lazySWC();\n swc\n .transform(contents, {\n ...(fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: fileName,\n })\n .then((output) => callback(null, output))\n .catch(callback);\n });\n}\n"],"names":["swcPrepareOptions","lazy","lazySWC","transformSyncWorker","contents","fileName","tsconfig","callback","err","swcOptions","swc","transform","endsWith","tsxOptions","nonTsxOptions","filename","then","output","catch"],"mappings":"AAAA,OAAOA,uBAAuB,8BAA8B;AAE5D,aAAa;AACb,OAAOC,UAAU,kBAAkB;AACnC,MAAMC,UAAUD,KAAK;AAGrB,eAAe,SAASE,oBAAoBC,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB,EAAEC,QAAQ;IAChHP,kBAAkBM,UAAU,CAACE,KAAKC;QAChC,IAAID,KAAK,OAAOD,SAASC;QACzB,MAAME,MAAMR;QACZQ,IACGC,SAAS,CAACP,UAAU;YACnB,GAAIC,SAASO,QAAQ,CAAC,WAAWP,SAASO,QAAQ,CAAC,UAAUH,WAAWI,UAAU,GAAGJ,WAAWK,aAAa;YAC7GC,UAAUV;QACZ,GACCW,IAAI,CAAC,CAACC,SAAWV,SAAS,MAAMU,SAChCC,KAAK,CAACX;IACX;AACF"}
@@ -0,0 +1,2 @@
1
+ import type { TsConfigResult } from 'get-tsconfig-compat';
2
+ export default function swcPrepareOptions(tsconfig: TsConfigResult, callback: any): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-swc-transform",
3
- "version": "1.8.2",
3
+ "version": "1.8.4",
4
4
  "description": "Typescript transformers for swc. Supports Node >= 0.8",
5
5
  "keywords": [
6
6
  "matcher",
@@ -82,7 +82,7 @@
82
82
  "lodash.difference": "^4.5.0",
83
83
  "object-assign": "^4.1.1",
84
84
  "react": "^19.0.0",
85
- "ts-dev-stack": "^1.5.5",
85
+ "ts-dev-stack": "^1.6.0",
86
86
  "ts-node": "^10.8.2",
87
87
  "typescript": "^5.7.2"
88
88
  },
@@ -1 +0,0 @@
1
- {"version":3,"sources":["loadSWC.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport installModule from 'install-module-linked';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport resolveOnce from 'resolve-once-cb';\n// @ts-ignore\nimport lazy from './lazy.cjs';\nconst swc = lazy('@swc/core');\n\nfunction installBindings(callback) {\n const swcPackagePath = resolve.sync('@swc/core/package.json');\n const swcDir = path.dirname(path.dirname(swcPackagePath));\n const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n installModule(installString, path.dirname(swcDir), callback);\n });\n });\n queue.await(callback);\n}\n\nfunction loadSWC(callback) {\n installBindings((err) => {\n if (err) return callback(err);\n try {\n return callback(null, swc());\n } catch (err) {\n return callback(err);\n }\n });\n}\n\nexport default resolveOnce(loadSWC);\n"],"names":["swc","lazy","installBindings","callback","swcPackagePath","resolve","sync","swcDir","path","dirname","optionalDependencies","JSON","parse","fs","readFileSync","depKey","process","platform","arch","queue","Queue","Object","keys","filter","name","indexOf","map","defer","version","installString","installModule","await","loadSWC","err","resolveOnce"],"mappings":";;;;+BAwCA;;;eAAA;;;yDAxCe;2DACE;0EACS;8DACR;8DACE;oEACI;8DAEP;;;;;;AACjB,IAAMA,MAAMC,IAAAA,gBAAI,EAAC;AAEjB,SAASC,gBAAgBC,QAAQ;IAC/B,IAAMC,iBAAiBC,gBAAO,CAACC,IAAI,CAAC;IACpC,IAAMC,SAASC,aAAI,CAACC,OAAO,CAACD,aAAI,CAACC,OAAO,CAACL;IACzC,IAAM,AAAEM,uBAAyBC,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACV,gBAAgB,SAApEM;IACR,IAAMK,SAAS,AAAC,GAAsBC,OAApBA,QAAQC,QAAQ,EAAC,KAAgB,OAAbD,QAAQE,IAAI;IAElD,IAAMC,QAAQ,IAAIC,gBAAK;IACvBC,OAAOC,IAAI,CAACZ,sBACTa,MAAM,CAAC,SAACC;eAASA,KAAKC,OAAO,CAACV,WAAW;OACzCW,GAAG,CAAC,SAACF;QACJL,MAAMQ,KAAK,CAAC,SAACxB;YACX,IAAMyB,UAAUlB,oBAAoB,CAACc,KAAK;YAC1C,IAAMK,gBAAgB,AAAC,GAASD,OAAPJ,MAAoC,OAA7BI,UAAU,AAAC,IAAW,OAARA,WAAY;YAC1DE,IAAAA,4BAAa,EAACD,eAAerB,aAAI,CAACC,OAAO,CAACF,SAASJ;QACrD;IACF;IACFgB,MAAMY,KAAK,CAAC5B;AACd;AAEA,SAAS6B,QAAQ7B,QAAQ;IACvBD,gBAAgB,SAAC+B;QACf,IAAIA,KAAK,OAAO9B,SAAS8B;QACzB,IAAI;YACF,OAAO9B,SAAS,MAAMH;QACxB,EAAE,OAAOiC,KAAK;YACZ,OAAO9B,SAAS8B;QAClB;IACF;AACF;IAEA,WAAeC,IAAAA,sBAAW,EAACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["loadSWC.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport installModule from 'install-module-linked';\nimport Queue from 'queue-cb';\nimport resolve from 'resolve';\nimport resolveOnce from 'resolve-once-cb';\n// @ts-ignore\nimport lazy from './lazy.cjs';\nconst swc = lazy('@swc/core');\n\nfunction installBindings(callback) {\n const swcPackagePath = resolve.sync('@swc/core/package.json');\n const swcDir = path.dirname(path.dirname(swcPackagePath));\n const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));\n const depKey = `${process.platform}-${process.arch}`;\n\n const queue = new Queue();\n Object.keys(optionalDependencies)\n .filter((name) => name.indexOf(depKey) >= 0)\n .map((name) => {\n queue.defer((callback) => {\n const version = optionalDependencies[name];\n const installString = `${name}${version ? `@${version}` : ''}`;\n installModule(installString, path.dirname(swcDir), callback);\n });\n });\n queue.await(callback);\n}\n\nfunction loadSWC(callback) {\n installBindings((err) => {\n if (err) return callback(err);\n try {\n return callback(null, swc());\n } catch (err) {\n return callback(err);\n }\n });\n}\n\nexport default resolveOnce(loadSWC);\n"],"names":["fs","path","installModule","Queue","resolve","resolveOnce","lazy","swc","installBindings","callback","swcPackagePath","sync","swcDir","dirname","optionalDependencies","JSON","parse","readFileSync","depKey","process","platform","arch","queue","Object","keys","filter","name","indexOf","map","defer","version","installString","await","loadSWC","err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,mBAAmB,wBAAwB;AAClD,OAAOC,WAAW,WAAW;AAC7B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,iBAAiB,kBAAkB;AAC1C,aAAa;AACb,OAAOC,UAAU,aAAa;AAC9B,MAAMC,MAAMD,KAAK;AAEjB,SAASE,gBAAgBC,QAAQ;IAC/B,MAAMC,iBAAiBN,QAAQO,IAAI,CAAC;IACpC,MAAMC,SAASX,KAAKY,OAAO,CAACZ,KAAKY,OAAO,CAACH;IACzC,MAAM,EAAEI,oBAAoB,EAAE,GAAGC,KAAKC,KAAK,CAAChB,GAAGiB,YAAY,CAACP,gBAAgB;IAC5E,MAAMQ,SAAS,GAAGC,QAAQC,QAAQ,CAAC,CAAC,EAAED,QAAQE,IAAI,EAAE;IAEpD,MAAMC,QAAQ,IAAInB;IAClBoB,OAAOC,IAAI,CAACV,sBACTW,MAAM,CAAC,CAACC,OAASA,KAAKC,OAAO,CAACT,WAAW,GACzCU,GAAG,CAAC,CAACF;QACJJ,MAAMO,KAAK,CAAC,CAACpB;YACX,MAAMqB,UAAUhB,oBAAoB,CAACY,KAAK;YAC1C,MAAMK,gBAAgB,GAAGL,OAAOI,UAAU,CAAC,CAAC,EAAEA,SAAS,GAAG,IAAI;YAC9D5B,cAAc6B,eAAe9B,KAAKY,OAAO,CAACD,SAASH;QACrD;IACF;IACFa,MAAMU,KAAK,CAACvB;AACd;AAEA,SAASwB,QAAQxB,QAAQ;IACvBD,gBAAgB,CAAC0B;QACf,IAAIA,KAAK,OAAOzB,SAASyB;QACzB,IAAI;YACF,OAAOzB,SAAS,MAAMF;QACxB,EAAE,OAAO2B,KAAK;YACZ,OAAOzB,SAASyB;QAClB;IACF;AACF;AAEA,eAAe7B,YAAY4B,SAAS"}