ts-swc-transform 1.9.8 → 1.10.0
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.
- package/dist/cjs/lib/swcPrepareOptions.js +10 -14
- package/dist/cjs/lib/swcPrepareOptions.js.map +1 -1
- package/dist/cjs/workers/transformFile.js +27 -29
- package/dist/cjs/workers/transformFile.js.map +1 -1
- package/dist/cjs/workers/transformSync.js +7 -9
- package/dist/cjs/workers/transformSync.js.map +1 -1
- package/dist/esm/lib/swcPrepareOptions.mjs +10 -14
- package/dist/esm/lib/swcPrepareOptions.mjs.map +1 -1
- package/dist/esm/workers/transformFile.mjs +27 -29
- package/dist/esm/workers/transformFile.mjs.map +1 -1
- package/dist/esm/workers/transformSync.mjs +6 -8
- package/dist/esm/workers/transformSync.mjs.map +1 -1
- package/dist/types/lib/swcPrepareOptions.d.ts +1 -1
- package/package.json +6 -6
- package/scripts/postinstall.cjs +31 -0
- package/dist/cjs/lib/swcInstallBindings.js +0 -40
- package/dist/cjs/lib/swcInstallBindings.js.map +0 -1
- package/dist/esm/lib/swcInstallBindings.mjs +0 -22
- package/dist/esm/lib/swcInstallBindings.mjs.map +0 -1
- package/dist/types/lib/swcInstallBindings.d.ts +0 -2
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
var _swcInstallBindings = /*#__PURE__*/ _interop_require_default(require("./swcInstallBindings.js"));
|
|
13
12
|
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
14
13
|
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
15
14
|
function _interop_require_default(obj) {
|
|
@@ -21,18 +20,15 @@ var _require = typeof require === 'undefined' ? _module.default.createRequire(re
|
|
|
21
20
|
var tsLazy = (0, _lazycache.default)(_require)('typescript');
|
|
22
21
|
var swcLazy = (0, _lazycache.default)(_require)('@swc/core');
|
|
23
22
|
var transpilerLazy = (0, _lazycache.default)(_require)('ts-node/transpilers/swc');
|
|
24
|
-
function swcPrepareOptions(tsconfig
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
callback(err);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
23
|
+
function swcPrepareOptions(tsconfig) {
|
|
24
|
+
try {
|
|
25
|
+
var ts = tsLazy();
|
|
26
|
+
var swc = swcLazy();
|
|
27
|
+
var transpiler = transpilerLazy();
|
|
28
|
+
var parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, _path.default.dirname(tsconfig.path));
|
|
29
|
+
return transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc');
|
|
30
|
+
} catch (err) {
|
|
31
|
+
console.log("swcPrepareOptions failed: ".concat(err.message));
|
|
32
|
+
}
|
|
37
33
|
}
|
|
38
34
|
/* 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":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst tsLazy = lazy(_require)('typescript');\nconst swcLazy = lazy(_require)('@swc/core');\nconst transpilerLazy = lazy(_require)('ts-node/transpilers/swc');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n\nexport default function swcPrepareOptions(tsconfig: TsConfigResult) {\n try {\n const ts = tsLazy();\n const swc = swcLazy();\n const transpiler = transpilerLazy();\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n return transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc');\n } catch (err) {\n console.log(`swcPrepareOptions failed: ${err.message}`);\n }\n}\n"],"names":["swcPrepareOptions","_require","require","Module","createRequire","tsLazy","lazy","swcLazy","transpilerLazy","tsconfig","ts","swc","transpiler","parsed","parseJsonConfigFileContent","config","sys","path","dirname","createSwcOptions","options","undefined","err","console","log","message"],"mappings":";;;;+BAWA;;;eAAwBA;;;2DAXP;6DAEE;gEACF;;;;;;AACjB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,SAASC,IAAAA,kBAAI,EAACL,UAAU;AAC9B,IAAMM,UAAUD,IAAAA,kBAAI,EAACL,UAAU;AAC/B,IAAMO,iBAAiBF,IAAAA,kBAAI,EAACL,UAAU;AAIvB,SAASD,kBAAkBS,QAAwB;IAChE,IAAI;QACF,IAAMC,KAAKL;QACX,IAAMM,MAAMJ;QACZ,IAAMK,aAAaJ;QACnB,IAAMK,SAASH,GAAGI,0BAA0B,CAACL,SAASM,MAAM,EAAEL,GAAGM,GAAG,EAAEC,aAAI,CAACC,OAAO,CAACT,SAASQ,IAAI;QAChG,OAAOL,WAAWO,gBAAgB,CAACN,OAAOO,OAAO,EAAEC,WAAWV,KAAK;IACrE,EAAE,OAAOW,KAAK;QACZC,QAAQC,GAAG,CAAC,AAAC,6BAAwC,OAAZF,IAAIG,OAAO;IACtD;AACF"}
|
|
@@ -132,35 +132,33 @@ function transformFileWorker(src, dest, type, options, callback) {
|
|
|
132
132
|
tsconfig.config.compilerOptions.module = 'CommonJS';
|
|
133
133
|
tsconfig.config.compilerOptions.target = 'ES5';
|
|
134
134
|
}
|
|
135
|
-
(0, _swcPrepareOptions.default)(tsconfig
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return err ? callback(err) : callback(null, _path.default.relative(dest, destFilePath));
|
|
161
|
-
});
|
|
135
|
+
var swcOptions = (0, _swcPrepareOptions.default)(tsconfig);
|
|
136
|
+
var swc = swcLazy();
|
|
137
|
+
var basename = _path.default.basename(src);
|
|
138
|
+
swc.transformFile(src, _object_spread_props(_object_spread({}, basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions), {
|
|
139
|
+
filename: basename
|
|
140
|
+
})).then(function(output) {
|
|
141
|
+
// infer extension and patch .mjs imports
|
|
142
|
+
var ext = _path.default.extname(basename);
|
|
143
|
+
if (type === 'esm') {
|
|
144
|
+
ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;
|
|
145
|
+
output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');
|
|
146
|
+
ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;
|
|
147
|
+
output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');
|
|
148
|
+
} else {
|
|
149
|
+
ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;
|
|
150
|
+
output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');
|
|
151
|
+
output.code += interopClientDefaultExport;
|
|
152
|
+
}
|
|
153
|
+
var destFilePath = _path.default.join(dest, basename.replace(/\.[^/.]+$/, '') + ext);
|
|
154
|
+
(0, _mkdirpclassic.default)(_path.default.dirname(destFilePath), function() {
|
|
155
|
+
var queue = new _queuecb.default();
|
|
156
|
+
queue.defer(_fs.default.writeFile.bind(null, destFilePath, output.code, 'utf8'));
|
|
157
|
+
!options.sourceMaps || queue.defer(_fs.default.writeFile.bind(null, "".concat(destFilePath, ".map"), output.map, 'utf8'));
|
|
158
|
+
queue.await(function(err) {
|
|
159
|
+
return err ? callback(err) : callback(null, _path.default.relative(dest, destFilePath));
|
|
162
160
|
});
|
|
163
|
-
})
|
|
164
|
-
});
|
|
161
|
+
});
|
|
162
|
+
}).catch(callback);
|
|
165
163
|
}
|
|
166
164
|
/* 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":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\n\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst swcLazy = lazy(_require)('@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;\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 swcOptions = swcPrepareOptions(tsconfig);\n const swc = swcLazy();\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) => (err ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n })\n .catch(callback);\n}\n"],"names":["transformFileWorker","_require","require","Module","createRequire","swcLazy","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","config","compilerOptions","module","target","swcOptions","swcPrepareOptions","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","err","relative","catch"],"mappings":"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"}
|
|
@@ -71,14 +71,12 @@ function _object_spread_props(target, source) {
|
|
|
71
71
|
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
72
72
|
var swcLazy = (0, _lazycache.default)(_require)('@swc/core');
|
|
73
73
|
function transformSyncWorker(contents, fileName, tsconfig, callback) {
|
|
74
|
-
(0, _swcPrepareOptions.default)(tsconfig
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}).catch(callback);
|
|
82
|
-
});
|
|
74
|
+
var swcOptions = (0, _swcPrepareOptions.default)(tsconfig);
|
|
75
|
+
var swc = swcLazy();
|
|
76
|
+
swc.transform(contents, _object_spread_props(_object_spread({}, fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions), {
|
|
77
|
+
filename: fileName
|
|
78
|
+
})).then(function(output) {
|
|
79
|
+
return callback(null, output);
|
|
80
|
+
}).catch(callback);
|
|
83
81
|
}
|
|
84
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":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformSync.ts"],"sourcesContent":["import swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst swcLazy = lazy(_require)('@swc/core');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformSync.ts"],"sourcesContent":["import swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst swcLazy = lazy(_require)('@swc/core');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = swcLazy();\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"],"names":["transformSyncWorker","_require","require","Module","createRequire","swcLazy","lazy","contents","fileName","tsconfig","callback","swcOptions","swcPrepareOptions","swc","transform","endsWith","tsxOptions","nonTsxOptions","filename","then","output","catch"],"mappings":";;;;+BAQA;;;eAAwBA;;;wEARM;6DAEX;gEACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACjB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,UAAUC,IAAAA,kBAAI,EAACL,UAAU;AAGhB,SAASD,oBAAoBO,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB,EAAEC,QAAQ;IAChH,IAAMC,aAAaC,IAAAA,0BAAiB,EAACH;IACrC,IAAMI,MAAMR;IACZQ,IACGC,SAAS,CAACP,UAAU,wCACfC,SAASO,QAAQ,CAAC,WAAWP,SAASO,QAAQ,CAAC,UAAUJ,WAAWK,UAAU,GAAGL,WAAWM,aAAa;QAC7GC,UAAUV;QAEXW,IAAI,CAAC,SAACC;eAAWV,SAAS,MAAMU;OAChCC,KAAK,CAACX;AACX"}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import swcInstallBindings from './swcInstallBindings.mjs';
|
|
3
2
|
import Module from 'module';
|
|
4
3
|
import lazy from 'lazy-cache';
|
|
5
4
|
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
6
5
|
const tsLazy = lazy(_require)('typescript');
|
|
7
6
|
const swcLazy = lazy(_require)('@swc/core');
|
|
8
7
|
const transpilerLazy = lazy(_require)('ts-node/transpilers/swc');
|
|
9
|
-
export default function swcPrepareOptions(tsconfig
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
callback(err);
|
|
20
|
-
}
|
|
21
|
-
});
|
|
8
|
+
export default function swcPrepareOptions(tsconfig) {
|
|
9
|
+
try {
|
|
10
|
+
const ts = tsLazy();
|
|
11
|
+
const swc = swcLazy();
|
|
12
|
+
const transpiler = transpilerLazy();
|
|
13
|
+
const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));
|
|
14
|
+
return transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc');
|
|
15
|
+
} catch (err) {
|
|
16
|
+
console.log(`swcPrepareOptions failed: ${err.message}`);
|
|
17
|
+
}
|
|
22
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst tsLazy = lazy(_require)('typescript');\nconst swcLazy = lazy(_require)('@swc/core');\nconst transpilerLazy = lazy(_require)('ts-node/transpilers/swc');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n\nexport default function swcPrepareOptions(tsconfig: TsConfigResult) {\n try {\n const ts = tsLazy();\n const swc = swcLazy();\n const transpiler = transpilerLazy();\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n return transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc');\n } catch (err) {\n console.log(`swcPrepareOptions failed: ${err.message}`);\n }\n}\n"],"names":["path","Module","lazy","_require","require","createRequire","url","tsLazy","swcLazy","transpilerLazy","swcPrepareOptions","tsconfig","ts","swc","transpiler","parsed","parseJsonConfigFileContent","config","sys","dirname","createSwcOptions","options","undefined","err","console","log","message"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAExB,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,aAAa;AAC9B,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,SAASL,KAAKC,UAAU;AAC9B,MAAMK,UAAUN,KAAKC,UAAU;AAC/B,MAAMM,iBAAiBP,KAAKC,UAAU;AAItC,eAAe,SAASO,kBAAkBC,QAAwB;IAChE,IAAI;QACF,MAAMC,KAAKL;QACX,MAAMM,MAAML;QACZ,MAAMM,aAAaL;QACnB,MAAMM,SAASH,GAAGI,0BAA0B,CAACL,SAASM,MAAM,EAAEL,GAAGM,GAAG,EAAElB,KAAKmB,OAAO,CAACR,SAASX,IAAI;QAChG,OAAOc,WAAWM,gBAAgB,CAACL,OAAOM,OAAO,EAAEC,WAAWT,KAAK;IACrE,EAAE,OAAOU,KAAK;QACZC,QAAQC,GAAG,CAAC,CAAC,0BAA0B,EAAEF,IAAIG,OAAO,EAAE;IACxD;AACF"}
|
|
@@ -68,33 +68,31 @@ export default function transformFileWorker(src, dest, type, options, callback)
|
|
|
68
68
|
tsconfig.config.compilerOptions.module = 'CommonJS';
|
|
69
69
|
tsconfig.config.compilerOptions.target = 'ES5';
|
|
70
70
|
}
|
|
71
|
-
swcPrepareOptions(tsconfig
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}).catch(callback);
|
|
99
|
-
});
|
|
71
|
+
const swcOptions = swcPrepareOptions(tsconfig);
|
|
72
|
+
const swc = swcLazy();
|
|
73
|
+
const basename = path.basename(src);
|
|
74
|
+
swc.transformFile(src, {
|
|
75
|
+
...basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions,
|
|
76
|
+
filename: basename
|
|
77
|
+
}).then((output)=>{
|
|
78
|
+
// infer extension and patch .mjs imports
|
|
79
|
+
let ext = path.extname(basename);
|
|
80
|
+
if (type === 'esm') {
|
|
81
|
+
ext = importReplaceMJS.indexOf(ext) >= 0 ? '.mjs' : ext;
|
|
82
|
+
output.code = makeReplacements(output.code, regexESM, importReplaceMJS, '.mjs');
|
|
83
|
+
ext = importReplaceCJS.indexOf(ext) >= 0 ? '.cjs' : ext;
|
|
84
|
+
output.code = makeReplacements(output.code, regexESM, importReplaceCJS, '.cjs');
|
|
85
|
+
} else {
|
|
86
|
+
ext = requireReplaceJS.indexOf(ext) >= 0 ? '.js' : ext;
|
|
87
|
+
output.code = makeReplacements(output.code, regexCJS, requireReplaceJS, '.js');
|
|
88
|
+
output.code += interopClientDefaultExport;
|
|
89
|
+
}
|
|
90
|
+
const destFilePath = path.join(dest, basename.replace(/\.[^/.]+$/, '') + ext);
|
|
91
|
+
mkdirp(path.dirname(destFilePath), ()=>{
|
|
92
|
+
const queue = new Queue();
|
|
93
|
+
queue.defer(fs.writeFile.bind(null, destFilePath, output.code, 'utf8'));
|
|
94
|
+
!options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${destFilePath}.map`, output.map, 'utf8'));
|
|
95
|
+
queue.await((err)=>err ? callback(err) : callback(null, path.relative(dest, destFilePath)));
|
|
96
|
+
});
|
|
97
|
+
}).catch(callback);
|
|
100
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\n\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst swcLazy = lazy(_require)('@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;\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 swcOptions = swcPrepareOptions(tsconfig);\n const swc = swcLazy();\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) => (err ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n })\n .catch(callback);\n}\n"],"names":["fs","path","mkdirp","Queue","swcPrepareOptions","Module","lazy","_require","require","createRequire","url","swcLazy","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","config","compilerOptions","module","target","swcOptions","swc","basename","transformFile","endsWith","tsxOptions","nonTsxOptions","filename","then","output","extname","destFilePath","join","replace","dirname","queue","defer","writeFile","bind","sourceMaps","map","await","err","relative","catch"],"mappings":"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"}
|
|
@@ -4,12 +4,10 @@ import lazy from 'lazy-cache';
|
|
|
4
4
|
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
5
5
|
const swcLazy = lazy(_require)('@swc/core');
|
|
6
6
|
export default function transformSyncWorker(contents, fileName, tsconfig, callback) {
|
|
7
|
-
swcPrepareOptions(tsconfig
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}).then((output)=>callback(null, output)).catch(callback);
|
|
14
|
-
});
|
|
7
|
+
const swcOptions = swcPrepareOptions(tsconfig);
|
|
8
|
+
const swc = swcLazy();
|
|
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);
|
|
15
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformSync.ts"],"sourcesContent":["import swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst swcLazy = lazy(_require)('@swc/core');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformSync.ts"],"sourcesContent":["import swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst swcLazy = lazy(_require)('@swc/core');\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult, callback) {\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = swcLazy();\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"],"names":["swcPrepareOptions","Module","lazy","_require","require","createRequire","url","swcLazy","transformSyncWorker","contents","fileName","tsconfig","callback","swcOptions","swc","transform","endsWith","tsxOptions","nonTsxOptions","filename","then","output","catch"],"mappings":"AAAA,OAAOA,uBAAuB,8BAA8B;AAE5D,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,aAAa;AAC9B,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,UAAUL,KAAKC,UAAU;AAG/B,eAAe,SAASK,oBAAoBC,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB,EAAEC,QAAQ;IAChH,MAAMC,aAAab,kBAAkBW;IACrC,MAAMG,MAAMP;IACZO,IACGC,SAAS,CAACN,UAAU;QACnB,GAAIC,SAASM,QAAQ,CAAC,WAAWN,SAASM,QAAQ,CAAC,UAAUH,WAAWI,UAAU,GAAGJ,WAAWK,aAAa;QAC7GC,UAAUT;IACZ,GACCU,IAAI,CAAC,CAACC,SAAWT,SAAS,MAAMS,SAChCC,KAAK,CAACV;AACX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TsConfigResult } from 'get-tsconfig-compat';
|
|
2
|
-
export default function swcPrepareOptions(tsconfig: TsConfigResult
|
|
2
|
+
export default function swcPrepareOptions(tsconfig: TsConfigResult): any;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-swc-transform",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Typescript transformers for swc. Supports Node >= 0.8",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"matcher",
|
|
@@ -36,13 +36,14 @@
|
|
|
36
36
|
"tst": "bin/cli.js"
|
|
37
37
|
},
|
|
38
38
|
"files": [
|
|
39
|
-
"dist"
|
|
39
|
+
"dist",
|
|
40
|
+
"scripts"
|
|
40
41
|
],
|
|
41
42
|
"scripts": {
|
|
42
43
|
"build": "tsds build",
|
|
43
|
-
"depcheck": "depcheck",
|
|
44
44
|
"deploy": "tsds deploy",
|
|
45
|
-
"format": "biome check --write --unsafe src/ test/",
|
|
45
|
+
"format": "biome check --write --unsafe src/ test/ scripts/",
|
|
46
|
+
"postinstall": "node ./scripts/postinstall.cjs",
|
|
46
47
|
"test": "tsds test:node --no-timeouts",
|
|
47
48
|
"test:engines": "nvu engines npm test",
|
|
48
49
|
"version": "",
|
|
@@ -59,11 +60,10 @@
|
|
|
59
60
|
"lazy-cache": "^2.0.2",
|
|
60
61
|
"minimatch": "^3.1.2",
|
|
61
62
|
"mkdirp-classic": "^0.5.3",
|
|
62
|
-
"node-version-call": "^1.4.
|
|
63
|
+
"node-version-call": "^1.4.2",
|
|
63
64
|
"path-posix": "^1.0.0",
|
|
64
65
|
"queue-cb": "^1.4.4",
|
|
65
66
|
"resolve": "^1.22.10",
|
|
66
|
-
"resolve-once-cb": "^0.1.2",
|
|
67
67
|
"resolve-once-map-cb": "^0.1.0",
|
|
68
68
|
"rimraf2": "^2.8.2",
|
|
69
69
|
"ts-node": "*",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const installModule = require('install-module-linked');
|
|
5
|
+
const Queue = require('queue-cb');
|
|
6
|
+
const resolve = require('resolve');
|
|
7
|
+
|
|
8
|
+
function patch(callback) {
|
|
9
|
+
const swcPackagePath = resolve.sync('@swc/core/package.json');
|
|
10
|
+
const swcDir = path.dirname(path.dirname(swcPackagePath));
|
|
11
|
+
const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));
|
|
12
|
+
const depKey = `${process.platform}-${process.arch}`;
|
|
13
|
+
|
|
14
|
+
const queue = new Queue();
|
|
15
|
+
Object.keys(optionalDependencies)
|
|
16
|
+
.filter((name) => name.indexOf(depKey) >= 0)
|
|
17
|
+
.map((name) => {
|
|
18
|
+
queue.defer((callback) => {
|
|
19
|
+
const version = optionalDependencies[name];
|
|
20
|
+
const installString = `${name}${version ? `@${version}` : ''}`;
|
|
21
|
+
installModule(installString, path.dirname(swcDir), callback);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
queue.await(callback);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// run patch
|
|
28
|
+
patch((err) => {
|
|
29
|
+
!err || console.log(err.message);
|
|
30
|
+
process.exit(0);
|
|
31
|
+
});
|
|
@@ -1,40 +0,0 @@
|
|
|
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 _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
|
-
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
|
-
var _installmodulelinked = /*#__PURE__*/ _interop_require_default(require("install-module-linked"));
|
|
14
|
-
var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
|
|
15
|
-
var _resolve = /*#__PURE__*/ _interop_require_default(require("resolve"));
|
|
16
|
-
var _resolveoncecb = /*#__PURE__*/ _interop_require_default(require("resolve-once-cb"));
|
|
17
|
-
function _interop_require_default(obj) {
|
|
18
|
-
return obj && obj.__esModule ? obj : {
|
|
19
|
-
default: obj
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function installSWCBindings(callback) {
|
|
23
|
-
var swcPackagePath = _resolve.default.sync('@swc/core/package.json');
|
|
24
|
-
var swcDir = _path.default.dirname(_path.default.dirname(swcPackagePath));
|
|
25
|
-
var optionalDependencies = JSON.parse(_fs.default.readFileSync(swcPackagePath, 'utf8')).optionalDependencies;
|
|
26
|
-
var depKey = "".concat(process.platform, "-").concat(process.arch);
|
|
27
|
-
var queue = new _queuecb.default();
|
|
28
|
-
Object.keys(optionalDependencies).filter(function(name) {
|
|
29
|
-
return name.indexOf(depKey) >= 0;
|
|
30
|
-
}).map(function(name) {
|
|
31
|
-
queue.defer(function(callback) {
|
|
32
|
-
var version = optionalDependencies[name];
|
|
33
|
-
var installString = "".concat(name).concat(version ? "@".concat(version) : '');
|
|
34
|
-
(0, _installmodulelinked.default)(installString, _path.default.dirname(swcDir), callback);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
queue.await(callback);
|
|
38
|
-
}
|
|
39
|
-
var _default = (0, _resolveoncecb.default)(installSWCBindings);
|
|
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; }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import installModule from 'install-module-linked';
|
|
4
|
-
import Queue from 'queue-cb';
|
|
5
|
-
import resolve from 'resolve';
|
|
6
|
-
import resolveOnce from 'resolve-once-cb';
|
|
7
|
-
function installSWCBindings(callback) {
|
|
8
|
-
const swcPackagePath = resolve.sync('@swc/core/package.json');
|
|
9
|
-
const swcDir = path.dirname(path.dirname(swcPackagePath));
|
|
10
|
-
const { optionalDependencies } = JSON.parse(fs.readFileSync(swcPackagePath, 'utf8'));
|
|
11
|
-
const depKey = `${process.platform}-${process.arch}`;
|
|
12
|
-
const queue = new Queue();
|
|
13
|
-
Object.keys(optionalDependencies).filter((name)=>name.indexOf(depKey) >= 0).map((name)=>{
|
|
14
|
-
queue.defer((callback)=>{
|
|
15
|
-
const version = optionalDependencies[name];
|
|
16
|
-
const installString = `${name}${version ? `@${version}` : ''}`;
|
|
17
|
-
installModule(installString, path.dirname(swcDir), callback);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
queue.await(callback);
|
|
21
|
-
}
|
|
22
|
-
export default resolveOnce(installSWCBindings);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/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"}
|