ts-swc-transform 1.9.5 → 1.9.6
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 +9 -7
- package/dist/cjs/lib/swcPrepareOptions.js.map +1 -1
- package/dist/cjs/lib/wrapWorker.js +6 -4
- package/dist/cjs/lib/wrapWorker.js.map +1 -1
- package/dist/cjs/lib/wrapWorkerSync.js +6 -4
- package/dist/cjs/lib/wrapWorkerSync.js.map +1 -1
- package/dist/cjs/transformDirectory.js +1 -1
- package/dist/cjs/transformDirectory.js.map +1 -1
- package/dist/cjs/transformFile.js +1 -1
- package/dist/cjs/transformFile.js.map +1 -1
- package/dist/cjs/transformSync.js +1 -1
- package/dist/cjs/transformSync.js.map +1 -1
- package/dist/cjs/transformTypes.js +1 -1
- package/dist/cjs/transformTypes.js.map +1 -1
- package/dist/cjs/workers/transformFile.js +5 -3
- package/dist/cjs/workers/transformFile.js.map +1 -1
- package/dist/cjs/workers/transformSync.js +5 -3
- package/dist/cjs/workers/transformSync.js.map +1 -1
- package/dist/cjs/workers/transformTypes.js +5 -3
- package/dist/cjs/workers/transformTypes.js.map +1 -1
- package/dist/esm/lib/swcPrepareOptions.mjs +9 -8
- package/dist/esm/lib/swcPrepareOptions.mjs.map +1 -1
- package/dist/esm/lib/wrapWorker.mjs +6 -4
- package/dist/esm/lib/wrapWorker.mjs.map +1 -1
- package/dist/esm/lib/wrapWorkerSync.mjs +6 -4
- package/dist/esm/lib/wrapWorkerSync.mjs.map +1 -1
- package/dist/esm/transformDirectory.mjs +1 -1
- package/dist/esm/transformDirectory.mjs.map +1 -1
- package/dist/esm/transformFile.mjs +1 -1
- package/dist/esm/transformFile.mjs.map +1 -1
- package/dist/esm/transformSync.mjs +1 -1
- package/dist/esm/transformSync.mjs.map +1 -1
- package/dist/esm/transformTypes.mjs +1 -1
- package/dist/esm/transformTypes.mjs.map +1 -1
- package/dist/esm/workers/transformFile.mjs +5 -4
- package/dist/esm/workers/transformFile.mjs.map +1 -1
- package/dist/esm/workers/transformSync.mjs +5 -4
- package/dist/esm/workers/transformSync.mjs.map +1 -1
- package/dist/esm/workers/transformTypes.mjs +5 -4
- package/dist/esm/workers/transformTypes.mjs.map +1 -1
- package/dist/types/lib/fileURLToPath.d.ts +1 -2
- package/package.json +2 -3
- package/dist/cjs/lib/lazy.js +0 -3
- package/dist/cjs/lib/lazy.js.map +0 -1
- package/dist/esm/lib/lazy.cjs +0 -1
- package/dist/esm/lib/lazy.cjs.map +0 -1
- package/dist/types/lib/lazy.d.cts +0 -1
|
@@ -10,22 +10,24 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
12
|
var _swcInstallBindings = /*#__PURE__*/ _interop_require_default(require("./swcInstallBindings.js"));
|
|
13
|
-
var
|
|
13
|
+
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
14
|
+
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
14
15
|
function _interop_require_default(obj) {
|
|
15
16
|
return obj && obj.__esModule ? obj : {
|
|
16
17
|
default: obj
|
|
17
18
|
};
|
|
18
19
|
}
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var
|
|
20
|
+
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
21
|
+
var tsLazy = (0, _lazycache.default)(_require)('typescript');
|
|
22
|
+
var swcLazy = (0, _lazycache.default)(_require)('@swc/core');
|
|
23
|
+
var transpilerLazy = (0, _lazycache.default)(_require)('ts-node/transpilers/swc');
|
|
22
24
|
function swcPrepareOptions(tsconfig, callback) {
|
|
23
25
|
(0, _swcInstallBindings.default)(function(err) {
|
|
24
26
|
if (err) return callback(err);
|
|
25
27
|
try {
|
|
26
|
-
var ts =
|
|
27
|
-
var swc =
|
|
28
|
-
var transpiler =
|
|
28
|
+
var ts = tsLazy();
|
|
29
|
+
var swc = swcLazy();
|
|
30
|
+
var transpiler = transpilerLazy();
|
|
29
31
|
var parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, _path.default.dirname(tsconfig.path));
|
|
30
32
|
callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));
|
|
31
33
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\nimport swcInstallBindings from './swcInstallBindings.js';\n\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\nimport swcInstallBindings from './swcInstallBindings.js';\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, callback) {\n swcInstallBindings((err) => {\n if (err) return callback(err);\n\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 callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));\n } catch (err) {\n callback(err);\n }\n });\n}\n"],"names":["swcPrepareOptions","_require","require","Module","createRequire","tsLazy","lazy","swcLazy","transpilerLazy","tsconfig","callback","swcInstallBindings","err","ts","swc","transpiler","parsed","parseJsonConfigFileContent","config","sys","path","dirname","createSwcOptions","options","undefined"],"mappings":";;;;+BAYA;;;eAAwBA;;;2DAZP;yEACc;6DAEZ;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,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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
1
|
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
3
|
value: true
|
|
@@ -9,7 +8,8 @@ Object.defineProperty(exports, "default", {
|
|
|
9
8
|
return wrapWorker;
|
|
10
9
|
}
|
|
11
10
|
});
|
|
12
|
-
var
|
|
11
|
+
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
12
|
+
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
13
13
|
function _array_like_to_array(arr, len) {
|
|
14
14
|
if (len == null || len > arr.length) len = arr.length;
|
|
15
15
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -40,13 +40,15 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
40
40
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
41
41
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
42
42
|
}
|
|
43
|
-
var
|
|
43
|
+
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
44
|
+
var call = (0, _lazycache.default)(_require)('node-version-call');
|
|
44
45
|
function wrapWorker(workerPath) {
|
|
46
|
+
var workerLazy = (0, _lazycache.default)(_require)(workerPath);
|
|
45
47
|
return function workerWrapper(version) {
|
|
46
48
|
for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
47
49
|
args[_key - 1] = arguments[_key];
|
|
48
50
|
}
|
|
49
|
-
if (version === 'local') return (
|
|
51
|
+
if (version === 'local') return workerLazy().apply(null, args);
|
|
50
52
|
var callback = args.pop();
|
|
51
53
|
try {
|
|
52
54
|
callback(null, call().apply(this, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorker.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorker.ts"],"sourcesContent":["import Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst call = lazy(_require)('node-version-call');\n\nexport default function wrapWorker(workerPath: string) {\n const workerLazy = lazy(_require)(workerPath);\n\n return function workerWrapper(version, ...args) {\n if (version === 'local') return workerLazy().apply(null, args);\n\n const callback = args.pop();\n try {\n callback(null, call()({ version, callbacks: true }, workerPath, ...args));\n } catch (err) {\n callback(err);\n }\n };\n}\n"],"names":["wrapWorker","_require","require","Module","createRequire","call","lazy","workerPath","workerLazy","workerWrapper","version","args","apply","callback","pop","callbacks","err"],"mappings":";;;;+BAKA;;;eAAwBA;;;6DALL;gEACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACjB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,OAAOC,IAAAA,kBAAI,EAACL,UAAU;AAEb,SAASD,WAAWO,UAAkB;IACnD,IAAMC,aAAaF,IAAAA,kBAAI,EAACL,UAAUM;IAElC,OAAO,SAASE,cAAcC,OAAO;QAAE,IAAA,IAAA,OAAA,UAAA,QAAA,AAAGC,OAAH,UAAA,OAAA,IAAA,OAAA,QAAA,OAAA,GAAA,OAAA,MAAA;YAAGA,KAAH,OAAA,KAAA,SAAA,CAAA,KAAO;;QAC5C,IAAID,YAAY,SAAS,OAAOF,aAAaI,KAAK,CAAC,MAAMD;QAEzD,IAAME,WAAWF,KAAKG,GAAG;QACzB,IAAI;YACFD,SAAS,MAAMR,aAAAA,IAAM,EAANA;gBAAO;oBAAEK,SAAAA;oBAASK,WAAW;gBAAK;gBAAGR;aAAoB,CAAzDF,OAAiD,qBAAGM;QACrE,EAAE,OAAOK,KAAK;YACZH,SAASG;QACX;IACF;AACF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
1
|
"use strict";
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
3
|
value: true
|
|
@@ -9,7 +8,8 @@ Object.defineProperty(exports, "default", {
|
|
|
9
8
|
return wrapWorkerSync;
|
|
10
9
|
}
|
|
11
10
|
});
|
|
12
|
-
var
|
|
11
|
+
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
12
|
+
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
13
13
|
function _array_like_to_array(arr, len) {
|
|
14
14
|
if (len == null || len > arr.length) len = arr.length;
|
|
15
15
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -40,13 +40,15 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
40
40
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
41
41
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
42
42
|
}
|
|
43
|
-
var
|
|
43
|
+
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
44
|
+
var call = (0, _lazycache.default)(_require)('node-version-call');
|
|
44
45
|
function wrapWorkerSync(workerPath) {
|
|
46
|
+
var workerLazy = (0, _lazycache.default)(_require)(workerPath);
|
|
45
47
|
return function workerWrapperSync(version) {
|
|
46
48
|
for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
47
49
|
args[_key - 1] = arguments[_key];
|
|
48
50
|
}
|
|
49
|
-
if (version === 'local') return (
|
|
51
|
+
if (version === 'local') return workerLazy().apply(null, args);
|
|
50
52
|
return call().apply(this, [
|
|
51
53
|
{
|
|
52
54
|
version: version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorkerSync.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorkerSync.ts"],"sourcesContent":["import Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst call = lazy(_require)('node-version-call');\n\nexport default function wrapWorkerSync(workerPath: string) {\n const workerLazy = lazy(_require)(workerPath);\n\n return function workerWrapperSync(version, ...args) {\n if (version === 'local') return workerLazy().apply(null, args);\n return call()({ version, callbacks: true }, workerPath, ...args);\n };\n}\n"],"names":["wrapWorkerSync","_require","require","Module","createRequire","call","lazy","workerPath","workerLazy","workerWrapperSync","version","args","apply","callbacks"],"mappings":";;;;+BAKA;;;eAAwBA;;;6DALL;gEACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACjB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,OAAOC,IAAAA,kBAAI,EAACL,UAAU;AAEb,SAASD,eAAeO,UAAkB;IACvD,IAAMC,aAAaF,IAAAA,kBAAI,EAACL,UAAUM;IAElC,OAAO,SAASE,kBAAkBC,OAAO;QAAE,IAAA,IAAA,OAAA,UAAA,QAAA,AAAGC,OAAH,UAAA,OAAA,IAAA,OAAA,QAAA,OAAA,GAAA,OAAA,MAAA;YAAGA,KAAH,OAAA,KAAA,SAAA,CAAA,KAAO;;QAChD,IAAID,YAAY,SAAS,OAAOF,aAAaI,KAAK,CAAC,MAAMD;QACzD,OAAON,aAAAA,IAAM,EAANA;YAAO;gBAAEK,SAAAA;gBAASG,WAAW;YAAK;YAAGN;SAAoB,CAAzDF,OAAiD,qBAAGM;IAC7D;AACF"}
|
|
@@ -25,7 +25,7 @@ function _interop_require_default(obj) {
|
|
|
25
25
|
}
|
|
26
26
|
var major = +process.versions.node.split('.')[0];
|
|
27
27
|
var version = major < 14 ? 'stable' : 'local';
|
|
28
|
-
var __dirname = _path.default.dirname(typeof __filename
|
|
28
|
+
var __dirname = _path.default.dirname(typeof __filename === 'undefined' ? _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()) : __filename);
|
|
29
29
|
var workerWrapper = (0, _wrapWorker.default)(_path.default.resolve(__dirname, '..', 'cjs', 'workers', 'transformDirectory.js'));
|
|
30
30
|
function transformDirectory(src, dest, type, options, callback) {
|
|
31
31
|
if (typeof options === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformDirectory.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformDirectory.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformDirectory.js'));\n\nimport type { TransformDirectoryCallback, TransformDirectoryOptions, TransformResult } from './types.js';\n/**\n * @param {string} src The source directory to traverse.\n * @param {string} dest The output directory to write files to.\n * @param {string} type The type of transform ('esm' or 'cjs').\n * @param {{sourceMaps: boolean}} options Options to pass to swc.\n * @param {(err?: Error) =>} [callback] Optional callback. Uses promise if callback not provided.\n * @returns {void | Promise<any>} Optional promise if callback not provided.\n */\nexport default function transformDirectory(src: string, dest: string, type: string, options?: TransformDirectoryOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<TransformResult[]> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n if (typeof src !== 'string') throw new Error('transformDirectory: unexpected source');\n if (typeof dest !== 'string') throw new Error('transformDirectory: unexpected destination directory');\n if (typeof type !== 'string') throw new Error('transformDirectory: unexpected type');\n\n if (typeof callback === 'function') return workerWrapper(version, src, dest, type, options, callback);\n return new Promise((resolve, reject) =>\n workerWrapper(version, src, dest, type, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["transformDirectory","major","process","versions","node","split","version","__dirname","path","dirname","__filename","url","fileURLToPath","workerWrapper","wrapWorker","resolve","src","dest","type","options","callback","Error","Promise","reject","err","result"],"mappings":";;;;+BASA;;;;;;;CAOC,GACD;;;eAAwBA;;;2DAjBP;0DACD;iEACO;;;;;;AACvB,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,IAAMM,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,gBAAgBC,IAAAA,mBAAU,EAACN,aAAI,CAACO,OAAO,CAACR,WAAW,MAAM,OAAO,WAAW;AAWlE,SAASP,mBAAmBgB,GAAW,EAAEC,IAAY,EAAEC,IAAY,EAAEC,OAAgE,EAAEC,QAAqC;IACzL,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IACAA,UAAUA,WAAW,CAAC;IACtB,IAAI,OAAOH,QAAQ,UAAU,MAAM,IAAIK,MAAM;IAC7C,IAAI,OAAOJ,SAAS,UAAU,MAAM,IAAII,MAAM;IAC9C,IAAI,OAAOH,SAAS,UAAU,MAAM,IAAIG,MAAM;IAE9C,IAAI,OAAOD,aAAa,YAAY,OAAOP,cAAcP,SAASU,KAAKC,MAAMC,MAAMC,SAASC;IAC5F,OAAO,IAAIE,QAAQ,SAACP,SAASQ;eAC3BV,cAAcP,SAASU,KAAKC,MAAMC,MAAMC,SAAS,SAACK,KAAKC;YACrDD,MAAMD,OAAOC,OAAOT,QAAQU;QAC9B;;AAEJ"}
|
|
@@ -25,7 +25,7 @@ function _interop_require_default(obj) {
|
|
|
25
25
|
}
|
|
26
26
|
var major = +process.versions.node.split('.')[0];
|
|
27
27
|
var version = major < 14 ? 'stable' : 'local';
|
|
28
|
-
var __dirname = _path.default.dirname(typeof __filename
|
|
28
|
+
var __dirname = _path.default.dirname(typeof __filename === 'undefined' ? _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()) : __filename);
|
|
29
29
|
var workerWrapper = (0, _wrapWorker.default)(_path.default.resolve(__dirname, '..', 'cjs', 'workers', 'transformFile.js'));
|
|
30
30
|
function transformFile(src, dest, type, options, callback) {
|
|
31
31
|
if (typeof options === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformFile.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformFile.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformFile.js'));\n\nimport type { TransformFileCallback, TransformFileOptions } from './types.js';\n\n/**\n * @param {string} src The source directory to traverse.\n * @param {string} dest The output directory to write files to.\n * @param {string} type The type of transform ('esm' or 'cjs').\n * @param {{sourceMaps: boolean}} options Options to pass to swc.\n * @param {(err?: Error) =>} [callback] Optional callback. Uses promise if callback not provided.\n * @returns {void | Promise<any>} Optional promise if callback not provided.\n */\nexport default function transformFile(src: string, dest: string, type: string, options?: TransformFileOptions | TransformFileCallback, callback?: TransformFileCallback): undefined | Promise<string> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n if (typeof src !== 'string') throw new Error('transformFile: unexpected source');\n if (typeof dest !== 'string') throw new Error('transformFile: unexpected destination directory');\n if (typeof type !== 'string') throw new Error('transformFile: unexpected type');\n\n if (typeof callback === 'function') return workerWrapper(version, src, dest, type, options, callback);\n return new Promise((resolve, reject) =>\n workerWrapper(version, src, dest, type, options, (err?: Error, result?: string) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["transformFile","major","process","versions","node","split","version","__dirname","path","dirname","__filename","url","fileURLToPath","workerWrapper","wrapWorker","resolve","src","dest","type","options","callback","Error","Promise","reject","err","result"],"mappings":";;;;+BAUA;;;;;;;CAOC,GACD;;;eAAwBA;;;2DAlBP;0DACD;iEACO;;;;;;AACvB,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,IAAMM,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,gBAAgBC,IAAAA,mBAAU,EAACN,aAAI,CAACO,OAAO,CAACR,WAAW,MAAM,OAAO,WAAW;AAYlE,SAASP,cAAcgB,GAAW,EAAEC,IAAY,EAAEC,IAAY,EAAEC,OAAsD,EAAEC,QAAgC;IACrK,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IACAA,UAAUA,WAAW,CAAC;IACtB,IAAI,OAAOH,QAAQ,UAAU,MAAM,IAAIK,MAAM;IAC7C,IAAI,OAAOJ,SAAS,UAAU,MAAM,IAAII,MAAM;IAC9C,IAAI,OAAOH,SAAS,UAAU,MAAM,IAAIG,MAAM;IAE9C,IAAI,OAAOD,aAAa,YAAY,OAAOP,cAAcP,SAASU,KAAKC,MAAMC,MAAMC,SAASC;IAC5F,OAAO,IAAIE,QAAQ,SAACP,SAASQ;eAC3BV,cAAcP,SAASU,KAAKC,MAAMC,MAAMC,SAAS,SAACK,KAAaC;YAC7DD,MAAMD,OAAOC,OAAOT,QAAQU;QAC9B;;AAEJ"}
|
|
@@ -21,7 +21,7 @@ function _interop_require_default(obj) {
|
|
|
21
21
|
default: obj
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
var __dirname = _path.default.dirname(typeof __filename
|
|
24
|
+
var __dirname = _path.default.dirname(typeof __filename === 'undefined' ? _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()) : __filename);
|
|
25
25
|
var workerWrapper = (0, _wrapWorkerSync.default)(_path.default.resolve(__dirname, '..', 'cjs', 'workers', 'transformSync.js'));
|
|
26
26
|
function transformSync(contents, fileName, tsconfig) {
|
|
27
27
|
return workerWrapper('stable', contents, fileName, tsconfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorkerSync from './lib/wrapWorkerSync.js';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorkerSync from './lib/wrapWorkerSync.js';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorkerSync(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformSync.js'));\n\nimport type { Output } from '@swc/core';\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n/**\n * @param {string} contents The file contents.\n * @param {string} fileName The filename.\n * @param {TsConfigResult} tsconfig The configuration.\n * @returns {{ code: string, map?: string }} Returns object with the transformed code and source map if option sourceMaps was provided.\n */\nexport default function transformSync(contents: string, fileName: string, tsconfig: TsConfigResult): Output {\n return workerWrapper('stable', contents, fileName, tsconfig);\n}\n"],"names":["transformSync","__dirname","path","dirname","__filename","url","fileURLToPath","workerWrapper","wrapWorkerSync","resolve","contents","fileName","tsconfig"],"mappings":";;;;+BAQA;;;;;CAKC,GACD;;;eAAwBA;;;2DAdP;0DACD;qEACW;;;;;;AAC3B,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,gBAAgBC,IAAAA,uBAAc,EAACN,aAAI,CAACO,OAAO,CAACR,WAAW,MAAM,OAAO,WAAW;AAUtE,SAASD,cAAcU,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB;IAChG,OAAOL,cAAc,UAAUG,UAAUC,UAAUC;AACrD"}
|
|
@@ -24,7 +24,7 @@ function _interop_require_default(obj) {
|
|
|
24
24
|
}
|
|
25
25
|
var major = +process.versions.node.split('.')[0];
|
|
26
26
|
var version = major < 14 ? 'stable' : 'local';
|
|
27
|
-
var __dirname = _path.default.dirname(typeof __filename
|
|
27
|
+
var __dirname = _path.default.dirname(typeof __filename === 'undefined' ? _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()) : __filename);
|
|
28
28
|
var workerWrapper = (0, _wrapWorker.default)(_path.default.resolve(__dirname, '..', 'cjs', 'workers', 'transformTypes.js'));
|
|
29
29
|
function transformTypes(src, dest, options, callback) {
|
|
30
30
|
if (typeof options === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformTypes.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformTypes.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformTypes.js'));\n\nimport type { TransformResult, TransformTypesCallback, TransformTypesOptions } from './types.js';\n\n/**\n * @param {string} src The source directory to traverse.\n * @param {string} dest The output directory to write files to.\n * @param {{tsconfig: TsConfigResult}} options Options.\n * @param {(err?: Error) =>} [callback] Optional callback. Uses promise if callback not provided.\n * @returns {void | Promise<any>} Optional promise if callback not provided.\n */\nexport default function transformTypes(src: string, dest: string, options?: TransformTypesOptions | TransformTypesCallback, callback?: TransformTypesCallback): undefined | Promise<TransformResult[]> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n if (typeof src !== 'string') throw new Error('transformTypes: unexpected source');\n if (typeof dest !== 'string') throw new Error('transformTypes: unexpected destination directory');\n\n if (typeof callback === 'function') return workerWrapper(version, src, dest, options, callback);\n return new Promise((resolve, reject) =>\n workerWrapper(version, src, dest, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["transformTypes","major","process","versions","node","split","version","__dirname","path","dirname","__filename","url","fileURLToPath","workerWrapper","wrapWorker","resolve","src","dest","options","callback","Error","Promise","reject","err","result"],"mappings":";;;;+BAUA;;;;;;CAMC,GACD;;;eAAwBA;;;2DAjBP;0DACD;iEACO;;;;;;AACvB,IAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,IAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,IAAMM,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,gBAAgBC,IAAAA,mBAAU,EAACN,aAAI,CAACO,OAAO,CAACR,WAAW,MAAM,OAAO,WAAW;AAWlE,SAASP,eAAegB,GAAW,EAAEC,IAAY,EAAEC,OAAwD,EAAEC,QAAiC;IAC3J,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IACAA,UAAUA,WAAW,CAAC;IACtB,IAAI,OAAOF,QAAQ,UAAU,MAAM,IAAII,MAAM;IAC7C,IAAI,OAAOH,SAAS,UAAU,MAAM,IAAIG,MAAM;IAE9C,IAAI,OAAOD,aAAa,YAAY,OAAON,cAAcP,SAASU,KAAKC,MAAMC,SAASC;IACtF,OAAO,IAAIE,QAAQ,SAACN,SAASO;eAC3BT,cAAcP,SAASU,KAAKC,MAAMC,SAAS,SAACK,KAAKC;YAC/CD,MAAMD,OAAOC,OAAOR,QAAQS;QAC9B;;AAEJ"}
|
|
@@ -14,7 +14,8 @@ var _gettsconfigcompat = /*#__PURE__*/ _interop_require_wildcard(require("get-ts
|
|
|
14
14
|
var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-classic"));
|
|
15
15
|
var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
|
|
16
16
|
var _swcPrepareOptions = /*#__PURE__*/ _interop_require_default(require("../lib/swcPrepareOptions.js"));
|
|
17
|
-
var
|
|
17
|
+
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
18
|
+
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
18
19
|
function _define_property(obj, key, value) {
|
|
19
20
|
if (key in obj) {
|
|
20
21
|
Object.defineProperty(obj, key, {
|
|
@@ -113,7 +114,8 @@ function _object_spread_props(target, source) {
|
|
|
113
114
|
}
|
|
114
115
|
return target;
|
|
115
116
|
}
|
|
116
|
-
var
|
|
117
|
+
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
118
|
+
var swcLazy = (0, _lazycache.default)(_require)('@swc/core');
|
|
117
119
|
var matchingDeps = '\\s*[\'"`]([^\'"`]+)[\'"`]\\s*';
|
|
118
120
|
var matchingName = '\\s*(?:[\\w${},\\s*]+)\\s*';
|
|
119
121
|
var regexCJS = new RegExp("(?:(?:var|const|let)".concat(matchingName, "=\\s*)?require\\(").concat(matchingDeps, "\\);?"), 'g');
|
|
@@ -174,7 +176,7 @@ function transformFileWorker(src, dest, type, options, callback) {
|
|
|
174
176
|
}
|
|
175
177
|
(0, _swcPrepareOptions.default)(tsconfig, function(err, swcOptions) {
|
|
176
178
|
if (err) return callback(err);
|
|
177
|
-
var swc =
|
|
179
|
+
var swc = swcLazy();
|
|
178
180
|
var basename = _path.default.basename(src);
|
|
179
181
|
swc.transformFile(src, _object_spread_props(_object_spread({}, basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions), {
|
|
180
182
|
filename: basename
|
|
@@ -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 * as getTS from 'get-tsconfig-compat';\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 ? 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 = 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 ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n })\n .catch(callback);\n });\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","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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"}
|
|
@@ -9,7 +9,8 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _swcPrepareOptions = /*#__PURE__*/ _interop_require_default(require("../lib/swcPrepareOptions.js"));
|
|
12
|
-
var
|
|
12
|
+
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
13
|
+
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
13
14
|
function _define_property(obj, key, value) {
|
|
14
15
|
if (key in obj) {
|
|
15
16
|
Object.defineProperty(obj, key, {
|
|
@@ -67,11 +68,12 @@ function _object_spread_props(target, source) {
|
|
|
67
68
|
}
|
|
68
69
|
return target;
|
|
69
70
|
}
|
|
70
|
-
var
|
|
71
|
+
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
72
|
+
var swcLazy = (0, _lazycache.default)(_require)('@swc/core');
|
|
71
73
|
function transformSyncWorker(contents, fileName, tsconfig, callback) {
|
|
72
74
|
(0, _swcPrepareOptions.default)(tsconfig, function(err, swcOptions) {
|
|
73
75
|
if (err) return callback(err);
|
|
74
|
-
var swc =
|
|
76
|
+
var swc = swcLazy();
|
|
75
77
|
swc.transform(contents, _object_spread_props(_object_spread({}, fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions), {
|
|
76
78
|
filename: fileName
|
|
77
79
|
})).then(function(output) {
|
|
@@ -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\
|
|
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 swcPrepareOptions(tsconfig, (err, swcOptions) => {\n if (err) return callback(err);\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}\n"],"names":["transformSyncWorker","_require","require","Module","createRequire","swcLazy","lazy","contents","fileName","tsconfig","callback","swcPrepareOptions","err","swcOptions","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;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"}
|
|
@@ -62,7 +62,8 @@ var _mkdirpclassic = /*#__PURE__*/ _interop_require_default(require("mkdirp-clas
|
|
|
62
62
|
var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
|
|
63
63
|
var _resolveoncemapcb = /*#__PURE__*/ _interop_require_default(require("resolve-once-map-cb"));
|
|
64
64
|
var _rimraf2 = /*#__PURE__*/ _interop_require_default(require("rimraf2"));
|
|
65
|
-
var
|
|
65
|
+
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
66
|
+
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
66
67
|
var _constants = require("../constants.js");
|
|
67
68
|
var _createMatcher = /*#__PURE__*/ _interop_require_default(require("../createMatcher.js"));
|
|
68
69
|
function _define_property(obj, key, value) {
|
|
@@ -163,7 +164,8 @@ function _object_spread_props(target, source) {
|
|
|
163
164
|
}
|
|
164
165
|
return target;
|
|
165
166
|
}
|
|
166
|
-
var
|
|
167
|
+
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
168
|
+
var tsLazy = (0, _lazycache.default)(_require)('typescript');
|
|
167
169
|
function transformTypesWorker(src, dest, options, callback) {
|
|
168
170
|
var tsconfig = options.tsconfig ? options.tsconfig : _gettsconfigcompat.getTsconfig(src);
|
|
169
171
|
var matcher = (0, _createMatcher.default)(tsconfig);
|
|
@@ -217,7 +219,7 @@ function transformTypesWorker(src, dest, options, callback) {
|
|
|
217
219
|
existingTypes.map(function(filePath) {
|
|
218
220
|
return queue.defer(writeType.bind(null, filePath));
|
|
219
221
|
});
|
|
220
|
-
var ts =
|
|
222
|
+
var ts = tsLazy();
|
|
221
223
|
var _$options = _object_spread_props(_object_spread({}, tsconfig.compilerOptions || {}), {
|
|
222
224
|
allowJs: true,
|
|
223
225
|
declaration: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Iterator from 'fs-iterator';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolveOnceMap from 'resolve-once-map-cb';\nimport rimraf2 from 'rimraf2';\nimport type { SourceFile, WriteFileCallbackData } from 'typescript';\n\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\nconst lazyTS = lazy('typescript');\n\nimport { SKIPS, typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nexport default function transformTypesWorker(src, dest, options, callback) {\n const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n const matcher = createMatcher(tsconfig);\n const existingTypes = [];\n\n rimraf2(dest, { disableGlob: true }, () => {\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry) => {\n if (!entry.stats.isFile()) return;\n if (!matcher(entry.fullPath)) return;\n if (SKIPS.indexOf(entry.basename) >= 0) return;\n if (typeFileRegEx.test(entry.basename)) return existingTypes.push(entry.fullPath);\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err) => {\n if (err) return callback(err);\n\n const results = [];\n const pathMap = resolveOnceMap((destPath, cb) => mkdirp(destPath, cb)); // mkdirs only once\n\n function writeFile(sourceFile, destFile, contents, cb) {\n results.push({ from: path.relative(src, sourceFile), to: path.relative(src, destFile) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer(fs.writeFile.bind(null, destPath, contents, 'utf8'));\n q.await(cb);\n }\n\n function writeType(filePath, cb) {\n results.push({ from: path.relative(src, filePath), to: path.relative(src, filePath) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer((cb) =>\n fs.readFile(filePath, (err, contents) => {\n err ? callback(err) : fs.writeFile(destPath, contents, cb);\n })\n );\n q.await(cb);\n }\n\n const queue = new Queue();\n existingTypes.map((filePath) => queue.defer(writeType.bind(null, filePath)));\n\n const ts = lazyTS();\n const options = {\n ...(tsconfig.compilerOptions || {}),\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n };\n const host = ts.createCompilerHost(options);\n host.writeFile = (filePath: string, contents: string, _writeByteOrderMark: boolean, _onError?: (message: string) => void, sourceFiles?: readonly SourceFile[], _data?: WriteFileCallbackData) => {\n queue.defer(writeFile.bind(null, sourceFiles[0].fileName, filePath, contents));\n };\n\n // Prepare and emit the d.ts files\n const program = ts.createProgram(\n entries.map((entry) => entry.fullPath),\n options,\n host\n );\n program.emit();\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n });\n}\n\n// import path from 'path';\n// import spawn from 'cross-spawn-cb';\n// import Iterator from 'fs-iterator';\n// import * as getTS from 'get-tsconfig-compat';\n// import rimraf2 from 'rimraf2';\n\n// import { SKIPS, typeFileRegEx } from '../constants.js';\n// import createMatcher from '../createMatcher.js';\n\n// export default function transformTypesWorker(src, dest, options, callback) {\n// const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n// const matcher = createMatcher(tsconfig);\n\n// const tsArgs = [];\n// for (const key in tsconfig.config.compilerOptions) {\n// const value = tsconfig.config.compilerOptions[key];\n// tsArgs.push(`--${key}`);\n// tsArgs.push(Array.isArray(value) ? value.join(',') : value);\n// }\n\n// rimraf2(dest, { disableGlob: true }, () => {\n// const entries = [];\n// const iterator = new Iterator(src);\n// iterator.forEach(\n// (entry) => {\n// if (!entry.stats.isFile()) return;\n// if (!matcher(entry.fullPath)) return;\n// if (typeFileRegEx.test(entry.basename)) return;\n// if (SKIPS.indexOf(entry.basename) >= 0) return;\n// entries.push(entry);\n// },\n// (err) => {\n// if (err) return callback(err);\n// if (entries.length === 0) return callback();\n// const results = entries.map((entry) => {\n// const result = { from: path.relative(src, entry.fullPath), to: '' };\n// const dirname = path.dirname(result.from);\n// const basename = path.basename(result.from);\n// let ext = path.extname(basename);\n// ext = ext.replace('sx', 's');\n// ext = ext.replace('js', 'ts');\n// result.to = path.join(dirname === '.' ? '' : dirname, `${basename.replace(/\\.[^/.]+$/, '')}.d${ext}`);\n// return result;\n// });\n// const args = ['tsc', ...results.map((x) => path.resolve(src, x.from)), '--declaration', '--emitDeclarationOnly', '--outDir', dest, ...tsArgs];\n// spawn(args[0], args.slice(1), { stdio: 'inherit' }, (err) => (err ? callback(err) : callback(null, results)));\n// }\n// );\n// });\n// }\n"],"names":["transformTypesWorker","lazyTS","lazy","src","dest","options","callback","tsconfig","getTS","getTsconfig","matcher","createMatcher","existingTypes","rimraf2","disableGlob","entries","iterator","Iterator","forEach","entry","stats","isFile","fullPath","SKIPS","indexOf","basename","typeFileRegEx","test","push","concurrency","Infinity","err","writeFile","sourceFile","destFile","contents","cb","results","from","path","relative","to","destPath","join","length","q","Queue","defer","pathMap","bind","dirname","fs","await","writeType","filePath","readFile","resolveOnceMap","mkdirp","queue","map","ts","compilerOptions","allowJs","declaration","emitDeclarationOnly","host","createCompilerHost","_writeByteOrderMark","_onError","sourceFiles","_data","fileName","program","createProgram","emit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Iterator from 'fs-iterator';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolveOnceMap from 'resolve-once-map-cb';\nimport rimraf2 from 'rimraf2';\nimport type { SourceFile, WriteFileCallbackData } from 'typescript';\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');\n\nimport { SKIPS, typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nexport default function transformTypesWorker(src, dest, options, callback) {\n const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n const matcher = createMatcher(tsconfig);\n const existingTypes = [];\n\n rimraf2(dest, { disableGlob: true }, () => {\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry) => {\n if (!entry.stats.isFile()) return;\n if (!matcher(entry.fullPath)) return;\n if (SKIPS.indexOf(entry.basename) >= 0) return;\n if (typeFileRegEx.test(entry.basename)) return existingTypes.push(entry.fullPath);\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err) => {\n if (err) return callback(err);\n\n const results = [];\n const pathMap = resolveOnceMap((destPath, cb) => mkdirp(destPath, cb)); // mkdirs only once\n\n function writeFile(sourceFile, destFile, contents, cb) {\n results.push({ from: path.relative(src, sourceFile), to: path.relative(src, destFile) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer(fs.writeFile.bind(null, destPath, contents, 'utf8'));\n q.await(cb);\n }\n\n function writeType(filePath, cb) {\n results.push({ from: path.relative(src, filePath), to: path.relative(src, filePath) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer((cb) =>\n fs.readFile(filePath, (err, contents) => {\n err ? callback(err) : fs.writeFile(destPath, contents, cb);\n })\n );\n q.await(cb);\n }\n\n const queue = new Queue();\n existingTypes.map((filePath) => queue.defer(writeType.bind(null, filePath)));\n\n const ts = tsLazy();\n const options = {\n ...(tsconfig.compilerOptions || {}),\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n };\n const host = ts.createCompilerHost(options);\n host.writeFile = (filePath: string, contents: string, _writeByteOrderMark: boolean, _onError?: (message: string) => void, sourceFiles?: readonly SourceFile[], _data?: WriteFileCallbackData) => {\n queue.defer(writeFile.bind(null, sourceFiles[0].fileName, filePath, contents));\n };\n\n // Prepare and emit the d.ts files\n const program = ts.createProgram(\n entries.map((entry) => entry.fullPath),\n options,\n host\n );\n program.emit();\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n });\n}\n\n// import path from 'path';\n// import spawn from 'cross-spawn-cb';\n// import Iterator from 'fs-iterator';\n// import * as getTS from 'get-tsconfig-compat';\n// import rimraf2 from 'rimraf2';\n\n// import { SKIPS, typeFileRegEx } from '../constants.js';\n// import createMatcher from '../createMatcher.js';\n\n// export default function transformTypesWorker(src, dest, options, callback) {\n// const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n// const matcher = createMatcher(tsconfig);\n\n// const tsArgs = [];\n// for (const key in tsconfig.config.compilerOptions) {\n// const value = tsconfig.config.compilerOptions[key];\n// tsArgs.push(`--${key}`);\n// tsArgs.push(Array.isArray(value) ? value.join(',') : value);\n// }\n\n// rimraf2(dest, { disableGlob: true }, () => {\n// const entries = [];\n// const iterator = new Iterator(src);\n// iterator.forEach(\n// (entry) => {\n// if (!entry.stats.isFile()) return;\n// if (!matcher(entry.fullPath)) return;\n// if (typeFileRegEx.test(entry.basename)) return;\n// if (SKIPS.indexOf(entry.basename) >= 0) return;\n// entries.push(entry);\n// },\n// (err) => {\n// if (err) return callback(err);\n// if (entries.length === 0) return callback();\n// const results = entries.map((entry) => {\n// const result = { from: path.relative(src, entry.fullPath), to: '' };\n// const dirname = path.dirname(result.from);\n// const basename = path.basename(result.from);\n// let ext = path.extname(basename);\n// ext = ext.replace('sx', 's');\n// ext = ext.replace('js', 'ts');\n// result.to = path.join(dirname === '.' ? '' : dirname, `${basename.replace(/\\.[^/.]+$/, '')}.d${ext}`);\n// return result;\n// });\n// const args = ['tsc', ...results.map((x) => path.resolve(src, x.from)), '--declaration', '--emitDeclarationOnly', '--outDir', dest, ...tsArgs];\n// spawn(args[0], args.slice(1), { stdio: 'inherit' }, (err) => (err ? callback(err) : callback(null, results)));\n// }\n// );\n// });\n// }\n"],"names":["transformTypesWorker","_require","require","Module","createRequire","tsLazy","lazy","src","dest","options","callback","tsconfig","getTS","getTsconfig","matcher","createMatcher","existingTypes","rimraf2","disableGlob","entries","iterator","Iterator","forEach","entry","stats","isFile","fullPath","SKIPS","indexOf","basename","typeFileRegEx","test","push","concurrency","Infinity","err","writeFile","sourceFile","destFile","contents","cb","results","from","path","relative","to","destPath","join","length","q","Queue","defer","pathMap","bind","dirname","fs","await","writeType","filePath","readFile","resolveOnceMap","mkdirp","queue","map","ts","compilerOptions","allowJs","declaration","emitDeclarationOnly","host","createCompilerHost","_writeByteOrderMark","_onError","sourceFiles","_data","fileName","program","createProgram","emit"],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import swcInstallBindings from './swcInstallBindings.mjs';
|
|
3
|
-
|
|
4
|
-
import lazy from '
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
3
|
+
import Module from 'module';
|
|
4
|
+
import lazy from 'lazy-cache';
|
|
5
|
+
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
6
|
+
const tsLazy = lazy(_require)('typescript');
|
|
7
|
+
const swcLazy = lazy(_require)('@swc/core');
|
|
8
|
+
const transpilerLazy = lazy(_require)('ts-node/transpilers/swc');
|
|
8
9
|
export default function swcPrepareOptions(tsconfig, callback) {
|
|
9
10
|
swcInstallBindings((err)=>{
|
|
10
11
|
if (err) return callback(err);
|
|
11
12
|
try {
|
|
12
|
-
const ts =
|
|
13
|
-
const swc =
|
|
14
|
-
const transpiler =
|
|
13
|
+
const ts = tsLazy();
|
|
14
|
+
const swc = swcLazy();
|
|
15
|
+
const transpiler = transpilerLazy();
|
|
15
16
|
const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));
|
|
16
17
|
callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));
|
|
17
18
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\nimport swcInstallBindings from './swcInstallBindings.js';\n\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import path from 'path';\nimport swcInstallBindings from './swcInstallBindings.js';\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, callback) {\n swcInstallBindings((err) => {\n if (err) return callback(err);\n\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 callback(null, transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc'));\n } catch (err) {\n callback(err);\n }\n });\n}\n"],"names":["path","swcInstallBindings","Module","lazy","_require","require","createRequire","url","tsLazy","swcLazy","transpilerLazy","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,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,EAAEC,QAAQ;IAC1EZ,mBAAmB,CAACa;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,EAAErB,KAAKsB,OAAO,CAACV,SAASZ,IAAI;YAChGa,SAAS,MAAMI,WAAWM,gBAAgB,CAACL,OAAOM,OAAO,EAAEC,WAAWT,KAAK;QAC7E,EAAE,OAAOF,KAAK;YACZD,SAASC;QACX;IACF;AACF"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import lazy from '
|
|
3
|
-
const
|
|
1
|
+
import Module from 'module';
|
|
2
|
+
import lazy from 'lazy-cache';
|
|
3
|
+
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
4
|
+
const call = lazy(_require)('node-version-call');
|
|
4
5
|
export default function wrapWorker(workerPath) {
|
|
6
|
+
const workerLazy = lazy(_require)(workerPath);
|
|
5
7
|
return function workerWrapper(version, ...args) {
|
|
6
|
-
if (version === 'local') return
|
|
8
|
+
if (version === 'local') return workerLazy().apply(null, args);
|
|
7
9
|
const callback = args.pop();
|
|
8
10
|
try {
|
|
9
11
|
callback(null, call()({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorker.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorker.ts"],"sourcesContent":["import Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst call = lazy(_require)('node-version-call');\n\nexport default function wrapWorker(workerPath: string) {\n const workerLazy = lazy(_require)(workerPath);\n\n return function workerWrapper(version, ...args) {\n if (version === 'local') return workerLazy().apply(null, args);\n\n const callback = args.pop();\n try {\n callback(null, call()({ version, callbacks: true }, workerPath, ...args));\n } catch (err) {\n callback(err);\n }\n };\n}\n"],"names":["Module","lazy","_require","require","createRequire","url","call","wrapWorker","workerPath","workerLazy","workerWrapper","version","args","apply","callback","pop","callbacks","err"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,UAAU,aAAa;AAC9B,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,OAAOL,KAAKC,UAAU;AAE5B,eAAe,SAASK,WAAWC,UAAkB;IACnD,MAAMC,aAAaR,KAAKC,UAAUM;IAElC,OAAO,SAASE,cAAcC,OAAO,EAAE,GAAGC,IAAI;QAC5C,IAAID,YAAY,SAAS,OAAOF,aAAaI,KAAK,CAAC,MAAMD;QAEzD,MAAME,WAAWF,KAAKG,GAAG;QACzB,IAAI;YACFD,SAAS,MAAMR,OAAO;gBAAEK;gBAASK,WAAW;YAAK,GAAGR,eAAeI;QACrE,EAAE,OAAOK,KAAK;YACZH,SAASG;QACX;IACF;AACF"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import lazy from '
|
|
3
|
-
const
|
|
1
|
+
import Module from 'module';
|
|
2
|
+
import lazy from 'lazy-cache';
|
|
3
|
+
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
4
|
+
const call = lazy(_require)('node-version-call');
|
|
4
5
|
export default function wrapWorkerSync(workerPath) {
|
|
6
|
+
const workerLazy = lazy(_require)(workerPath);
|
|
5
7
|
return function workerWrapperSync(version, ...args) {
|
|
6
|
-
if (version === 'local') return
|
|
8
|
+
if (version === 'local') return workerLazy().apply(null, args);
|
|
7
9
|
return call()({
|
|
8
10
|
version,
|
|
9
11
|
callbacks: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorkerSync.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/wrapWorkerSync.ts"],"sourcesContent":["import Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst call = lazy(_require)('node-version-call');\n\nexport default function wrapWorkerSync(workerPath: string) {\n const workerLazy = lazy(_require)(workerPath);\n\n return function workerWrapperSync(version, ...args) {\n if (version === 'local') return workerLazy().apply(null, args);\n return call()({ version, callbacks: true }, workerPath, ...args);\n };\n}\n"],"names":["Module","lazy","_require","require","createRequire","url","call","wrapWorkerSync","workerPath","workerLazy","workerWrapperSync","version","args","apply","callbacks"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,UAAU,aAAa;AAC9B,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,OAAOL,KAAKC,UAAU;AAE5B,eAAe,SAASK,eAAeC,UAAkB;IACvD,MAAMC,aAAaR,KAAKC,UAAUM;IAElC,OAAO,SAASE,kBAAkBC,OAAO,EAAE,GAAGC,IAAI;QAChD,IAAID,YAAY,SAAS,OAAOF,aAAaI,KAAK,CAAC,MAAMD;QACzD,OAAON,OAAO;YAAEK;YAASG,WAAW;QAAK,GAAGN,eAAeI;IAC7D;AACF"}
|
|
@@ -3,7 +3,7 @@ import url from 'url';
|
|
|
3
3
|
import wrapWorker from './lib/wrapWorker.mjs';
|
|
4
4
|
const major = +process.versions.node.split('.')[0];
|
|
5
5
|
const version = major < 14 ? 'stable' : 'local';
|
|
6
|
-
const __dirname = path.dirname(typeof __filename
|
|
6
|
+
const __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);
|
|
7
7
|
const workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformDirectory.js'));
|
|
8
8
|
/**
|
|
9
9
|
* @param {string} src The source directory to traverse.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformDirectory.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformDirectory.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformDirectory.js'));\n\nimport type { TransformDirectoryCallback, TransformDirectoryOptions, TransformResult } from './types.js';\n/**\n * @param {string} src The source directory to traverse.\n * @param {string} dest The output directory to write files to.\n * @param {string} type The type of transform ('esm' or 'cjs').\n * @param {{sourceMaps: boolean}} options Options to pass to swc.\n * @param {(err?: Error) =>} [callback] Optional callback. Uses promise if callback not provided.\n * @returns {void | Promise<any>} Optional promise if callback not provided.\n */\nexport default function transformDirectory(src: string, dest: string, type: string, options?: TransformDirectoryOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<TransformResult[]> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n if (typeof src !== 'string') throw new Error('transformDirectory: unexpected source');\n if (typeof dest !== 'string') throw new Error('transformDirectory: unexpected destination directory');\n if (typeof type !== 'string') throw new Error('transformDirectory: unexpected type');\n\n if (typeof callback === 'function') return workerWrapper(version, src, dest, type, options, callback);\n return new Promise((resolve, reject) =>\n workerWrapper(version, src, dest, type, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["path","url","wrapWorker","major","process","versions","node","split","version","__dirname","dirname","__filename","fileURLToPath","workerWrapper","resolve","transformDirectory","src","dest","type","options","callback","Error","Promise","reject","err","result"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,gBAAgB,sBAAsB;AAC7C,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,MAAMM,YAAYT,KAAKU,OAAO,CAAC,OAAOC,eAAe,cAAcV,IAAIW,aAAa,CAAC,YAAYX,GAAG,IAAIU;AACxG,MAAME,gBAAgBX,WAAWF,KAAKc,OAAO,CAACL,WAAW,MAAM,OAAO,WAAW;AAGjF;;;;;;;CAOC,GACD,eAAe,SAASM,mBAAmBC,GAAW,EAAEC,IAAY,EAAEC,IAAY,EAAEC,OAAgE,EAAEC,QAAqC;IACzL,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IACAA,UAAUA,WAAW,CAAC;IACtB,IAAI,OAAOH,QAAQ,UAAU,MAAM,IAAIK,MAAM;IAC7C,IAAI,OAAOJ,SAAS,UAAU,MAAM,IAAII,MAAM;IAC9C,IAAI,OAAOH,SAAS,UAAU,MAAM,IAAIG,MAAM;IAE9C,IAAI,OAAOD,aAAa,YAAY,OAAOP,cAAcL,SAASQ,KAAKC,MAAMC,MAAMC,SAASC;IAC5F,OAAO,IAAIE,QAAQ,CAACR,SAASS,SAC3BV,cAAcL,SAASQ,KAAKC,MAAMC,MAAMC,SAAS,CAACK,KAAKC;YACrDD,MAAMD,OAAOC,OAAOV,QAAQW;QAC9B;AAEJ"}
|
|
@@ -3,7 +3,7 @@ import url from 'url';
|
|
|
3
3
|
import wrapWorker from './lib/wrapWorker.mjs';
|
|
4
4
|
const major = +process.versions.node.split('.')[0];
|
|
5
5
|
const version = major < 14 ? 'stable' : 'local';
|
|
6
|
-
const __dirname = path.dirname(typeof __filename
|
|
6
|
+
const __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);
|
|
7
7
|
const workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformFile.js'));
|
|
8
8
|
/**
|
|
9
9
|
* @param {string} src The source directory to traverse.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformFile.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformFile.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformFile.js'));\n\nimport type { TransformFileCallback, TransformFileOptions } from './types.js';\n\n/**\n * @param {string} src The source directory to traverse.\n * @param {string} dest The output directory to write files to.\n * @param {string} type The type of transform ('esm' or 'cjs').\n * @param {{sourceMaps: boolean}} options Options to pass to swc.\n * @param {(err?: Error) =>} [callback] Optional callback. Uses promise if callback not provided.\n * @returns {void | Promise<any>} Optional promise if callback not provided.\n */\nexport default function transformFile(src: string, dest: string, type: string, options?: TransformFileOptions | TransformFileCallback, callback?: TransformFileCallback): undefined | Promise<string> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n if (typeof src !== 'string') throw new Error('transformFile: unexpected source');\n if (typeof dest !== 'string') throw new Error('transformFile: unexpected destination directory');\n if (typeof type !== 'string') throw new Error('transformFile: unexpected type');\n\n if (typeof callback === 'function') return workerWrapper(version, src, dest, type, options, callback);\n return new Promise((resolve, reject) =>\n workerWrapper(version, src, dest, type, options, (err?: Error, result?: string) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["path","url","wrapWorker","major","process","versions","node","split","version","__dirname","dirname","__filename","fileURLToPath","workerWrapper","resolve","transformFile","src","dest","type","options","callback","Error","Promise","reject","err","result"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,gBAAgB,sBAAsB;AAC7C,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,MAAMM,YAAYT,KAAKU,OAAO,CAAC,OAAOC,eAAe,cAAcV,IAAIW,aAAa,CAAC,YAAYX,GAAG,IAAIU;AACxG,MAAME,gBAAgBX,WAAWF,KAAKc,OAAO,CAACL,WAAW,MAAM,OAAO,WAAW;AAIjF;;;;;;;CAOC,GACD,eAAe,SAASM,cAAcC,GAAW,EAAEC,IAAY,EAAEC,IAAY,EAAEC,OAAsD,EAAEC,QAAgC;IACrK,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IACAA,UAAUA,WAAW,CAAC;IACtB,IAAI,OAAOH,QAAQ,UAAU,MAAM,IAAIK,MAAM;IAC7C,IAAI,OAAOJ,SAAS,UAAU,MAAM,IAAII,MAAM;IAC9C,IAAI,OAAOH,SAAS,UAAU,MAAM,IAAIG,MAAM;IAE9C,IAAI,OAAOD,aAAa,YAAY,OAAOP,cAAcL,SAASQ,KAAKC,MAAMC,MAAMC,SAASC;IAC5F,OAAO,IAAIE,QAAQ,CAACR,SAASS,SAC3BV,cAAcL,SAASQ,KAAKC,MAAMC,MAAMC,SAAS,CAACK,KAAaC;YAC7DD,MAAMD,OAAOC,OAAOV,QAAQW;QAC9B;AAEJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import url from 'url';
|
|
3
3
|
import wrapWorkerSync from './lib/wrapWorkerSync.mjs';
|
|
4
|
-
const __dirname = path.dirname(typeof __filename
|
|
4
|
+
const __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);
|
|
5
5
|
const workerWrapper = wrapWorkerSync(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformSync.js'));
|
|
6
6
|
/**
|
|
7
7
|
* @param {string} contents The file contents.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorkerSync from './lib/wrapWorkerSync.js';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformSync.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorkerSync from './lib/wrapWorkerSync.js';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorkerSync(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformSync.js'));\n\nimport type { Output } from '@swc/core';\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n/**\n * @param {string} contents The file contents.\n * @param {string} fileName The filename.\n * @param {TsConfigResult} tsconfig The configuration.\n * @returns {{ code: string, map?: string }} Returns object with the transformed code and source map if option sourceMaps was provided.\n */\nexport default function transformSync(contents: string, fileName: string, tsconfig: TsConfigResult): Output {\n return workerWrapper('stable', contents, fileName, tsconfig);\n}\n"],"names":["path","url","wrapWorkerSync","__dirname","dirname","__filename","fileURLToPath","workerWrapper","resolve","transformSync","contents","fileName","tsconfig"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,oBAAoB,0BAA0B;AACrD,MAAMC,YAAYH,KAAKI,OAAO,CAAC,OAAOC,eAAe,cAAcJ,IAAIK,aAAa,CAAC,YAAYL,GAAG,IAAII;AACxG,MAAME,gBAAgBL,eAAeF,KAAKQ,OAAO,CAACL,WAAW,MAAM,OAAO,WAAW;AAIrF;;;;;CAKC,GACD,eAAe,SAASM,cAAcC,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB;IAChG,OAAOL,cAAc,UAAUG,UAAUC,UAAUC;AACrD"}
|
|
@@ -3,7 +3,7 @@ import url from 'url';
|
|
|
3
3
|
import wrapWorker from './lib/wrapWorker.mjs';
|
|
4
4
|
const major = +process.versions.node.split('.')[0];
|
|
5
5
|
const version = major < 14 ? 'stable' : 'local';
|
|
6
|
-
const __dirname = path.dirname(typeof __filename
|
|
6
|
+
const __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);
|
|
7
7
|
const workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformTypes.js'));
|
|
8
8
|
/**
|
|
9
9
|
* @param {string} src The source directory to traverse.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformTypes.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/transformTypes.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport wrapWorker from './lib/wrapWorker.js';\nconst major = +process.versions.node.split('.')[0];\nconst version = major < 14 ? 'stable' : 'local';\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst workerWrapper = wrapWorker(path.resolve(__dirname, '..', 'cjs', 'workers', 'transformTypes.js'));\n\nimport type { TransformResult, TransformTypesCallback, TransformTypesOptions } from './types.js';\n\n/**\n * @param {string} src The source directory to traverse.\n * @param {string} dest The output directory to write files to.\n * @param {{tsconfig: TsConfigResult}} options Options.\n * @param {(err?: Error) =>} [callback] Optional callback. Uses promise if callback not provided.\n * @returns {void | Promise<any>} Optional promise if callback not provided.\n */\nexport default function transformTypes(src: string, dest: string, options?: TransformTypesOptions | TransformTypesCallback, callback?: TransformTypesCallback): undefined | Promise<TransformResult[]> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n if (typeof src !== 'string') throw new Error('transformTypes: unexpected source');\n if (typeof dest !== 'string') throw new Error('transformTypes: unexpected destination directory');\n\n if (typeof callback === 'function') return workerWrapper(version, src, dest, options, callback);\n return new Promise((resolve, reject) =>\n workerWrapper(version, src, dest, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["path","url","wrapWorker","major","process","versions","node","split","version","__dirname","dirname","__filename","fileURLToPath","workerWrapper","resolve","transformTypes","src","dest","options","callback","Error","Promise","reject","err","result"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,gBAAgB,sBAAsB;AAC7C,MAAMC,QAAQ,CAACC,QAAQC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,MAAMC,UAAUL,QAAQ,KAAK,WAAW;AACxC,MAAMM,YAAYT,KAAKU,OAAO,CAAC,OAAOC,eAAe,cAAcV,IAAIW,aAAa,CAAC,YAAYX,GAAG,IAAIU;AACxG,MAAME,gBAAgBX,WAAWF,KAAKc,OAAO,CAACL,WAAW,MAAM,OAAO,WAAW;AAIjF;;;;;;CAMC,GACD,eAAe,SAASM,eAAeC,GAAW,EAAEC,IAAY,EAAEC,OAAwD,EAAEC,QAAiC;IAC3J,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU;IACZ;IACAA,UAAUA,WAAW,CAAC;IACtB,IAAI,OAAOF,QAAQ,UAAU,MAAM,IAAII,MAAM;IAC7C,IAAI,OAAOH,SAAS,UAAU,MAAM,IAAIG,MAAM;IAE9C,IAAI,OAAOD,aAAa,YAAY,OAAON,cAAcL,SAASQ,KAAKC,MAAMC,SAASC;IACtF,OAAO,IAAIE,QAAQ,CAACP,SAASQ,SAC3BT,cAAcL,SAASQ,KAAKC,MAAMC,SAAS,CAACK,KAAKC;YAC/CD,MAAMD,OAAOC,OAAOT,QAAQU;QAC9B;AAEJ"}
|
|
@@ -4,9 +4,10 @@ import * as getTS from 'get-tsconfig-compat';
|
|
|
4
4
|
import mkdirp from 'mkdirp-classic';
|
|
5
5
|
import Queue from 'queue-cb';
|
|
6
6
|
import swcPrepareOptions from '../lib/swcPrepareOptions.mjs';
|
|
7
|
-
|
|
8
|
-
import lazy from '
|
|
9
|
-
const
|
|
7
|
+
import Module from 'module';
|
|
8
|
+
import lazy from 'lazy-cache';
|
|
9
|
+
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
10
|
+
const swcLazy = lazy(_require)('@swc/core');
|
|
10
11
|
const matchingDeps = '\\s*[\'"`]([^\'"`]+)[\'"`]\\s*';
|
|
11
12
|
const matchingName = '\\s*(?:[\\w${},\\s*]+)\\s*';
|
|
12
13
|
const regexCJS = new RegExp(`(?:(?:var|const|let)${matchingName}=\\s*)?require\\(${matchingDeps}\\);?`, 'g');
|
|
@@ -70,7 +71,7 @@ export default function transformFileWorker(src, dest, type, options, callback)
|
|
|
70
71
|
}
|
|
71
72
|
swcPrepareOptions(tsconfig, (err, swcOptions)=>{
|
|
72
73
|
if (err) return callback(err);
|
|
73
|
-
const swc =
|
|
74
|
+
const swc = swcLazy();
|
|
74
75
|
const basename = path.basename(src);
|
|
75
76
|
swc.transformFile(src, {
|
|
76
77
|
...basename.endsWith('.tsx') || basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions,
|
|
@@ -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 * as getTS from 'get-tsconfig-compat';\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 ? 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 = 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 ? callback(err) : callback(null, path.relative(dest, destFilePath))));\n });\n })\n .catch(callback);\n });\n}\n"],"names":["fs","path","getTS","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","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,11 +1,12 @@
|
|
|
1
1
|
import swcPrepareOptions from '../lib/swcPrepareOptions.mjs';
|
|
2
|
-
|
|
3
|
-
import lazy from '
|
|
4
|
-
const
|
|
2
|
+
import Module from 'module';
|
|
3
|
+
import lazy from 'lazy-cache';
|
|
4
|
+
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
5
|
+
const swcLazy = lazy(_require)('@swc/core');
|
|
5
6
|
export default function transformSyncWorker(contents, fileName, tsconfig, callback) {
|
|
6
7
|
swcPrepareOptions(tsconfig, (err, swcOptions)=>{
|
|
7
8
|
if (err) return callback(err);
|
|
8
|
-
const swc =
|
|
9
|
+
const swc = swcLazy();
|
|
9
10
|
swc.transform(contents, {
|
|
10
11
|
...fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions,
|
|
11
12
|
filename: fileName
|
|
@@ -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\
|
|
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 swcPrepareOptions(tsconfig, (err, swcOptions) => {\n if (err) return callback(err);\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}\n"],"names":["swcPrepareOptions","Module","lazy","_require","require","createRequire","url","swcLazy","transformSyncWorker","contents","fileName","tsconfig","callback","err","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;IAChHZ,kBAAkBW,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"}
|
|
@@ -6,9 +6,10 @@ import mkdirp from 'mkdirp-classic';
|
|
|
6
6
|
import Queue from 'queue-cb';
|
|
7
7
|
import resolveOnceMap from 'resolve-once-map-cb';
|
|
8
8
|
import rimraf2 from 'rimraf2';
|
|
9
|
-
|
|
10
|
-
import lazy from '
|
|
11
|
-
const
|
|
9
|
+
import Module from 'module';
|
|
10
|
+
import lazy from 'lazy-cache';
|
|
11
|
+
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
12
|
+
const tsLazy = lazy(_require)('typescript');
|
|
12
13
|
import { SKIPS, typeFileRegEx } from '../constants.mjs';
|
|
13
14
|
import createMatcher from '../createMatcher.mjs';
|
|
14
15
|
export default function transformTypesWorker(src, dest, options, callback) {
|
|
@@ -58,7 +59,7 @@ export default function transformTypesWorker(src, dest, options, callback) {
|
|
|
58
59
|
}
|
|
59
60
|
const queue = new Queue();
|
|
60
61
|
existingTypes.map((filePath)=>queue.defer(writeType.bind(null, filePath)));
|
|
61
|
-
const ts =
|
|
62
|
+
const ts = tsLazy();
|
|
62
63
|
const options = {
|
|
63
64
|
...tsconfig.compilerOptions || {},
|
|
64
65
|
allowJs: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Iterator from 'fs-iterator';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolveOnceMap from 'resolve-once-map-cb';\nimport rimraf2 from 'rimraf2';\nimport type { SourceFile, WriteFileCallbackData } from 'typescript';\n\n// @ts-ignore\nimport lazy from '../lib/lazy.cjs';\nconst lazyTS = lazy('typescript');\n\nimport { SKIPS, typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nexport default function transformTypesWorker(src, dest, options, callback) {\n const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n const matcher = createMatcher(tsconfig);\n const existingTypes = [];\n\n rimraf2(dest, { disableGlob: true }, () => {\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry) => {\n if (!entry.stats.isFile()) return;\n if (!matcher(entry.fullPath)) return;\n if (SKIPS.indexOf(entry.basename) >= 0) return;\n if (typeFileRegEx.test(entry.basename)) return existingTypes.push(entry.fullPath);\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err) => {\n if (err) return callback(err);\n\n const results = [];\n const pathMap = resolveOnceMap((destPath, cb) => mkdirp(destPath, cb)); // mkdirs only once\n\n function writeFile(sourceFile, destFile, contents, cb) {\n results.push({ from: path.relative(src, sourceFile), to: path.relative(src, destFile) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer(fs.writeFile.bind(null, destPath, contents, 'utf8'));\n q.await(cb);\n }\n\n function writeType(filePath, cb) {\n results.push({ from: path.relative(src, filePath), to: path.relative(src, filePath) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer((cb) =>\n fs.readFile(filePath, (err, contents) => {\n err ? callback(err) : fs.writeFile(destPath, contents, cb);\n })\n );\n q.await(cb);\n }\n\n const queue = new Queue();\n existingTypes.map((filePath) => queue.defer(writeType.bind(null, filePath)));\n\n const ts = lazyTS();\n const options = {\n ...(tsconfig.compilerOptions || {}),\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n };\n const host = ts.createCompilerHost(options);\n host.writeFile = (filePath: string, contents: string, _writeByteOrderMark: boolean, _onError?: (message: string) => void, sourceFiles?: readonly SourceFile[], _data?: WriteFileCallbackData) => {\n queue.defer(writeFile.bind(null, sourceFiles[0].fileName, filePath, contents));\n };\n\n // Prepare and emit the d.ts files\n const program = ts.createProgram(\n entries.map((entry) => entry.fullPath),\n options,\n host\n );\n program.emit();\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n });\n}\n\n// import path from 'path';\n// import spawn from 'cross-spawn-cb';\n// import Iterator from 'fs-iterator';\n// import * as getTS from 'get-tsconfig-compat';\n// import rimraf2 from 'rimraf2';\n\n// import { SKIPS, typeFileRegEx } from '../constants.js';\n// import createMatcher from '../createMatcher.js';\n\n// export default function transformTypesWorker(src, dest, options, callback) {\n// const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n// const matcher = createMatcher(tsconfig);\n\n// const tsArgs = [];\n// for (const key in tsconfig.config.compilerOptions) {\n// const value = tsconfig.config.compilerOptions[key];\n// tsArgs.push(`--${key}`);\n// tsArgs.push(Array.isArray(value) ? value.join(',') : value);\n// }\n\n// rimraf2(dest, { disableGlob: true }, () => {\n// const entries = [];\n// const iterator = new Iterator(src);\n// iterator.forEach(\n// (entry) => {\n// if (!entry.stats.isFile()) return;\n// if (!matcher(entry.fullPath)) return;\n// if (typeFileRegEx.test(entry.basename)) return;\n// if (SKIPS.indexOf(entry.basename) >= 0) return;\n// entries.push(entry);\n// },\n// (err) => {\n// if (err) return callback(err);\n// if (entries.length === 0) return callback();\n// const results = entries.map((entry) => {\n// const result = { from: path.relative(src, entry.fullPath), to: '' };\n// const dirname = path.dirname(result.from);\n// const basename = path.basename(result.from);\n// let ext = path.extname(basename);\n// ext = ext.replace('sx', 's');\n// ext = ext.replace('js', 'ts');\n// result.to = path.join(dirname === '.' ? '' : dirname, `${basename.replace(/\\.[^/.]+$/, '')}.d${ext}`);\n// return result;\n// });\n// const args = ['tsc', ...results.map((x) => path.resolve(src, x.from)), '--declaration', '--emitDeclarationOnly', '--outDir', dest, ...tsArgs];\n// spawn(args[0], args.slice(1), { stdio: 'inherit' }, (err) => (err ? callback(err) : callback(null, results)));\n// }\n// );\n// });\n// }\n"],"names":["fs","path","Iterator","getTS","mkdirp","Queue","resolveOnceMap","rimraf2","lazy","lazyTS","SKIPS","typeFileRegEx","createMatcher","transformTypesWorker","src","dest","options","callback","tsconfig","getTsconfig","matcher","existingTypes","disableGlob","entries","iterator","forEach","entry","stats","isFile","fullPath","indexOf","basename","test","push","concurrency","Infinity","err","results","pathMap","destPath","cb","writeFile","sourceFile","destFile","contents","from","relative","to","join","length","q","defer","bind","dirname","await","writeType","filePath","readFile","queue","map","ts","compilerOptions","allowJs","declaration","emitDeclarationOnly","host","createCompilerHost","_writeByteOrderMark","_onError","sourceFiles","_data","fileName","program","createProgram","emit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Iterator from 'fs-iterator';\nimport * as getTS from 'get-tsconfig-compat';\nimport mkdirp from 'mkdirp-classic';\nimport Queue from 'queue-cb';\nimport resolveOnceMap from 'resolve-once-map-cb';\nimport rimraf2 from 'rimraf2';\nimport type { SourceFile, WriteFileCallbackData } from 'typescript';\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');\n\nimport { SKIPS, typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nexport default function transformTypesWorker(src, dest, options, callback) {\n const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n const matcher = createMatcher(tsconfig);\n const existingTypes = [];\n\n rimraf2(dest, { disableGlob: true }, () => {\n const entries = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry) => {\n if (!entry.stats.isFile()) return;\n if (!matcher(entry.fullPath)) return;\n if (SKIPS.indexOf(entry.basename) >= 0) return;\n if (typeFileRegEx.test(entry.basename)) return existingTypes.push(entry.fullPath);\n entries.push(entry);\n },\n { concurrency: Infinity },\n (err) => {\n if (err) return callback(err);\n\n const results = [];\n const pathMap = resolveOnceMap((destPath, cb) => mkdirp(destPath, cb)); // mkdirs only once\n\n function writeFile(sourceFile, destFile, contents, cb) {\n results.push({ from: path.relative(src, sourceFile), to: path.relative(src, destFile) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer(fs.writeFile.bind(null, destPath, contents, 'utf8'));\n q.await(cb);\n }\n\n function writeType(filePath, cb) {\n results.push({ from: path.relative(src, filePath), to: path.relative(src, filePath) });\n const destPath = path.join(dest, results[results.length - 1].to);\n\n const q = new Queue(1);\n q.defer(pathMap.bind(null, path.dirname(destPath)));\n q.defer((cb) =>\n fs.readFile(filePath, (err, contents) => {\n err ? callback(err) : fs.writeFile(destPath, contents, cb);\n })\n );\n q.await(cb);\n }\n\n const queue = new Queue();\n existingTypes.map((filePath) => queue.defer(writeType.bind(null, filePath)));\n\n const ts = tsLazy();\n const options = {\n ...(tsconfig.compilerOptions || {}),\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n };\n const host = ts.createCompilerHost(options);\n host.writeFile = (filePath: string, contents: string, _writeByteOrderMark: boolean, _onError?: (message: string) => void, sourceFiles?: readonly SourceFile[], _data?: WriteFileCallbackData) => {\n queue.defer(writeFile.bind(null, sourceFiles[0].fileName, filePath, contents));\n };\n\n // Prepare and emit the d.ts files\n const program = ts.createProgram(\n entries.map((entry) => entry.fullPath),\n options,\n host\n );\n program.emit();\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n });\n}\n\n// import path from 'path';\n// import spawn from 'cross-spawn-cb';\n// import Iterator from 'fs-iterator';\n// import * as getTS from 'get-tsconfig-compat';\n// import rimraf2 from 'rimraf2';\n\n// import { SKIPS, typeFileRegEx } from '../constants.js';\n// import createMatcher from '../createMatcher.js';\n\n// export default function transformTypesWorker(src, dest, options, callback) {\n// const tsconfig = options.tsconfig ? options.tsconfig : getTS.getTsconfig(src);\n// const matcher = createMatcher(tsconfig);\n\n// const tsArgs = [];\n// for (const key in tsconfig.config.compilerOptions) {\n// const value = tsconfig.config.compilerOptions[key];\n// tsArgs.push(`--${key}`);\n// tsArgs.push(Array.isArray(value) ? value.join(',') : value);\n// }\n\n// rimraf2(dest, { disableGlob: true }, () => {\n// const entries = [];\n// const iterator = new Iterator(src);\n// iterator.forEach(\n// (entry) => {\n// if (!entry.stats.isFile()) return;\n// if (!matcher(entry.fullPath)) return;\n// if (typeFileRegEx.test(entry.basename)) return;\n// if (SKIPS.indexOf(entry.basename) >= 0) return;\n// entries.push(entry);\n// },\n// (err) => {\n// if (err) return callback(err);\n// if (entries.length === 0) return callback();\n// const results = entries.map((entry) => {\n// const result = { from: path.relative(src, entry.fullPath), to: '' };\n// const dirname = path.dirname(result.from);\n// const basename = path.basename(result.from);\n// let ext = path.extname(basename);\n// ext = ext.replace('sx', 's');\n// ext = ext.replace('js', 'ts');\n// result.to = path.join(dirname === '.' ? '' : dirname, `${basename.replace(/\\.[^/.]+$/, '')}.d${ext}`);\n// return result;\n// });\n// const args = ['tsc', ...results.map((x) => path.resolve(src, x.from)), '--declaration', '--emitDeclarationOnly', '--outDir', dest, ...tsArgs];\n// spawn(args[0], args.slice(1), { stdio: 'inherit' }, (err) => (err ? callback(err) : callback(null, results)));\n// }\n// );\n// });\n// }\n"],"names":["fs","path","Iterator","getTS","mkdirp","Queue","resolveOnceMap","rimraf2","Module","lazy","_require","require","createRequire","url","tsLazy","SKIPS","typeFileRegEx","createMatcher","transformTypesWorker","src","dest","options","callback","tsconfig","getTsconfig","matcher","existingTypes","disableGlob","entries","iterator","forEach","entry","stats","isFile","fullPath","indexOf","basename","test","push","concurrency","Infinity","err","results","pathMap","destPath","cb","writeFile","sourceFile","destFile","contents","from","relative","to","join","length","q","defer","bind","dirname","await","writeType","filePath","readFile","queue","map","ts","compilerOptions","allowJs","declaration","emitDeclarationOnly","host","createCompilerHost","_writeByteOrderMark","_onError","sourceFiles","_data","fileName","program","createProgram","emit"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-swc-transform",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.6",
|
|
4
4
|
"description": "Typescript transformers for swc. Supports Node >= 0.8",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"matcher",
|
|
@@ -50,11 +50,10 @@
|
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@swc/core": "*",
|
|
53
|
-
"call-once-fn": "^1.0.1",
|
|
54
53
|
"cross-spawn-cb": "^1.5.7",
|
|
55
54
|
"exit": "^0.1.2",
|
|
56
55
|
"fs-iterator": "^5.2.1",
|
|
57
|
-
"get-tsconfig-compat": "^2.0.
|
|
56
|
+
"get-tsconfig-compat": "^2.0.3",
|
|
58
57
|
"install-module-linked": "^0.2.0",
|
|
59
58
|
"is-absolute": "^1.0.0",
|
|
60
59
|
"lazy-cache": "^2.0.2",
|
package/dist/cjs/lib/lazy.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
module.exports = require('lazy-cache')(require);
|
|
3
|
-
/* 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; }
|
package/dist/cjs/lib/lazy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/lazy.cts"],"sourcesContent":["module.exports = require('lazy-cache')(require);\n"],"names":["module","exports","require"],"mappings":";AAAAA,OAAOC,OAAO,GAAGC,QAAQ,cAAcA"}
|
package/dist/esm/lib/lazy.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('lazy-cache')(require);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/lazy.cts"],"sourcesContent":["module.exports = require('lazy-cache')(require);\n"],"names":["module","exports","require"],"mappings":"AAAAA,OAAOC,OAAO,GAAGC,QAAQ,cAAcA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|