ts-swc-transform 2.1.3 → 2.2.1

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.
Files changed (49) hide show
  1. package/dist/cjs/lib/importMetaResolve.d.cts +1 -2
  2. package/dist/cjs/lib/importMetaResolve.d.ts +1 -2
  3. package/dist/cjs/lib/importMetaResolve.js +5 -3
  4. package/dist/cjs/lib/importMetaResolve.js.map +1 -1
  5. package/dist/cjs/lib/patchCJS.d.cts +2 -2
  6. package/dist/cjs/lib/patchCJS.d.ts +2 -2
  7. package/dist/cjs/lib/patchCJS.js +5 -6
  8. package/dist/cjs/lib/patchCJS.js.map +1 -1
  9. package/dist/cjs/lib/patchESM.d.cts +2 -2
  10. package/dist/cjs/lib/patchESM.d.ts +2 -2
  11. package/dist/cjs/lib/patchESM.js +4 -25
  12. package/dist/cjs/lib/patchESM.js.map +1 -1
  13. package/dist/cjs/lib/rewriteExtensions.d.cts +8 -0
  14. package/dist/cjs/lib/rewriteExtensions.d.ts +8 -0
  15. package/dist/cjs/lib/rewriteExtensions.js +53 -0
  16. package/dist/cjs/lib/rewriteExtensions.js.map +1 -0
  17. package/dist/cjs/lib/transformFile.d.cts +2 -2
  18. package/dist/cjs/lib/transformFile.d.ts +2 -2
  19. package/dist/cjs/lib/transformFile.js.map +1 -1
  20. package/dist/cjs/types.d.cts +0 -8
  21. package/dist/cjs/types.d.ts +0 -8
  22. package/dist/cjs/workers/transformDirectory.js +1 -3
  23. package/dist/cjs/workers/transformDirectory.js.map +1 -1
  24. package/dist/esm/lib/importMetaResolve.d.ts +1 -2
  25. package/dist/esm/lib/importMetaResolve.js +4 -2
  26. package/dist/esm/lib/importMetaResolve.js.map +1 -1
  27. package/dist/esm/lib/patchCJS.d.ts +2 -2
  28. package/dist/esm/lib/patchCJS.js +5 -6
  29. package/dist/esm/lib/patchCJS.js.map +1 -1
  30. package/dist/esm/lib/patchESM.d.ts +2 -2
  31. package/dist/esm/lib/patchESM.js +4 -25
  32. package/dist/esm/lib/patchESM.js.map +1 -1
  33. package/dist/esm/lib/rewriteExtensions.d.ts +8 -0
  34. package/dist/esm/lib/rewriteExtensions.js +26 -0
  35. package/dist/esm/lib/rewriteExtensions.js.map +1 -0
  36. package/dist/esm/lib/transformFile.d.ts +2 -2
  37. package/dist/esm/lib/transformFile.js.map +1 -1
  38. package/dist/esm/types.d.ts +0 -8
  39. package/dist/esm/types.js.map +1 -1
  40. package/dist/esm/workers/transformDirectory.js +1 -3
  41. package/dist/esm/workers/transformDirectory.js.map +1 -1
  42. package/package.json +3 -3
  43. package/dist/cjs/lib/makeReplacements.d.cts +0 -3
  44. package/dist/cjs/lib/makeReplacements.d.ts +0 -3
  45. package/dist/cjs/lib/makeReplacements.js +0 -47
  46. package/dist/cjs/lib/makeReplacements.js.map +0 -1
  47. package/dist/esm/lib/makeReplacements.d.ts +0 -3
  48. package/dist/esm/lib/makeReplacements.js +0 -29
  49. package/dist/esm/lib/makeReplacements.js.map +0 -1
@@ -1,2 +1 @@
1
- declare const _default: any;
2
- export default _default;
1
+ export default function importMetaResolve(specifier: string, url: URL): string;
@@ -1,2 +1 @@
1
- declare const _default: any;
2
- export default _default;
1
+ export default function importMetaResolve(specifier: string, url: URL): string;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return _default;
8
+ return importMetaResolve;
9
9
  }
10
10
  });
11
11
  var _module = /*#__PURE__*/ _interop_require_default(require("module"));
@@ -15,6 +15,8 @@ function _interop_require_default(obj) {
15
15
  };
16
16
  }
17
17
  var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
18
- var path = '../../../assets/importMetaResolve.cjs';
19
- var _default = _require(path).resolve;
18
+ var resolve = _require('../../../assets/importMetaResolve.cjs').resolve;
19
+ function importMetaResolve(specifier, url) {
20
+ return resolve(specifier, url);
21
+ }
20
22
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/importMetaResolve.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst path = '../../../assets/importMetaResolve.cjs';\nexport default _require(path).resolve;\n"],"names":["_require","require","Module","createRequire","path","resolve"],"mappings":";;;;+BAIA;;;eAAA;;;6DAJmB;;;;;;AAEnB,IAAMA,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,OAAO;IACb,WAAeJ,SAASI,MAAMC,OAAO"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/importMetaResolve.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst resolve = _require('../../../assets/importMetaResolve.cjs').resolve;\n\nexport default function importMetaResolve(specifier: string, url: URL): string {\n return resolve(specifier, url);\n}\n"],"names":["importMetaResolve","_require","require","Module","createRequire","resolve","specifier","url"],"mappings":";;;;+BAKA;;;eAAwBA;;;6DALL;;;;;;AAEnB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,UAAUJ,SAAS,yCAAyCI,OAAO;AAE1D,SAASL,kBAAkBM,SAAiB,EAAEC,GAAQ;IACnE,OAAOF,QAAQC,WAAWC;AAC5B"}
@@ -1,5 +1,5 @@
1
1
  export declare const interop = "/* 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; }";
2
2
  import type { Output } from '@swc/core';
3
3
  import type { Entry } from 'fs-iterator';
4
- import type { ConfigOptionsInternal } from '../types.ts';
5
- export default function patchCJS(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
4
+ import type { ConfigOptions } from '../types.ts';
5
+ export default function patchCJS(entry: Entry, output: Output, options: ConfigOptions): string;
@@ -1,5 +1,5 @@
1
1
  export declare const interop = "/* 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; }";
2
2
  import type { Output } from '@swc/core';
3
3
  import type { Entry } from 'fs-iterator';
4
- import type { ConfigOptionsInternal } from '../types.ts';
5
- export default function patchCJS(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
4
+ import type { ConfigOptions } from '../types.ts';
5
+ export default function patchCJS(entry: Entry, output: Output, options: ConfigOptions): string;
@@ -16,22 +16,21 @@ _export(exports, {
16
16
  return interop;
17
17
  }
18
18
  });
19
- var _constants = require("../constants.js");
20
- var _makeReplacements = /*#__PURE__*/ _interop_require_default(require("./makeReplacements.js"));
19
+ var _path = /*#__PURE__*/ _interop_require_default(require("path"));
20
+ var _constants = require("../constants");
21
+ var _rewriteExtensionsts = require("./rewriteExtensions.js");
21
22
  function _interop_require_default(obj) {
22
23
  return obj && obj.__esModule ? obj : {
23
24
  default: obj
24
25
  };
25
26
  }
26
27
  var interop = "/* 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; }";
27
- var DEFAULT_EXTENSION = '.js';
28
28
  function patchCJS(entry, output, options) {
29
- var cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;
30
29
  var rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
31
30
  if (rewrite) {
32
- output.code = (0, _makeReplacements.default)(entry, output.code, _constants.requireRegEx, _constants.extensions, cjsExtension, options);
31
+ output.code = (0, _rewriteExtensionsts.makeReplacements)(output.code, _constants.requireRegEx);
33
32
  }
34
33
  output.code += interop;
35
- return cjsExtension;
34
+ return (0, _rewriteExtensionsts.replaceExtension)(_path.default.extname(entry.basename));
36
35
  }
37
36
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import { extensions, requireRegEx } from '../constants';\nimport makeReplacements from './makeReplacements';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nexport const interop = \"/* 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; }\";\nconst DEFAULT_EXTENSION = '.js';\n\nimport type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport type { CompilerOptions } from 'typescript';\nimport type { ConfigOptionsInternal } from '../types.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchCJS(entry: Entry, output: Output, options: ConfigOptionsInternal): string {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(entry, output.code, requireRegEx, extensions, cjsExtension, options);\n }\n output.code += interop;\n\n return cjsExtension;\n}\n"],"names":["patchCJS","interop","DEFAULT_EXTENSION","entry","output","options","cjsExtension","extensions","cjs","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","makeReplacements","requireRegEx"],"mappings":";;;;;;;;;;;QAgBA;eAAwBA;;QAZXC;eAAAA;;;yBAJ4B;uEACZ;;;;;;AAGtB,IAAMA,UAAU;AACvB,IAAMC,oBAAoB;AAWX,SAASF,SAASG,KAAY,EAAEC,MAAc,EAAEC,OAA8B;IAC3F,IAAMC,eAAe,AAACD,CAAAA,QAAQE,UAAU,GAAGF,QAAQE,UAAU,CAACC,GAAG,GAAGN,iBAAgB,KAAMA;IAC1F,IAAMO,UAAU,AAAEJ,CAAAA,QAAQK,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXL,OAAOU,IAAI,GAAGC,IAAAA,yBAAgB,EAACZ,OAAOC,OAAOU,IAAI,EAAEE,uBAAY,EAAET,qBAAU,EAAED,cAAcD;IAC7F;IACAD,OAAOU,IAAI,IAAIb;IAEf,OAAOK;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import path from 'path';\nimport { requireRegEx } from '../constants';\nimport { makeReplacements, replaceExtension } from './rewriteExtensions.ts';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nexport const interop = \"/* 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\nimport type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport type { CompilerOptions } from 'typescript';\nimport type { ConfigOptions } from '../types.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchCJS(entry: Entry, output: Output, options: ConfigOptions): string {\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(output.code, requireRegEx);\n }\n output.code += interop;\n\n return replaceExtension(path.extname(entry.basename));\n}\n"],"names":["patchCJS","interop","entry","output","options","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","makeReplacements","requireRegEx","replaceExtension","path","extname","basename"],"mappings":";;;;;;;;;;;QAgBA;eAAwBA;;QAXXC;eAAAA;;;2DALI;yBACY;mCACsB;;;;;;AAG5C,IAAMA,UAAU;AAWR,SAASD,SAASE,KAAY,EAAEC,MAAc,EAAEC,OAAsB;IACnF,IAAMC,UAAU,AAAED,CAAAA,QAAQE,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXF,OAAOO,IAAI,GAAGC,IAAAA,qCAAgB,EAACR,OAAOO,IAAI,EAAEE,uBAAY;IAC1D;IACAT,OAAOO,IAAI,IAAIT;IAEf,OAAOY,IAAAA,qCAAgB,EAACC,aAAI,CAACC,OAAO,CAACb,MAAMc,QAAQ;AACrD"}
@@ -1,4 +1,4 @@
1
1
  import type { Output } from '@swc/core';
2
2
  import type { Entry } from 'fs-iterator';
3
- import type { ConfigOptionsInternal } from '../types.ts';
4
- export default function patchESM(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
3
+ import type { ConfigOptions } from '../types.ts';
4
+ export default function patchESM(entry: Entry, output: Output, options: ConfigOptions): string;
@@ -1,4 +1,4 @@
1
1
  import type { Output } from '@swc/core';
2
2
  import type { Entry } from 'fs-iterator';
3
- import type { ConfigOptionsInternal } from '../types.ts';
4
- export default function patchESM(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
3
+ import type { ConfigOptions } from '../types.ts';
4
+ export default function patchESM(entry: Entry, output: Output, options: ConfigOptions): string;
@@ -9,39 +9,18 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
- var _constants = require("../constants.js");
13
- var _makeReplacements = /*#__PURE__*/ _interop_require_default(require("./makeReplacements.js"));
12
+ var _constants = require("../constants");
13
+ var _rewriteExtensionsts = require("./rewriteExtensions.js");
14
14
  function _interop_require_default(obj) {
15
15
  return obj && obj.__esModule ? obj : {
16
16
  default: obj
17
17
  };
18
18
  }
19
- var EXTENSIONS = {
20
- cjs: [
21
- '.cjs',
22
- '.cts'
23
- ],
24
- esm: [
25
- '.js',
26
- '.ts',
27
- '.tsx',
28
- '.mts',
29
- '.mjs'
30
- ]
31
- };
32
- var DEFAULT_EXTENSION_CJS = '.cjs';
33
- var DEFAULT_EXTENSION_EMS = '.js';
34
19
  function patchESM(entry, output, options) {
35
- var cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;
36
- var esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_EMS) || DEFAULT_EXTENSION_EMS;
37
20
  var rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
38
21
  if (rewrite) {
39
- output.code = (0, _makeReplacements.default)(entry, output.code, _constants.importRegEx, EXTENSIONS.esm, esmExtension, options);
40
- output.code = (0, _makeReplacements.default)(entry, output.code, _constants.importRegEx, EXTENSIONS.cjs, cjsExtension, options);
22
+ output.code = (0, _rewriteExtensionsts.makeReplacements)(output.code, _constants.importRegEx);
41
23
  }
42
- var ext = _path.default.extname(entry.basename);
43
- if (EXTENSIONS.esm.indexOf(ext) >= 0) ext = esmExtension;
44
- else if (EXTENSIONS.cjs.indexOf(ext) >= 0) ext = cjsExtension;
45
- return ext;
24
+ return (0, _rewriteExtensionsts.replaceExtension)(_path.default.extname(entry.basename));
46
25
  }
47
26
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchESM.ts"],"sourcesContent":["import path from 'path';\nimport { importRegEx } from '../constants';\nimport makeReplacements from './makeReplacements';\n\nconst EXTENSIONS = {\n cjs: ['.cjs', '.cts'],\n esm: ['.js', '.ts', '.tsx', '.mts', '.mjs'],\n};\nconst DEFAULT_EXTENSION_CJS = '.cjs';\nconst DEFAULT_EXTENSION_EMS = '.js';\n\nimport type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport type { CompilerOptions } from 'typescript';\nimport type { ConfigOptionsInternal } from '../types.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchESM(entry: Entry, output: Output, options: ConfigOptionsInternal): string {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;\n const esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_EMS) || DEFAULT_EXTENSION_EMS;\n\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(entry, output.code, importRegEx, EXTENSIONS.esm, esmExtension, options);\n output.code = makeReplacements(entry, output.code, importRegEx, EXTENSIONS.cjs, cjsExtension, options);\n }\n\n let ext = path.extname(entry.basename);\n if (EXTENSIONS.esm.indexOf(ext) >= 0) ext = esmExtension;\n else if (EXTENSIONS.cjs.indexOf(ext) >= 0) ext = cjsExtension;\n return ext;\n}\n"],"names":["patchESM","EXTENSIONS","cjs","esm","DEFAULT_EXTENSION_CJS","DEFAULT_EXTENSION_EMS","entry","output","options","cjsExtension","extensions","esmExtension","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","makeReplacements","importRegEx","ext","path","extname","basename","indexOf"],"mappings":";;;;+BAoBA;;;eAAwBA;;;2DApBP;yBACW;uEACC;;;;;;AAE7B,IAAMC,aAAa;IACjBC,KAAK;QAAC;QAAQ;KAAO;IACrBC,KAAK;QAAC;QAAO;QAAO;QAAQ;QAAQ;KAAO;AAC7C;AACA,IAAMC,wBAAwB;AAC9B,IAAMC,wBAAwB;AAWf,SAASL,SAASM,KAAY,EAAEC,MAAc,EAAEC,OAA8B;IAC3F,IAAMC,eAAe,AAACD,CAAAA,QAAQE,UAAU,GAAGF,QAAQE,UAAU,CAACR,GAAG,GAAGE,qBAAoB,KAAMA;IAC9F,IAAMO,eAAe,AAACH,CAAAA,QAAQE,UAAU,GAAGF,QAAQE,UAAU,CAACP,GAAG,GAAGE,qBAAoB,KAAMA;IAE9F,IAAMO,UAAU,AAAEJ,CAAAA,QAAQK,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXL,OAAOU,IAAI,GAAGC,IAAAA,yBAAgB,EAACZ,OAAOC,OAAOU,IAAI,EAAEE,sBAAW,EAAElB,WAAWE,GAAG,EAAEQ,cAAcH;QAC9FD,OAAOU,IAAI,GAAGC,IAAAA,yBAAgB,EAACZ,OAAOC,OAAOU,IAAI,EAAEE,sBAAW,EAAElB,WAAWC,GAAG,EAAEO,cAAcD;IAChG;IAEA,IAAIY,MAAMC,aAAI,CAACC,OAAO,CAAChB,MAAMiB,QAAQ;IACrC,IAAItB,WAAWE,GAAG,CAACqB,OAAO,CAACJ,QAAQ,GAAGA,MAAMT;SACvC,IAAIV,WAAWC,GAAG,CAACsB,OAAO,CAACJ,QAAQ,GAAGA,MAAMX;IACjD,OAAOW;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchESM.ts"],"sourcesContent":["import type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport path from 'path';\nimport type { CompilerOptions } from 'typescript';\nimport { importRegEx } from '../constants';\nimport type { ConfigOptions } from '../types.ts';\nimport { makeReplacements, replaceExtension } from './rewriteExtensions.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchESM(entry: Entry, output: Output, options: ConfigOptions): string {\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(output.code, importRegEx);\n }\n\n return replaceExtension(path.extname(entry.basename));\n}\n"],"names":["patchESM","entry","output","options","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","makeReplacements","importRegEx","replaceExtension","path","extname","basename"],"mappings":";;;;+BAYA;;;eAAwBA;;;2DAVP;yBAEW;mCAEuB;;;;;;AAMpC,SAASA,SAASC,KAAY,EAAEC,MAAc,EAAEC,OAAsB;IACnF,IAAMC,UAAU,AAAED,CAAAA,QAAQE,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXF,OAAOO,IAAI,GAAGC,IAAAA,qCAAgB,EAACR,OAAOO,IAAI,EAAEE,sBAAW;IACzD;IAEA,OAAOC,IAAAA,qCAAgB,EAACC,aAAI,CAACC,OAAO,CAACb,MAAMc,QAAQ;AACrD"}
@@ -0,0 +1,8 @@
1
+ export declare const extensions: {
2
+ '.ts': string;
3
+ '.tsx': string;
4
+ '.mts': string;
5
+ '.cts': string;
6
+ };
7
+ export declare function replaceExtension(ext: string): string;
8
+ export declare function makeReplacements(code: string, regex: RegExp): string;
@@ -0,0 +1,8 @@
1
+ export declare const extensions: {
2
+ '.ts': string;
3
+ '.tsx': string;
4
+ '.mts': string;
5
+ '.cts': string;
6
+ };
7
+ export declare function replaceExtension(ext: string): string;
8
+ export declare function makeReplacements(code: string, regex: RegExp): string;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get extensions () {
13
+ return extensions;
14
+ },
15
+ get makeReplacements () {
16
+ return makeReplacements;
17
+ },
18
+ get replaceExtension () {
19
+ return replaceExtension;
20
+ }
21
+ });
22
+ var _path = /*#__PURE__*/ _interop_require_default(require("path"));
23
+ var _constantsts = require("../constants.js");
24
+ var _parseSpecifiersts = /*#__PURE__*/ _interop_require_default(require("./parseSpecifiers.js"));
25
+ function _interop_require_default(obj) {
26
+ return obj && obj.__esModule ? obj : {
27
+ default: obj
28
+ };
29
+ }
30
+ var extensions = {
31
+ '.ts': '.js',
32
+ '.tsx': '.js',
33
+ '.mts': '.mjs',
34
+ '.cts': '.cjs'
35
+ };
36
+ function replaceExtension(ext) {
37
+ var replace = extensions[ext];
38
+ return replace === undefined ? ext : replace;
39
+ }
40
+ function makeReplacements(code, regex) {
41
+ var parsed = (0, _parseSpecifiersts.default)(code, regex);
42
+ return parsed.map(function(parsed) {
43
+ if (!parsed.isSpecifier) return parsed.content;
44
+ var specifier = parsed.content;
45
+ if (_constantsts.moduleRegEx.test(specifier)) return specifier;
46
+ if (specifier[0] !== '.') return specifier;
47
+ var ext = _path.default.extname(specifier);
48
+ var replace = replaceExtension(ext);
49
+ if (ext === replace) return specifier;
50
+ return "".concat(specifier.slice(0, -ext.length)).concat(replace);
51
+ }).join('');
52
+ }
53
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/rewriteExtensions.ts"],"sourcesContent":["import path from 'path';\nimport { moduleRegEx } from '../constants.ts';\nimport parseSpecifiers from './parseSpecifiers.ts';\n\nexport const extensions = {\n '.ts': '.js',\n '.tsx': '.js',\n '.mts': '.mjs',\n '.cts': '.cjs',\n};\n\nexport function replaceExtension(ext: string): string {\n const replace = extensions[ext];\n return replace === undefined ? ext : replace;\n}\n\nexport function makeReplacements(code: string, regex: RegExp): string {\n const parsed = parseSpecifiers(code, regex);\n\n return parsed\n .map((parsed) => {\n if (!parsed.isSpecifier) return parsed.content;\n const specifier = parsed.content;\n if (moduleRegEx.test(specifier)) return specifier;\n if (specifier[0] !== '.') return specifier;\n const ext = path.extname(specifier);\n const replace = replaceExtension(ext);\n if (ext === replace) return specifier;\n return `${specifier.slice(0, -ext.length)}${replace}`;\n })\n .join('');\n}\n"],"names":["extensions","makeReplacements","replaceExtension","ext","replace","undefined","code","regex","parsed","parseSpecifiers","map","isSpecifier","content","specifier","moduleRegEx","test","path","extname","slice","length","join"],"mappings":";;;;;;;;;;;QAIaA;eAAAA;;QAYGC;eAAAA;;QALAC;eAAAA;;;2DAXC;2BACW;wEACA;;;;;;AAErB,IAAMF,aAAa;IACxB,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;AACV;AAEO,SAASE,iBAAiBC,GAAW;IAC1C,IAAMC,UAAUJ,UAAU,CAACG,IAAI;IAC/B,OAAOC,YAAYC,YAAYF,MAAMC;AACvC;AAEO,SAASH,iBAAiBK,IAAY,EAAEC,KAAa;IAC1D,IAAMC,SAASC,IAAAA,0BAAe,EAACH,MAAMC;IAErC,OAAOC,OACJE,GAAG,CAAC,SAACF;QACJ,IAAI,CAACA,OAAOG,WAAW,EAAE,OAAOH,OAAOI,OAAO;QAC9C,IAAMC,YAAYL,OAAOI,OAAO;QAChC,IAAIE,wBAAW,CAACC,IAAI,CAACF,YAAY,OAAOA;QACxC,IAAIA,SAAS,CAAC,EAAE,KAAK,KAAK,OAAOA;QACjC,IAAMV,MAAMa,aAAI,CAACC,OAAO,CAACJ;QACzB,IAAMT,UAAUF,iBAAiBC;QACjC,IAAIA,QAAQC,SAAS,OAAOS;QAC5B,OAAO,AAAC,GAAoCT,OAAlCS,UAAUK,KAAK,CAAC,GAAG,CAACf,IAAIgB,MAAM,GAAY,OAARf;IAC9C,GACCgB,IAAI,CAAC;AACV"}
@@ -1,3 +1,3 @@
1
1
  import type { Entry } from 'fs-iterator';
2
- import type { ConfigOptionsInternal, TargetType, TransformFileCallback } from '../types.ts';
3
- export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptionsInternal, callback: TransformFileCallback): undefined;
2
+ import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.ts';
3
+ export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptions, callback: TransformFileCallback): undefined;
@@ -1,3 +1,3 @@
1
1
  import type { Entry } from 'fs-iterator';
2
- import type { ConfigOptionsInternal, TargetType, TransformFileCallback } from '../types.ts';
3
- export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptionsInternal, callback: TransformFileCallback): undefined;
2
+ import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.ts';
3
+ export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptions, callback: TransformFileCallback): undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/transformFile.ts"],"sourcesContent":["import type { Output } from '@swc/core';\nimport fs from 'fs';\nimport type { Entry } from 'fs-iterator';\nimport mkdirp from 'mkdirp-classic';\nimport Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport patchCJS from '../lib/patchCJS.ts';\nimport patchESM from '../lib/patchESM.ts';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { ConfigOptionsInternal, TargetType, TransformFileCallback } from '../types.ts';\n\nexport default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptionsInternal, callback: TransformFileCallback): undefined {\n let tsconfig = options.tsconfig;\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.config = { ...tsconfig.config };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = _require('@swc/core');\n\n swc\n .transformFile(entry.fullPath, {\n ...(entry.basename.endsWith('.tsx') || entry.basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: entry.basename,\n })\n .then((output: Output) => {\n const extTarget = type === 'esm' ? patchESM(entry, output, options) : patchCJS(entry, output, options);\n const ext = path.extname(entry.path);\n const outPath = path.join(dest, (ext ? entry.path.slice(0, -ext.length) : entry.path) + extTarget);\n\n mkdirp(path.dirname(outPath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, outPath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${outPath}.map`, output.map, 'utf8'));\n queue.await((err) => (err ? callback(err) : callback(null, outPath)));\n });\n })\n .catch(callback);\n}\n"],"names":["transformFile","_require","require","Module","createRequire","entry","dest","type","options","callback","tsconfig","config","compilerOptions","module","target","swcOptions","swcPrepareOptions","swc","fullPath","basename","endsWith","tsxOptions","nonTsxOptions","filename","then","output","extTarget","patchESM","patchCJS","ext","path","extname","outPath","join","slice","length","mkdirp","dirname","queue","Queue","defer","fs","writeFile","bind","code","sourceMaps","map","await","err","catch"],"mappings":";;;;+BAeA;;;eAAwBA;;;yDAdT;oEAEI;6DACA;2DACF;8DACC;iEACG;iEACA;0EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAI3E,SAASF,cAAcK,KAAY,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAA8B,EAAEC,QAA+B;IACjJ,IAAIC,WAAWF,QAAQE,QAAQ;IAE/B,oBAAoB;IACpB,IAAIH,SAAS,OAAO;QAClBG,WAAW,mBAAKA;QAChBA,SAASC,MAAM,GAAG,mBAAKD,SAASC,MAAM;QACtCD,SAASC,MAAM,CAACC,eAAe,GAAG,mBAAMF,SAASC,MAAM,CAACC,eAAe,IAAI,CAAC;QAC5EF,SAASC,MAAM,CAACC,eAAe,CAACC,MAAM,GAAG;QACzCH,SAASC,MAAM,CAACC,eAAe,CAACE,MAAM,GAAG;IAC3C;IAEA,IAAMC,aAAaC,IAAAA,4BAAiB,EAACN;IACrC,IAAMO,MAAMhB,SAAS;IAErBgB,IACGjB,aAAa,CAACK,MAAMa,QAAQ,EAAE,wCACzBb,MAAMc,QAAQ,CAACC,QAAQ,CAAC,WAAWf,MAAMc,QAAQ,CAACC,QAAQ,CAAC,UAAUL,WAAWM,UAAU,GAAGN,WAAWO,aAAa;QACzHC,UAAUlB,MAAMc,QAAQ;QAEzBK,IAAI,CAAC,SAACC;QACL,IAAMC,YAAYnB,SAAS,QAAQoB,IAAAA,mBAAQ,EAACtB,OAAOoB,QAAQjB,WAAWoB,IAAAA,mBAAQ,EAACvB,OAAOoB,QAAQjB;QAC9F,IAAMqB,MAAMC,aAAI,CAACC,OAAO,CAAC1B,MAAMyB,IAAI;QACnC,IAAME,UAAUF,aAAI,CAACG,IAAI,CAAC3B,MAAM,AAACuB,CAAAA,MAAMxB,MAAMyB,IAAI,CAACI,KAAK,CAAC,GAAG,CAACL,IAAIM,MAAM,IAAI9B,MAAMyB,IAAI,AAAD,IAAKJ;QAExFU,IAAAA,sBAAM,EAACN,aAAI,CAACO,OAAO,CAACL,UAAU;YAC5B,IAAMM,QAAQ,IAAIC,gBAAK;YACvBD,MAAME,KAAK,CAACC,WAAE,CAACC,SAAS,CAACC,IAAI,CAAC,MAAMX,SAASP,OAAOmB,IAAI,EAAE;YAC1D,CAACpC,QAAQqC,UAAU,IAAIP,MAAME,KAAK,CAACC,WAAE,CAACC,SAAS,CAACC,IAAI,CAAC,MAAM,AAAC,GAAU,OAARX,SAAQ,SAAOP,OAAOqB,GAAG,EAAE;YACzFR,MAAMS,KAAK,CAAC,SAACC;uBAASA,MAAMvC,SAASuC,OAAOvC,SAAS,MAAMuB;;QAC7D;IACF,GACCiB,KAAK,CAACxC;AACX"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/transformFile.ts"],"sourcesContent":["import type { Output } from '@swc/core';\nimport fs from 'fs';\nimport type { Entry } from 'fs-iterator';\nimport mkdirp from 'mkdirp-classic';\nimport Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport patchCJS from '../lib/patchCJS.ts';\nimport patchESM from '../lib/patchESM.ts';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { ConfigOptions, TargetType, TransformFileCallback } from '../types.ts';\n\nexport default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptions, callback: TransformFileCallback): undefined {\n let tsconfig = options.tsconfig;\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.config = { ...tsconfig.config };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = _require('@swc/core');\n\n swc\n .transformFile(entry.fullPath, {\n ...(entry.basename.endsWith('.tsx') || entry.basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: entry.basename,\n })\n .then((output: Output) => {\n const extTarget = type === 'esm' ? patchESM(entry, output, options) : patchCJS(entry, output, options);\n const ext = path.extname(entry.path);\n const outPath = path.join(dest, (ext ? entry.path.slice(0, -ext.length) : entry.path) + extTarget);\n\n mkdirp(path.dirname(outPath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, outPath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${outPath}.map`, output.map, 'utf8'));\n queue.await((err) => (err ? callback(err) : callback(null, outPath)));\n });\n })\n .catch(callback);\n}\n"],"names":["transformFile","_require","require","Module","createRequire","entry","dest","type","options","callback","tsconfig","config","compilerOptions","module","target","swcOptions","swcPrepareOptions","swc","fullPath","basename","endsWith","tsxOptions","nonTsxOptions","filename","then","output","extTarget","patchESM","patchCJS","ext","path","extname","outPath","join","slice","length","mkdirp","dirname","queue","Queue","defer","fs","writeFile","bind","code","sourceMaps","map","await","err","catch"],"mappings":";;;;+BAeA;;;eAAwBA;;;yDAdT;oEAEI;6DACA;2DACF;8DACC;iEACG;iEACA;0EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9B,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAI3E,SAASF,cAAcK,KAAY,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAsB,EAAEC,QAA+B;IACzI,IAAIC,WAAWF,QAAQE,QAAQ;IAE/B,oBAAoB;IACpB,IAAIH,SAAS,OAAO;QAClBG,WAAW,mBAAKA;QAChBA,SAASC,MAAM,GAAG,mBAAKD,SAASC,MAAM;QACtCD,SAASC,MAAM,CAACC,eAAe,GAAG,mBAAMF,SAASC,MAAM,CAACC,eAAe,IAAI,CAAC;QAC5EF,SAASC,MAAM,CAACC,eAAe,CAACC,MAAM,GAAG;QACzCH,SAASC,MAAM,CAACC,eAAe,CAACE,MAAM,GAAG;IAC3C;IAEA,IAAMC,aAAaC,IAAAA,4BAAiB,EAACN;IACrC,IAAMO,MAAMhB,SAAS;IAErBgB,IACGjB,aAAa,CAACK,MAAMa,QAAQ,EAAE,wCACzBb,MAAMc,QAAQ,CAACC,QAAQ,CAAC,WAAWf,MAAMc,QAAQ,CAACC,QAAQ,CAAC,UAAUL,WAAWM,UAAU,GAAGN,WAAWO,aAAa;QACzHC,UAAUlB,MAAMc,QAAQ;QAEzBK,IAAI,CAAC,SAACC;QACL,IAAMC,YAAYnB,SAAS,QAAQoB,IAAAA,mBAAQ,EAACtB,OAAOoB,QAAQjB,WAAWoB,IAAAA,mBAAQ,EAACvB,OAAOoB,QAAQjB;QAC9F,IAAMqB,MAAMC,aAAI,CAACC,OAAO,CAAC1B,MAAMyB,IAAI;QACnC,IAAME,UAAUF,aAAI,CAACG,IAAI,CAAC3B,MAAM,AAACuB,CAAAA,MAAMxB,MAAMyB,IAAI,CAACI,KAAK,CAAC,GAAG,CAACL,IAAIM,MAAM,IAAI9B,MAAMyB,IAAI,AAAD,IAAKJ;QAExFU,IAAAA,sBAAM,EAACN,aAAI,CAACO,OAAO,CAACL,UAAU;YAC5B,IAAMM,QAAQ,IAAIC,gBAAK;YACvBD,MAAME,KAAK,CAACC,WAAE,CAACC,SAAS,CAACC,IAAI,CAAC,MAAMX,SAASP,OAAOmB,IAAI,EAAE;YAC1D,CAACpC,QAAQqC,UAAU,IAAIP,MAAME,KAAK,CAACC,WAAE,CAACC,SAAS,CAACC,IAAI,CAAC,MAAM,AAAC,GAAU,OAARX,SAAQ,SAAOP,OAAOqB,GAAG,EAAE;YACzFR,MAAMS,KAAK,CAAC,SAACC;uBAASA,MAAMvC,SAASuC,OAAOvC,SAAS,MAAMuB;;QAC7D;IACF,GACCiB,KAAK,CAACxC;AACX"}
@@ -3,18 +3,10 @@ export interface Context {
3
3
  parentPath?: string;
4
4
  }
5
5
  import type { TsConfigResult } from 'get-tsconfig-compat';
6
- export interface Extensions {
7
- cjs?: string;
8
- esm?: string;
9
- }
10
6
  export interface ConfigOptions {
11
7
  tsconfig?: TsConfigResult;
12
8
  cwd?: string;
13
9
  sourceMaps?: boolean;
14
- extensions?: Extensions;
15
- }
16
- export interface ConfigOptionsInternal extends ConfigOptions {
17
- src: string;
18
10
  }
19
11
  export type TransformDirectoryCallback = (err?: Error, filePaths?: string[]) => void;
20
12
  export type TransformFileCallback = (err?: Error, destFilePath?: string) => void;
@@ -3,18 +3,10 @@ export interface Context {
3
3
  parentPath?: string;
4
4
  }
5
5
  import type { TsConfigResult } from 'get-tsconfig-compat';
6
- export interface Extensions {
7
- cjs?: string;
8
- esm?: string;
9
- }
10
6
  export interface ConfigOptions {
11
7
  tsconfig?: TsConfigResult;
12
8
  cwd?: string;
13
9
  sourceMaps?: boolean;
14
- extensions?: Extensions;
15
- }
16
- export interface ConfigOptionsInternal extends ConfigOptions {
17
- src: string;
18
10
  }
19
11
  export type TransformDirectoryCallback = (err?: Error, filePaths?: string[]) => void;
20
12
  export type TransformFileCallback = (err?: Error, destFilePath?: string) => void;
@@ -91,9 +91,7 @@ function transformDirectoryWorker(src, dest, type, options, callback) {
91
91
  }
92
92
  var results = [];
93
93
  options = _object_spread_props(_object_spread({}, options), {
94
- tsconfig: tsconfig,
95
- src: src,
96
- dest: dest
94
+ tsconfig: tsconfig
97
95
  });
98
96
  var queue = new _queuecb.default();
99
97
  entries.forEach(function(entry) {
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformDirectory.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { extensions, typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport transformFile from '../lib/transformFile.ts';\n\nimport type { ConfigOptions, ConfigOptionsInternal, TargetType, TransformDirectoryCallback } from '../types.ts';\n\nexport default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n\n const entries: Entry[] = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n const ext = path.extname(entry.basename);\n if (ext && extensions.indexOf(ext) < 0) return;\n entries.push(entry);\n },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n const results = [];\n options = { ...options, tsconfig, src, dest } as ConfigOptionsInternal;\n\n const queue = new Queue();\n entries.forEach((entry: Entry) => {\n queue.defer((cb) =>\n transformFile(entry, dest, type, options as ConfigOptionsInternal, (err, outPath) => {\n if (err) return cb(err);\n results.push(path.normalize(outPath));\n if (options.sourceMaps) results.push(`${path.normalize(outPath)}.map`);\n cb();\n })\n );\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n}\n"],"names":["transformDirectoryWorker","src","dest","type","options","callback","tsconfig","matcher","createMatcher","entries","iterator","Iterator","forEach","entry","stats","isFile","basename","typeFileRegEx","test","fullPath","ext","path","extname","extensions","indexOf","push","err","results","queue","Queue","defer","cb","transformFile","outPath","normalize","sourceMaps","await"],"mappings":";;;;+BAUA;;;eAAwBA;;;iEAVa;2DACpB;8DACC;2BAEwB;sEAChB;sEACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIX,SAASA,yBAAyBC,GAAW,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAsB,EAAEC,QAAoC;IACxJ,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,UAAUC,IAAAA,wBAAa,EAACF;IAE9B,IAAMG,UAAmB,EAAE;IAC3B,IAAMC,WAAW,IAAIC,mBAAQ,CAACV;IAC9BS,SAASE,OAAO,CACd,SAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIC,0BAAa,CAACC,IAAI,CAACL,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACT,QAAQM,MAAMM,QAAQ,GAAG;QAC9B,IAAMC,MAAMC,aAAI,CAACC,OAAO,CAACT,MAAMG,QAAQ;QACvC,IAAII,OAAOG,uBAAU,CAACC,OAAO,CAACJ,OAAO,GAAG;QACxCX,QAAQgB,IAAI,CAACZ;IACf,GACA,SAACa;QACC,IAAIA,KAAK;YACPrB,SAASqB;YACT;QACF;QACA,IAAMC,UAAU,EAAE;QAClBvB,UAAU,wCAAKA;YAASE,UAAAA;YAAUL,KAAAA;YAAKC,MAAAA;;QAEvC,IAAM0B,QAAQ,IAAIC,gBAAK;QACvBpB,QAAQG,OAAO,CAAC,SAACC;YACfe,MAAME,KAAK,CAAC,SAACC;uBACXC,IAAAA,wBAAa,EAACnB,OAAOX,MAAMC,MAAMC,SAAkC,SAACsB,KAAKO;oBACvE,IAAIP,KAAK,OAAOK,GAAGL;oBACnBC,QAAQF,IAAI,CAACJ,aAAI,CAACa,SAAS,CAACD;oBAC5B,IAAI7B,QAAQ+B,UAAU,EAAER,QAAQF,IAAI,CAAC,AAAC,GAA0B,OAAxBJ,aAAI,CAACa,SAAS,CAACD,UAAS;oBAChEF;gBACF;;QAEJ;QACAH,MAAMQ,KAAK,CAAC,SAACV;mBAASA,MAAMrB,SAASqB,OAAOrB,SAAS,MAAMsB;;IAC7D;AAEJ"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformDirectory.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { extensions, typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport transformFile from '../lib/transformFile.ts';\n\nimport type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.ts';\n\nexport default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n\n const entries: Entry[] = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n const ext = path.extname(entry.basename);\n if (ext && extensions.indexOf(ext) < 0) return;\n entries.push(entry);\n },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n const results = [];\n options = { ...options, tsconfig };\n\n const queue = new Queue();\n entries.forEach((entry: Entry) => {\n queue.defer((cb) =>\n transformFile(entry, dest, type, options, (err, outPath) => {\n if (err) return cb(err);\n results.push(path.normalize(outPath));\n if (options.sourceMaps) results.push(`${path.normalize(outPath)}.map`);\n cb();\n })\n );\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n}\n"],"names":["transformDirectoryWorker","src","dest","type","options","callback","tsconfig","matcher","createMatcher","entries","iterator","Iterator","forEach","entry","stats","isFile","basename","typeFileRegEx","test","fullPath","ext","path","extname","extensions","indexOf","push","err","results","queue","Queue","defer","cb","transformFile","outPath","normalize","sourceMaps","await"],"mappings":";;;;+BAUA;;;eAAwBA;;;iEAVa;2DACpB;8DACC;2BAEwB;sEAChB;sEACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIX,SAASA,yBAAyBC,GAAW,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAsB,EAAEC,QAAoC;IACxJ,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,UAAUC,IAAAA,wBAAa,EAACF;IAE9B,IAAMG,UAAmB,EAAE;IAC3B,IAAMC,WAAW,IAAIC,mBAAQ,CAACV;IAC9BS,SAASE,OAAO,CACd,SAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIC,0BAAa,CAACC,IAAI,CAACL,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACT,QAAQM,MAAMM,QAAQ,GAAG;QAC9B,IAAMC,MAAMC,aAAI,CAACC,OAAO,CAACT,MAAMG,QAAQ;QACvC,IAAII,OAAOG,uBAAU,CAACC,OAAO,CAACJ,OAAO,GAAG;QACxCX,QAAQgB,IAAI,CAACZ;IACf,GACA,SAACa;QACC,IAAIA,KAAK;YACPrB,SAASqB;YACT;QACF;QACA,IAAMC,UAAU,EAAE;QAClBvB,UAAU,wCAAKA;YAASE,UAAAA;;QAExB,IAAMsB,QAAQ,IAAIC,gBAAK;QACvBpB,QAAQG,OAAO,CAAC,SAACC;YACfe,MAAME,KAAK,CAAC,SAACC;uBACXC,IAAAA,wBAAa,EAACnB,OAAOX,MAAMC,MAAMC,SAAS,SAACsB,KAAKO;oBAC9C,IAAIP,KAAK,OAAOK,GAAGL;oBACnBC,QAAQF,IAAI,CAACJ,aAAI,CAACa,SAAS,CAACD;oBAC5B,IAAI7B,QAAQ+B,UAAU,EAAER,QAAQF,IAAI,CAAC,AAAC,GAA0B,OAAxBJ,aAAI,CAACa,SAAS,CAACD,UAAS;oBAChEF;gBACF;;QAEJ;QACAH,MAAMQ,KAAK,CAAC,SAACV;mBAASA,MAAMrB,SAASqB,OAAOrB,SAAS,MAAMsB;;IAC7D;AAEJ"}
@@ -1,2 +1 @@
1
- declare const _default: any;
2
- export default _default;
1
+ export default function importMetaResolve(specifier: string, url: URL): string;
@@ -1,4 +1,6 @@
1
1
  import Module from 'module';
2
2
  const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
3
- const path = '../../../assets/importMetaResolve.cjs';
4
- export default _require(path).resolve;
3
+ const resolve = _require('../../../assets/importMetaResolve.cjs').resolve;
4
+ export default function importMetaResolve(specifier, url) {
5
+ return resolve(specifier, url);
6
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/importMetaResolve.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst path = '../../../assets/importMetaResolve.cjs';\nexport default _require(path).resolve;\n"],"names":["Module","_require","require","createRequire","url","path","resolve"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,OAAO;AACb,eAAeJ,SAASI,MAAMC,OAAO,CAAC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/importMetaResolve.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst resolve = _require('../../../assets/importMetaResolve.cjs').resolve;\n\nexport default function importMetaResolve(specifier: string, url: URL): string {\n return resolve(specifier, url);\n}\n"],"names":["Module","_require","require","createRequire","url","resolve","importMetaResolve","specifier"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,UAAUJ,SAAS,yCAAyCI,OAAO;AAEzE,eAAe,SAASC,kBAAkBC,SAAiB,EAAEH,GAAQ;IACnE,OAAOC,QAAQE,WAAWH;AAC5B"}
@@ -1,5 +1,5 @@
1
1
  export declare const interop = "/* 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; }";
2
2
  import type { Output } from '@swc/core';
3
3
  import type { Entry } from 'fs-iterator';
4
- import type { ConfigOptionsInternal } from '../types.ts';
5
- export default function patchCJS(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
4
+ import type { ConfigOptions } from '../types.ts';
5
+ export default function patchCJS(entry: Entry, output: Output, options: ConfigOptions): string;
@@ -1,14 +1,13 @@
1
- import { extensions, requireRegEx } from '../constants.js';
2
- import makeReplacements from './makeReplacements.js';
1
+ import path from 'path';
2
+ import { requireRegEx } from '../constants';
3
+ import { makeReplacements, replaceExtension } from './rewriteExtensions.js';
3
4
  // https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125
4
5
  export const interop = "/* 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; }";
5
- const DEFAULT_EXTENSION = '.js';
6
6
  export default function patchCJS(entry, output, options) {
7
- const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;
8
7
  const rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
9
8
  if (rewrite) {
10
- output.code = makeReplacements(entry, output.code, requireRegEx, extensions, cjsExtension, options);
9
+ output.code = makeReplacements(output.code, requireRegEx);
11
10
  }
12
11
  output.code += interop;
13
- return cjsExtension;
12
+ return replaceExtension(path.extname(entry.basename));
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import { extensions, requireRegEx } from '../constants';\nimport makeReplacements from './makeReplacements';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nexport const interop = \"/* 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; }\";\nconst DEFAULT_EXTENSION = '.js';\n\nimport type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport type { CompilerOptions } from 'typescript';\nimport type { ConfigOptionsInternal } from '../types.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchCJS(entry: Entry, output: Output, options: ConfigOptionsInternal): string {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(entry, output.code, requireRegEx, extensions, cjsExtension, options);\n }\n output.code += interop;\n\n return cjsExtension;\n}\n"],"names":["extensions","requireRegEx","makeReplacements","interop","DEFAULT_EXTENSION","patchCJS","entry","output","options","cjsExtension","cjs","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code"],"mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,eAAe;AACxD,OAAOC,sBAAsB,qBAAqB;AAElD,0HAA0H;AAC1H,OAAO,MAAMC,UAAU,oQAAoQ;AAC3R,MAAMC,oBAAoB;AAW1B,eAAe,SAASC,SAASC,KAAY,EAAEC,MAAc,EAAEC,OAA8B;IAC3F,MAAMC,eAAe,AAACD,CAAAA,QAAQR,UAAU,GAAGQ,QAAQR,UAAU,CAACU,GAAG,GAAGN,iBAAgB,KAAMA;IAC1F,MAAMO,UAAU,AAAEH,CAAAA,QAAQI,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXJ,OAAOS,IAAI,GAAGd,iBAAiBI,OAAOC,OAAOS,IAAI,EAAEf,cAAcD,YAAYS,cAAcD;IAC7F;IACAD,OAAOS,IAAI,IAAIb;IAEf,OAAOM;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import path from 'path';\nimport { requireRegEx } from '../constants';\nimport { makeReplacements, replaceExtension } from './rewriteExtensions.ts';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nexport const interop = \"/* 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\nimport type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport type { CompilerOptions } from 'typescript';\nimport type { ConfigOptions } from '../types.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchCJS(entry: Entry, output: Output, options: ConfigOptions): string {\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(output.code, requireRegEx);\n }\n output.code += interop;\n\n return replaceExtension(path.extname(entry.basename));\n}\n"],"names":["path","requireRegEx","makeReplacements","replaceExtension","interop","patchCJS","entry","output","options","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","extname","basename"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,yBAAyB;AAE5E,0HAA0H;AAC1H,OAAO,MAAMC,UAAU,oQAAoQ;AAW3R,eAAe,SAASC,SAASC,KAAY,EAAEC,MAAc,EAAEC,OAAsB;IACnF,MAAMC,UAAU,AAAED,CAAAA,QAAQE,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXF,OAAOO,IAAI,GAAGZ,iBAAiBK,OAAOO,IAAI,EAAEb;IAC9C;IACAM,OAAOO,IAAI,IAAIV;IAEf,OAAOD,iBAAiBH,KAAKe,OAAO,CAACT,MAAMU,QAAQ;AACrD"}
@@ -1,4 +1,4 @@
1
1
  import type { Output } from '@swc/core';
2
2
  import type { Entry } from 'fs-iterator';
3
- import type { ConfigOptionsInternal } from '../types.ts';
4
- export default function patchESM(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
3
+ import type { ConfigOptions } from '../types.ts';
4
+ export default function patchESM(entry: Entry, output: Output, options: ConfigOptions): string;
@@ -1,31 +1,10 @@
1
1
  import path from 'path';
2
- import { importRegEx } from '../constants.js';
3
- import makeReplacements from './makeReplacements.js';
4
- const EXTENSIONS = {
5
- cjs: [
6
- '.cjs',
7
- '.cts'
8
- ],
9
- esm: [
10
- '.js',
11
- '.ts',
12
- '.tsx',
13
- '.mts',
14
- '.mjs'
15
- ]
16
- };
17
- const DEFAULT_EXTENSION_CJS = '.cjs';
18
- const DEFAULT_EXTENSION_EMS = '.js';
2
+ import { importRegEx } from '../constants';
3
+ import { makeReplacements, replaceExtension } from './rewriteExtensions.js';
19
4
  export default function patchESM(entry, output, options) {
20
- const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;
21
- const esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_EMS) || DEFAULT_EXTENSION_EMS;
22
5
  const rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
23
6
  if (rewrite) {
24
- output.code = makeReplacements(entry, output.code, importRegEx, EXTENSIONS.esm, esmExtension, options);
25
- output.code = makeReplacements(entry, output.code, importRegEx, EXTENSIONS.cjs, cjsExtension, options);
7
+ output.code = makeReplacements(output.code, importRegEx);
26
8
  }
27
- let ext = path.extname(entry.basename);
28
- if (EXTENSIONS.esm.indexOf(ext) >= 0) ext = esmExtension;
29
- else if (EXTENSIONS.cjs.indexOf(ext) >= 0) ext = cjsExtension;
30
- return ext;
9
+ return replaceExtension(path.extname(entry.basename));
31
10
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchESM.ts"],"sourcesContent":["import path from 'path';\nimport { importRegEx } from '../constants';\nimport makeReplacements from './makeReplacements';\n\nconst EXTENSIONS = {\n cjs: ['.cjs', '.cts'],\n esm: ['.js', '.ts', '.tsx', '.mts', '.mjs'],\n};\nconst DEFAULT_EXTENSION_CJS = '.cjs';\nconst DEFAULT_EXTENSION_EMS = '.js';\n\nimport type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport type { CompilerOptions } from 'typescript';\nimport type { ConfigOptionsInternal } from '../types.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchESM(entry: Entry, output: Output, options: ConfigOptionsInternal): string {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;\n const esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_EMS) || DEFAULT_EXTENSION_EMS;\n\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(entry, output.code, importRegEx, EXTENSIONS.esm, esmExtension, options);\n output.code = makeReplacements(entry, output.code, importRegEx, EXTENSIONS.cjs, cjsExtension, options);\n }\n\n let ext = path.extname(entry.basename);\n if (EXTENSIONS.esm.indexOf(ext) >= 0) ext = esmExtension;\n else if (EXTENSIONS.cjs.indexOf(ext) >= 0) ext = cjsExtension;\n return ext;\n}\n"],"names":["path","importRegEx","makeReplacements","EXTENSIONS","cjs","esm","DEFAULT_EXTENSION_CJS","DEFAULT_EXTENSION_EMS","patchESM","entry","output","options","cjsExtension","extensions","esmExtension","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","ext","extname","basename","indexOf"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,WAAW,QAAQ,eAAe;AAC3C,OAAOC,sBAAsB,qBAAqB;AAElD,MAAMC,aAAa;IACjBC,KAAK;QAAC;QAAQ;KAAO;IACrBC,KAAK;QAAC;QAAO;QAAO;QAAQ;QAAQ;KAAO;AAC7C;AACA,MAAMC,wBAAwB;AAC9B,MAAMC,wBAAwB;AAW9B,eAAe,SAASC,SAASC,KAAY,EAAEC,MAAc,EAAEC,OAA8B;IAC3F,MAAMC,eAAe,AAACD,CAAAA,QAAQE,UAAU,GAAGF,QAAQE,UAAU,CAACT,GAAG,GAAGE,qBAAoB,KAAMA;IAC9F,MAAMQ,eAAe,AAACH,CAAAA,QAAQE,UAAU,GAAGF,QAAQE,UAAU,CAACR,GAAG,GAAGE,qBAAoB,KAAMA;IAE9F,MAAMQ,UAAU,AAAEJ,CAAAA,QAAQK,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXL,OAAOU,IAAI,GAAGlB,iBAAiBO,OAAOC,OAAOU,IAAI,EAAEnB,aAAaE,WAAWE,GAAG,EAAES,cAAcH;QAC9FD,OAAOU,IAAI,GAAGlB,iBAAiBO,OAAOC,OAAOU,IAAI,EAAEnB,aAAaE,WAAWC,GAAG,EAAEQ,cAAcD;IAChG;IAEA,IAAIU,MAAMrB,KAAKsB,OAAO,CAACb,MAAMc,QAAQ;IACrC,IAAIpB,WAAWE,GAAG,CAACmB,OAAO,CAACH,QAAQ,GAAGA,MAAMP;SACvC,IAAIX,WAAWC,GAAG,CAACoB,OAAO,CAACH,QAAQ,GAAGA,MAAMT;IACjD,OAAOS;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchESM.ts"],"sourcesContent":["import type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport path from 'path';\nimport type { CompilerOptions } from 'typescript';\nimport { importRegEx } from '../constants';\nimport type { ConfigOptions } from '../types.ts';\nimport { makeReplacements, replaceExtension } from './rewriteExtensions.ts';\n\ninterface InternalCompilerOptions extends CompilerOptions {\n rewriteRelativeImportExtensions?: boolean;\n}\n\nexport default function patchESM(entry: Entry, output: Output, options: ConfigOptions): string {\n const rewrite = ((options.tsconfig.config.compilerOptions || {}) as unknown as InternalCompilerOptions).rewriteRelativeImportExtensions;\n if (rewrite) {\n output.code = makeReplacements(output.code, importRegEx);\n }\n\n return replaceExtension(path.extname(entry.basename));\n}\n"],"names":["path","importRegEx","makeReplacements","replaceExtension","patchESM","entry","output","options","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","extname","basename"],"mappings":"AAEA,OAAOA,UAAU,OAAO;AAExB,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,yBAAyB;AAM5E,eAAe,SAASC,SAASC,KAAY,EAAEC,MAAc,EAAEC,OAAsB;IACnF,MAAMC,UAAU,AAAED,CAAAA,QAAQE,QAAQ,CAACC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAA,EAA0CC,+BAA+B;IACvI,IAAIJ,SAAS;QACXF,OAAOO,IAAI,GAAGX,iBAAiBI,OAAOO,IAAI,EAAEZ;IAC9C;IAEA,OAAOE,iBAAiBH,KAAKc,OAAO,CAACT,MAAMU,QAAQ;AACrD"}
@@ -0,0 +1,8 @@
1
+ export declare const extensions: {
2
+ '.ts': string;
3
+ '.tsx': string;
4
+ '.mts': string;
5
+ '.cts': string;
6
+ };
7
+ export declare function replaceExtension(ext: string): string;
8
+ export declare function makeReplacements(code: string, regex: RegExp): string;
@@ -0,0 +1,26 @@
1
+ import path from 'path';
2
+ import { moduleRegEx } from '../constants.js';
3
+ import parseSpecifiers from './parseSpecifiers.js';
4
+ export const extensions = {
5
+ '.ts': '.js',
6
+ '.tsx': '.js',
7
+ '.mts': '.mjs',
8
+ '.cts': '.cjs'
9
+ };
10
+ export function replaceExtension(ext) {
11
+ const replace = extensions[ext];
12
+ return replace === undefined ? ext : replace;
13
+ }
14
+ export function makeReplacements(code, regex) {
15
+ const parsed = parseSpecifiers(code, regex);
16
+ return parsed.map((parsed)=>{
17
+ if (!parsed.isSpecifier) return parsed.content;
18
+ const specifier = parsed.content;
19
+ if (moduleRegEx.test(specifier)) return specifier;
20
+ if (specifier[0] !== '.') return specifier;
21
+ const ext = path.extname(specifier);
22
+ const replace = replaceExtension(ext);
23
+ if (ext === replace) return specifier;
24
+ return `${specifier.slice(0, -ext.length)}${replace}`;
25
+ }).join('');
26
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/rewriteExtensions.ts"],"sourcesContent":["import path from 'path';\nimport { moduleRegEx } from '../constants.ts';\nimport parseSpecifiers from './parseSpecifiers.ts';\n\nexport const extensions = {\n '.ts': '.js',\n '.tsx': '.js',\n '.mts': '.mjs',\n '.cts': '.cjs',\n};\n\nexport function replaceExtension(ext: string): string {\n const replace = extensions[ext];\n return replace === undefined ? ext : replace;\n}\n\nexport function makeReplacements(code: string, regex: RegExp): string {\n const parsed = parseSpecifiers(code, regex);\n\n return parsed\n .map((parsed) => {\n if (!parsed.isSpecifier) return parsed.content;\n const specifier = parsed.content;\n if (moduleRegEx.test(specifier)) return specifier;\n if (specifier[0] !== '.') return specifier;\n const ext = path.extname(specifier);\n const replace = replaceExtension(ext);\n if (ext === replace) return specifier;\n return `${specifier.slice(0, -ext.length)}${replace}`;\n })\n .join('');\n}\n"],"names":["path","moduleRegEx","parseSpecifiers","extensions","replaceExtension","ext","replace","undefined","makeReplacements","code","regex","parsed","map","isSpecifier","content","specifier","test","extname","slice","length","join"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,OAAOC,qBAAqB,uBAAuB;AAEnD,OAAO,MAAMC,aAAa;IACxB,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;AACV,EAAE;AAEF,OAAO,SAASC,iBAAiBC,GAAW;IAC1C,MAAMC,UAAUH,UAAU,CAACE,IAAI;IAC/B,OAAOC,YAAYC,YAAYF,MAAMC;AACvC;AAEA,OAAO,SAASE,iBAAiBC,IAAY,EAAEC,KAAa;IAC1D,MAAMC,SAAST,gBAAgBO,MAAMC;IAErC,OAAOC,OACJC,GAAG,CAAC,CAACD;QACJ,IAAI,CAACA,OAAOE,WAAW,EAAE,OAAOF,OAAOG,OAAO;QAC9C,MAAMC,YAAYJ,OAAOG,OAAO;QAChC,IAAIb,YAAYe,IAAI,CAACD,YAAY,OAAOA;QACxC,IAAIA,SAAS,CAAC,EAAE,KAAK,KAAK,OAAOA;QACjC,MAAMV,MAAML,KAAKiB,OAAO,CAACF;QACzB,MAAMT,UAAUF,iBAAiBC;QACjC,IAAIA,QAAQC,SAAS,OAAOS;QAC5B,OAAO,GAAGA,UAAUG,KAAK,CAAC,GAAG,CAACb,IAAIc,MAAM,IAAIb,SAAS;IACvD,GACCc,IAAI,CAAC;AACV"}
@@ -1,3 +1,3 @@
1
1
  import type { Entry } from 'fs-iterator';
2
- import type { ConfigOptionsInternal, TargetType, TransformFileCallback } from '../types.ts';
3
- export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptionsInternal, callback: TransformFileCallback): undefined;
2
+ import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.ts';
3
+ export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptions, callback: TransformFileCallback): undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/transformFile.ts"],"sourcesContent":["import type { Output } from '@swc/core';\nimport fs from 'fs';\nimport type { Entry } from 'fs-iterator';\nimport mkdirp from 'mkdirp-classic';\nimport Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport patchCJS from '../lib/patchCJS.ts';\nimport patchESM from '../lib/patchESM.ts';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { ConfigOptionsInternal, TargetType, TransformFileCallback } from '../types.ts';\n\nexport default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptionsInternal, callback: TransformFileCallback): undefined {\n let tsconfig = options.tsconfig;\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.config = { ...tsconfig.config };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = _require('@swc/core');\n\n swc\n .transformFile(entry.fullPath, {\n ...(entry.basename.endsWith('.tsx') || entry.basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: entry.basename,\n })\n .then((output: Output) => {\n const extTarget = type === 'esm' ? patchESM(entry, output, options) : patchCJS(entry, output, options);\n const ext = path.extname(entry.path);\n const outPath = path.join(dest, (ext ? entry.path.slice(0, -ext.length) : entry.path) + extTarget);\n\n mkdirp(path.dirname(outPath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, outPath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${outPath}.map`, output.map, 'utf8'));\n queue.await((err) => (err ? callback(err) : callback(null, outPath)));\n });\n })\n .catch(callback);\n}\n"],"names":["fs","mkdirp","Module","path","Queue","patchCJS","patchESM","swcPrepareOptions","_require","require","createRequire","url","transformFile","entry","dest","type","options","callback","tsconfig","config","compilerOptions","module","target","swcOptions","swc","fullPath","basename","endsWith","tsxOptions","nonTsxOptions","filename","then","output","extTarget","ext","extname","outPath","join","slice","length","dirname","queue","defer","writeFile","bind","code","sourceMaps","map","await","err","catch"],"mappings":"AACA,OAAOA,QAAQ,KAAK;AAEpB,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,cAAc,qBAAqB;AAC1C,OAAOC,cAAc,qBAAqB;AAC1C,OAAOC,uBAAuB,8BAA8B;AAE5D,MAAMC,WAAW,OAAOC,YAAY,cAAcP,OAAOQ,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAI1F,eAAe,SAASG,cAAcC,KAAY,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAA8B,EAAEC,QAA+B;IACjJ,IAAIC,WAAWF,QAAQE,QAAQ;IAE/B,oBAAoB;IACpB,IAAIH,SAAS,OAAO;QAClBG,WAAW;YAAE,GAAGA,QAAQ;QAAC;QACzBA,SAASC,MAAM,GAAG;YAAE,GAAGD,SAASC,MAAM;QAAC;QACvCD,SAASC,MAAM,CAACC,eAAe,GAAG;YAAE,GAAIF,SAASC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAC;QAAE;QAC/EF,SAASC,MAAM,CAACC,eAAe,CAACC,MAAM,GAAG;QACzCH,SAASC,MAAM,CAACC,eAAe,CAACE,MAAM,GAAG;IAC3C;IAEA,MAAMC,aAAahB,kBAAkBW;IACrC,MAAMM,MAAMhB,SAAS;IAErBgB,IACGZ,aAAa,CAACC,MAAMY,QAAQ,EAAE;QAC7B,GAAIZ,MAAMa,QAAQ,CAACC,QAAQ,CAAC,WAAWd,MAAMa,QAAQ,CAACC,QAAQ,CAAC,UAAUJ,WAAWK,UAAU,GAAGL,WAAWM,aAAa;QACzHC,UAAUjB,MAAMa,QAAQ;IAC1B,GACCK,IAAI,CAAC,CAACC;QACL,MAAMC,YAAYlB,SAAS,QAAQT,SAASO,OAAOmB,QAAQhB,WAAWX,SAASQ,OAAOmB,QAAQhB;QAC9F,MAAMkB,MAAM/B,KAAKgC,OAAO,CAACtB,MAAMV,IAAI;QACnC,MAAMiC,UAAUjC,KAAKkC,IAAI,CAACvB,MAAM,AAACoB,CAAAA,MAAMrB,MAAMV,IAAI,CAACmC,KAAK,CAAC,GAAG,CAACJ,IAAIK,MAAM,IAAI1B,MAAMV,IAAI,AAAD,IAAK8B;QAExFhC,OAAOE,KAAKqC,OAAO,CAACJ,UAAU;YAC5B,MAAMK,QAAQ,IAAIrC;YAClBqC,MAAMC,KAAK,CAAC1C,GAAG2C,SAAS,CAACC,IAAI,CAAC,MAAMR,SAASJ,OAAOa,IAAI,EAAE;YAC1D,CAAC7B,QAAQ8B,UAAU,IAAIL,MAAMC,KAAK,CAAC1C,GAAG2C,SAAS,CAACC,IAAI,CAAC,MAAM,GAAGR,QAAQ,IAAI,CAAC,EAAEJ,OAAOe,GAAG,EAAE;YACzFN,MAAMO,KAAK,CAAC,CAACC,MAASA,MAAMhC,SAASgC,OAAOhC,SAAS,MAAMmB;QAC7D;IACF,GACCc,KAAK,CAACjC;AACX"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/transformFile.ts"],"sourcesContent":["import type { Output } from '@swc/core';\nimport fs from 'fs';\nimport type { Entry } from 'fs-iterator';\nimport mkdirp from 'mkdirp-classic';\nimport Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport patchCJS from '../lib/patchCJS.ts';\nimport patchESM from '../lib/patchESM.ts';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.ts';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { ConfigOptions, TargetType, TransformFileCallback } from '../types.ts';\n\nexport default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptions, callback: TransformFileCallback): undefined {\n let tsconfig = options.tsconfig;\n\n // overrides for cjs\n if (type === 'cjs') {\n tsconfig = { ...tsconfig };\n tsconfig.config = { ...tsconfig.config };\n tsconfig.config.compilerOptions = { ...(tsconfig.config.compilerOptions || {}) };\n tsconfig.config.compilerOptions.module = 'CommonJS';\n tsconfig.config.compilerOptions.target = 'ES5';\n }\n\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = _require('@swc/core');\n\n swc\n .transformFile(entry.fullPath, {\n ...(entry.basename.endsWith('.tsx') || entry.basename.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: entry.basename,\n })\n .then((output: Output) => {\n const extTarget = type === 'esm' ? patchESM(entry, output, options) : patchCJS(entry, output, options);\n const ext = path.extname(entry.path);\n const outPath = path.join(dest, (ext ? entry.path.slice(0, -ext.length) : entry.path) + extTarget);\n\n mkdirp(path.dirname(outPath), () => {\n const queue = new Queue();\n queue.defer(fs.writeFile.bind(null, outPath, output.code, 'utf8'));\n !options.sourceMaps || queue.defer(fs.writeFile.bind(null, `${outPath}.map`, output.map, 'utf8'));\n queue.await((err) => (err ? callback(err) : callback(null, outPath)));\n });\n })\n .catch(callback);\n}\n"],"names":["fs","mkdirp","Module","path","Queue","patchCJS","patchESM","swcPrepareOptions","_require","require","createRequire","url","transformFile","entry","dest","type","options","callback","tsconfig","config","compilerOptions","module","target","swcOptions","swc","fullPath","basename","endsWith","tsxOptions","nonTsxOptions","filename","then","output","extTarget","ext","extname","outPath","join","slice","length","dirname","queue","defer","writeFile","bind","code","sourceMaps","map","await","err","catch"],"mappings":"AACA,OAAOA,QAAQ,KAAK;AAEpB,OAAOC,YAAY,iBAAiB;AACpC,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,OAAOC,cAAc,qBAAqB;AAC1C,OAAOC,cAAc,qBAAqB;AAC1C,OAAOC,uBAAuB,8BAA8B;AAE5D,MAAMC,WAAW,OAAOC,YAAY,cAAcP,OAAOQ,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAI1F,eAAe,SAASG,cAAcC,KAAY,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAsB,EAAEC,QAA+B;IACzI,IAAIC,WAAWF,QAAQE,QAAQ;IAE/B,oBAAoB;IACpB,IAAIH,SAAS,OAAO;QAClBG,WAAW;YAAE,GAAGA,QAAQ;QAAC;QACzBA,SAASC,MAAM,GAAG;YAAE,GAAGD,SAASC,MAAM;QAAC;QACvCD,SAASC,MAAM,CAACC,eAAe,GAAG;YAAE,GAAIF,SAASC,MAAM,CAACC,eAAe,IAAI,CAAC,CAAC;QAAE;QAC/EF,SAASC,MAAM,CAACC,eAAe,CAACC,MAAM,GAAG;QACzCH,SAASC,MAAM,CAACC,eAAe,CAACE,MAAM,GAAG;IAC3C;IAEA,MAAMC,aAAahB,kBAAkBW;IACrC,MAAMM,MAAMhB,SAAS;IAErBgB,IACGZ,aAAa,CAACC,MAAMY,QAAQ,EAAE;QAC7B,GAAIZ,MAAMa,QAAQ,CAACC,QAAQ,CAAC,WAAWd,MAAMa,QAAQ,CAACC,QAAQ,CAAC,UAAUJ,WAAWK,UAAU,GAAGL,WAAWM,aAAa;QACzHC,UAAUjB,MAAMa,QAAQ;IAC1B,GACCK,IAAI,CAAC,CAACC;QACL,MAAMC,YAAYlB,SAAS,QAAQT,SAASO,OAAOmB,QAAQhB,WAAWX,SAASQ,OAAOmB,QAAQhB;QAC9F,MAAMkB,MAAM/B,KAAKgC,OAAO,CAACtB,MAAMV,IAAI;QACnC,MAAMiC,UAAUjC,KAAKkC,IAAI,CAACvB,MAAM,AAACoB,CAAAA,MAAMrB,MAAMV,IAAI,CAACmC,KAAK,CAAC,GAAG,CAACJ,IAAIK,MAAM,IAAI1B,MAAMV,IAAI,AAAD,IAAK8B;QAExFhC,OAAOE,KAAKqC,OAAO,CAACJ,UAAU;YAC5B,MAAMK,QAAQ,IAAIrC;YAClBqC,MAAMC,KAAK,CAAC1C,GAAG2C,SAAS,CAACC,IAAI,CAAC,MAAMR,SAASJ,OAAOa,IAAI,EAAE;YAC1D,CAAC7B,QAAQ8B,UAAU,IAAIL,MAAMC,KAAK,CAAC1C,GAAG2C,SAAS,CAACC,IAAI,CAAC,MAAM,GAAGR,QAAQ,IAAI,CAAC,EAAEJ,OAAOe,GAAG,EAAE;YACzFN,MAAMO,KAAK,CAAC,CAACC,MAASA,MAAMhC,SAASgC,OAAOhC,SAAS,MAAMmB;QAC7D;IACF,GACCc,KAAK,CAACjC;AACX"}
@@ -3,18 +3,10 @@ export interface Context {
3
3
  parentPath?: string;
4
4
  }
5
5
  import type { TsConfigResult } from 'get-tsconfig-compat';
6
- export interface Extensions {
7
- cjs?: string;
8
- esm?: string;
9
- }
10
6
  export interface ConfigOptions {
11
7
  tsconfig?: TsConfigResult;
12
8
  cwd?: string;
13
9
  sourceMaps?: boolean;
14
- extensions?: Extensions;
15
- }
16
- export interface ConfigOptionsInternal extends ConfigOptions {
17
- src: string;
18
10
  }
19
11
  export type TransformDirectoryCallback = (err?: Error, filePaths?: string[]) => void;
20
12
  export type TransformFileCallback = (err?: Error, destFilePath?: string) => void;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/types.ts"],"sourcesContent":["export interface Context {\n parentURL?: string;\n parentPath?: string;\n}\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport interface Extensions {\n cjs?: string;\n esm?: string;\n}\n\nexport interface ConfigOptions {\n tsconfig?: TsConfigResult;\n cwd?: string;\n sourceMaps?: boolean;\n extensions?: Extensions;\n}\n\nexport interface ConfigOptionsInternal extends ConfigOptions {\n src: string;\n}\n\nexport type TransformDirectoryCallback = (err?: Error, filePaths?: string[]) => void;\nexport type TransformFileCallback = (err?: Error, destFilePath?: string) => void;\nexport type TransformTypesCallback = (err?: Error, filePaths?: string[]) => void;\n\nexport type Matcher = (filePath: string) => boolean;\n\nexport type TargetType = 'cjs' | 'esm';\n"],"names":[],"mappings":"AA4BA,WAAuC"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/types.ts"],"sourcesContent":["export interface Context {\n parentURL?: string;\n parentPath?: string;\n}\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n\nexport interface ConfigOptions {\n tsconfig?: TsConfigResult;\n cwd?: string;\n sourceMaps?: boolean;\n}\n\nexport type TransformDirectoryCallback = (err?: Error, filePaths?: string[]) => void;\nexport type TransformFileCallback = (err?: Error, destFilePath?: string) => void;\nexport type TransformTypesCallback = (err?: Error, filePaths?: string[]) => void;\n\nexport type Matcher = (filePath: string) => boolean;\n\nexport type TargetType = 'cjs' | 'esm';\n"],"names":[],"mappings":"AAmBA,WAAuC"}
@@ -25,9 +25,7 @@ export default function transformDirectoryWorker(src, dest, type, options, callb
25
25
  const results = [];
26
26
  options = {
27
27
  ...options,
28
- tsconfig,
29
- src,
30
- dest
28
+ tsconfig
31
29
  };
32
30
  const queue = new Queue();
33
31
  entries.forEach((entry)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformDirectory.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { extensions, typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport transformFile from '../lib/transformFile.ts';\n\nimport type { ConfigOptions, ConfigOptionsInternal, TargetType, TransformDirectoryCallback } from '../types.ts';\n\nexport default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n\n const entries: Entry[] = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n const ext = path.extname(entry.basename);\n if (ext && extensions.indexOf(ext) < 0) return;\n entries.push(entry);\n },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n const results = [];\n options = { ...options, tsconfig, src, dest } as ConfigOptionsInternal;\n\n const queue = new Queue();\n entries.forEach((entry: Entry) => {\n queue.defer((cb) =>\n transformFile(entry, dest, type, options as ConfigOptionsInternal, (err, outPath) => {\n if (err) return cb(err);\n results.push(path.normalize(outPath));\n if (options.sourceMaps) results.push(`${path.normalize(outPath)}.map`);\n cb();\n })\n );\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n}\n"],"names":["Iterator","path","Queue","extensions","typeFileRegEx","createMatcher","transformFile","transformDirectoryWorker","src","dest","type","options","callback","tsconfig","matcher","entries","iterator","forEach","entry","stats","isFile","basename","test","fullPath","ext","extname","indexOf","push","err","results","queue","defer","cb","outPath","normalize","sourceMaps","await"],"mappings":"AAAA,OAAOA,cAA8B,cAAc;AACnD,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAkB;AAC5D,OAAOC,mBAAmB,sBAAsB;AAChD,OAAOC,mBAAmB,0BAA0B;AAIpD,eAAe,SAASC,yBAAyBC,GAAW,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAsB,EAAEC,QAAoC;IACxJ,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUT,cAAcQ;IAE9B,MAAME,UAAmB,EAAE;IAC3B,MAAMC,WAAW,IAAIhB,SAASQ;IAC9BQ,SAASC,OAAO,CACd,CAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIjB,cAAckB,IAAI,CAACJ,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACP,QAAQI,MAAMK,QAAQ,GAAG;QAC9B,MAAMC,MAAMvB,KAAKwB,OAAO,CAACP,MAAMG,QAAQ;QACvC,IAAIG,OAAOrB,WAAWuB,OAAO,CAACF,OAAO,GAAG;QACxCT,QAAQY,IAAI,CAACT;IACf,GACA,CAACU;QACC,IAAIA,KAAK;YACPhB,SAASgB;YACT;QACF;QACA,MAAMC,UAAU,EAAE;QAClBlB,UAAU;YAAE,GAAGA,OAAO;YAAEE;YAAUL;YAAKC;QAAK;QAE5C,MAAMqB,QAAQ,IAAI5B;QAClBa,QAAQE,OAAO,CAAC,CAACC;YACfY,MAAMC,KAAK,CAAC,CAACC,KACX1B,cAAcY,OAAOT,MAAMC,MAAMC,SAAkC,CAACiB,KAAKK;oBACvE,IAAIL,KAAK,OAAOI,GAAGJ;oBACnBC,QAAQF,IAAI,CAAC1B,KAAKiC,SAAS,CAACD;oBAC5B,IAAItB,QAAQwB,UAAU,EAAEN,QAAQF,IAAI,CAAC,GAAG1B,KAAKiC,SAAS,CAACD,SAAS,IAAI,CAAC;oBACrED;gBACF;QAEJ;QACAF,MAAMM,KAAK,CAAC,CAACR,MAASA,MAAMhB,SAASgB,OAAOhB,SAAS,MAAMiB;IAC7D;AAEJ"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformDirectory.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\nimport path from 'path';\nimport Queue from 'queue-cb';\n\nimport { extensions, typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport transformFile from '../lib/transformFile.ts';\n\nimport type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.ts';\n\nexport default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n\n const entries: Entry[] = [];\n const iterator = new Iterator(src);\n iterator.forEach(\n (entry: Entry): undefined => {\n if (!entry.stats.isFile()) return;\n if (entry.basename[0] === '.') return;\n if (typeFileRegEx.test(entry.basename)) return;\n if (!matcher(entry.fullPath)) return;\n const ext = path.extname(entry.basename);\n if (ext && extensions.indexOf(ext) < 0) return;\n entries.push(entry);\n },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n const results = [];\n options = { ...options, tsconfig };\n\n const queue = new Queue();\n entries.forEach((entry: Entry) => {\n queue.defer((cb) =>\n transformFile(entry, dest, type, options, (err, outPath) => {\n if (err) return cb(err);\n results.push(path.normalize(outPath));\n if (options.sourceMaps) results.push(`${path.normalize(outPath)}.map`);\n cb();\n })\n );\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n }\n );\n}\n"],"names":["Iterator","path","Queue","extensions","typeFileRegEx","createMatcher","transformFile","transformDirectoryWorker","src","dest","type","options","callback","tsconfig","matcher","entries","iterator","forEach","entry","stats","isFile","basename","test","fullPath","ext","extname","indexOf","push","err","results","queue","defer","cb","outPath","normalize","sourceMaps","await"],"mappings":"AAAA,OAAOA,cAA8B,cAAc;AACnD,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAE7B,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAkB;AAC5D,OAAOC,mBAAmB,sBAAsB;AAChD,OAAOC,mBAAmB,0BAA0B;AAIpD,eAAe,SAASC,yBAAyBC,GAAW,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAsB,EAAEC,QAAoC;IACxJ,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUT,cAAcQ;IAE9B,MAAME,UAAmB,EAAE;IAC3B,MAAMC,WAAW,IAAIhB,SAASQ;IAC9BQ,SAASC,OAAO,CACd,CAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIjB,cAAckB,IAAI,CAACJ,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACP,QAAQI,MAAMK,QAAQ,GAAG;QAC9B,MAAMC,MAAMvB,KAAKwB,OAAO,CAACP,MAAMG,QAAQ;QACvC,IAAIG,OAAOrB,WAAWuB,OAAO,CAACF,OAAO,GAAG;QACxCT,QAAQY,IAAI,CAACT;IACf,GACA,CAACU;QACC,IAAIA,KAAK;YACPhB,SAASgB;YACT;QACF;QACA,MAAMC,UAAU,EAAE;QAClBlB,UAAU;YAAE,GAAGA,OAAO;YAAEE;QAAS;QAEjC,MAAMiB,QAAQ,IAAI5B;QAClBa,QAAQE,OAAO,CAAC,CAACC;YACfY,MAAMC,KAAK,CAAC,CAACC,KACX1B,cAAcY,OAAOT,MAAMC,MAAMC,SAAS,CAACiB,KAAKK;oBAC9C,IAAIL,KAAK,OAAOI,GAAGJ;oBACnBC,QAAQF,IAAI,CAAC1B,KAAKiC,SAAS,CAACD;oBAC5B,IAAItB,QAAQwB,UAAU,EAAEN,QAAQF,IAAI,CAAC,GAAG1B,KAAKiC,SAAS,CAACD,SAAS,IAAI,CAAC;oBACrED;gBACF;QAEJ;QACAF,MAAMM,KAAK,CAAC,CAACR,MAASA,MAAMhB,SAASgB,OAAOhB,SAAS,MAAMiB;IAC7D;AAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-swc-transform",
3
- "version": "2.1.3",
3
+ "version": "2.2.1",
4
4
  "description": "Typescript transformers for swc. Supports Node >= 0.8",
5
5
  "keywords": [
6
6
  "matcher",
@@ -48,12 +48,12 @@
48
48
  "exit": "^0.1.2",
49
49
  "fs-iterator": "^6.0.3",
50
50
  "get-tsconfig-compat": "^2.0.3",
51
- "install-optional": "^0.1.69",
51
+ "install-optional": "^0.1.70",
52
52
  "is-absolute": "^1.0.0",
53
53
  "lodash.find": "^4.6.0",
54
54
  "minimatch": "^3.1.2",
55
55
  "mkdirp-classic": "^0.5.3",
56
- "node-version-call": "^1.7.16",
56
+ "node-version-call": "^1.7.17",
57
57
  "path-posix": "^1.0.0",
58
58
  "queue-cb": "^1.5.5",
59
59
  "resolve": "^1.22.10",
@@ -1,3 +0,0 @@
1
- import type { Entry } from 'fs-iterator';
2
- import type { ConfigOptionsInternal } from '../types.ts';
3
- export default function makeReplacements(entry: Entry, code: string, regex: RegExp, extensions: string[], extension: string, options: ConfigOptionsInternal): string;
@@ -1,3 +0,0 @@
1
- import type { Entry } from 'fs-iterator';
2
- import type { ConfigOptionsInternal } from '../types.ts';
3
- export default function makeReplacements(entry: Entry, code: string, regex: RegExp, extensions: string[], extension: string, options: ConfigOptionsInternal): string;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return makeReplacements;
9
- }
10
- });
11
- var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
- var _lodashfind = /*#__PURE__*/ _interop_require_default(require("lodash.find"));
13
- var _path = /*#__PURE__*/ _interop_require_default(require("path"));
14
- var _constants = require("../constants.js");
15
- var _parseSpecifiers = /*#__PURE__*/ _interop_require_default(require("./parseSpecifiers.js"));
16
- function _interop_require_default(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- function makeReplacements(entry, code, regex, extensions, extension, options) {
22
- var src = options.src;
23
- var parsed = (0, _parseSpecifiers.default)(code, regex);
24
- return parsed.map(function(parsed) {
25
- if (!parsed.isSpecifier) return parsed.content;
26
- var specifier = parsed.content;
27
- if (_constants.moduleRegEx.test(specifier)) return specifier;
28
- var ext = _path.default.extname(specifier);
29
- if (ext && extensions.indexOf(ext) < 0) return specifier;
30
- if (!ext) {
31
- try {
32
- var basename = _path.default.basename(specifier);
33
- var fullPath = _path.default.join(src, _path.default.dirname(entry.path), specifier);
34
- var files = _fs.default.readdirSync(_path.default.dirname(fullPath), {
35
- withFileTypes: true
36
- });
37
- var found = (0, _lodashfind.default)(files, function(x) {
38
- return x.name === basename;
39
- });
40
- if (found && found.isDirectory()) return specifier;
41
- } catch (_err) {}
42
- }
43
- var stripped = ext ? specifier.slice(0, -ext.length) : specifier;
44
- return "".concat(stripped).concat(extension);
45
- }).join('');
46
- }
47
- /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/makeReplacements.ts"],"sourcesContent":["import fs from 'fs';\nimport type { Entry } from 'fs-iterator';\nimport find from 'lodash.find';\nimport path from 'path';\nimport { moduleRegEx } from '../constants';\nimport type { ConfigOptionsInternal } from '../types.ts';\nimport parseSpecifiers from './parseSpecifiers';\n\nexport default function makeReplacements(entry: Entry, code: string, regex: RegExp, extensions: string[], extension: string, options: ConfigOptionsInternal): string {\n const { src } = options;\n const parsed = parseSpecifiers(code, regex);\n\n return parsed\n .map((parsed) => {\n if (!parsed.isSpecifier) return parsed.content;\n const specifier = parsed.content;\n if (moduleRegEx.test(specifier)) return specifier;\n\n const ext = path.extname(specifier);\n if (ext && extensions.indexOf(ext) < 0) return specifier;\n if (!ext) {\n try {\n const basename = path.basename(specifier);\n const fullPath = path.join(src, path.dirname(entry.path), specifier);\n const files = fs.readdirSync(path.dirname(fullPath), { withFileTypes: true });\n const found = find(files, (x) => x.name === basename);\n if (found && found.isDirectory()) return specifier;\n } catch (_err) {}\n }\n const stripped = ext ? specifier.slice(0, -ext.length) : specifier;\n return `${stripped}${extension}`;\n })\n .join('');\n}\n"],"names":["makeReplacements","entry","code","regex","extensions","extension","options","src","parsed","parseSpecifiers","map","isSpecifier","content","specifier","moduleRegEx","test","ext","path","extname","indexOf","basename","fullPath","join","dirname","files","fs","readdirSync","withFileTypes","found","find","x","name","isDirectory","_err","stripped","slice","length"],"mappings":";;;;+BAQA;;;eAAwBA;;;yDART;iEAEE;2DACA;yBACW;sEAEA;;;;;;AAEb,SAASA,iBAAiBC,KAAY,EAAEC,IAAY,EAAEC,KAAa,EAAEC,UAAoB,EAAEC,SAAiB,EAAEC,OAA8B;IACzJ,IAAM,AAAEC,MAAQD,QAARC;IACR,IAAMC,SAASC,IAAAA,wBAAe,EAACP,MAAMC;IAErC,OAAOK,OACJE,GAAG,CAAC,SAACF;QACJ,IAAI,CAACA,OAAOG,WAAW,EAAE,OAAOH,OAAOI,OAAO;QAC9C,IAAMC,YAAYL,OAAOI,OAAO;QAChC,IAAIE,sBAAW,CAACC,IAAI,CAACF,YAAY,OAAOA;QAExC,IAAMG,MAAMC,aAAI,CAACC,OAAO,CAACL;QACzB,IAAIG,OAAOZ,WAAWe,OAAO,CAACH,OAAO,GAAG,OAAOH;QAC/C,IAAI,CAACG,KAAK;YACR,IAAI;gBACF,IAAMI,WAAWH,aAAI,CAACG,QAAQ,CAACP;gBAC/B,IAAMQ,WAAWJ,aAAI,CAACK,IAAI,CAACf,KAAKU,aAAI,CAACM,OAAO,CAACtB,MAAMgB,IAAI,GAAGJ;gBAC1D,IAAMW,QAAQC,WAAE,CAACC,WAAW,CAACT,aAAI,CAACM,OAAO,CAACF,WAAW;oBAAEM,eAAe;gBAAK;gBAC3E,IAAMC,QAAQC,IAAAA,mBAAI,EAACL,OAAO,SAACM;2BAAMA,EAAEC,IAAI,KAAKX;;gBAC5C,IAAIQ,SAASA,MAAMI,WAAW,IAAI,OAAOnB;YAC3C,EAAE,OAAOoB,MAAM,CAAC;QAClB;QACA,IAAMC,WAAWlB,MAAMH,UAAUsB,KAAK,CAAC,GAAG,CAACnB,IAAIoB,MAAM,IAAIvB;QACzD,OAAO,AAAC,GAAaR,OAAX6B,UAAqB,OAAV7B;IACvB,GACCiB,IAAI,CAAC;AACV"}
@@ -1,3 +0,0 @@
1
- import type { Entry } from 'fs-iterator';
2
- import type { ConfigOptionsInternal } from '../types.ts';
3
- export default function makeReplacements(entry: Entry, code: string, regex: RegExp, extensions: string[], extension: string, options: ConfigOptionsInternal): string;
@@ -1,29 +0,0 @@
1
- import fs from 'fs';
2
- import find from 'lodash.find';
3
- import path from 'path';
4
- import { moduleRegEx } from '../constants.js';
5
- import parseSpecifiers from './parseSpecifiers.js';
6
- export default function makeReplacements(entry, code, regex, extensions, extension, options) {
7
- const { src } = options;
8
- const parsed = parseSpecifiers(code, regex);
9
- return parsed.map((parsed)=>{
10
- if (!parsed.isSpecifier) return parsed.content;
11
- const specifier = parsed.content;
12
- if (moduleRegEx.test(specifier)) return specifier;
13
- const ext = path.extname(specifier);
14
- if (ext && extensions.indexOf(ext) < 0) return specifier;
15
- if (!ext) {
16
- try {
17
- const basename = path.basename(specifier);
18
- const fullPath = path.join(src, path.dirname(entry.path), specifier);
19
- const files = fs.readdirSync(path.dirname(fullPath), {
20
- withFileTypes: true
21
- });
22
- const found = find(files, (x)=>x.name === basename);
23
- if (found && found.isDirectory()) return specifier;
24
- } catch (_err) {}
25
- }
26
- const stripped = ext ? specifier.slice(0, -ext.length) : specifier;
27
- return `${stripped}${extension}`;
28
- }).join('');
29
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/makeReplacements.ts"],"sourcesContent":["import fs from 'fs';\nimport type { Entry } from 'fs-iterator';\nimport find from 'lodash.find';\nimport path from 'path';\nimport { moduleRegEx } from '../constants';\nimport type { ConfigOptionsInternal } from '../types.ts';\nimport parseSpecifiers from './parseSpecifiers';\n\nexport default function makeReplacements(entry: Entry, code: string, regex: RegExp, extensions: string[], extension: string, options: ConfigOptionsInternal): string {\n const { src } = options;\n const parsed = parseSpecifiers(code, regex);\n\n return parsed\n .map((parsed) => {\n if (!parsed.isSpecifier) return parsed.content;\n const specifier = parsed.content;\n if (moduleRegEx.test(specifier)) return specifier;\n\n const ext = path.extname(specifier);\n if (ext && extensions.indexOf(ext) < 0) return specifier;\n if (!ext) {\n try {\n const basename = path.basename(specifier);\n const fullPath = path.join(src, path.dirname(entry.path), specifier);\n const files = fs.readdirSync(path.dirname(fullPath), { withFileTypes: true });\n const found = find(files, (x) => x.name === basename);\n if (found && found.isDirectory()) return specifier;\n } catch (_err) {}\n }\n const stripped = ext ? specifier.slice(0, -ext.length) : specifier;\n return `${stripped}${extension}`;\n })\n .join('');\n}\n"],"names":["fs","find","path","moduleRegEx","parseSpecifiers","makeReplacements","entry","code","regex","extensions","extension","options","src","parsed","map","isSpecifier","content","specifier","test","ext","extname","indexOf","basename","fullPath","join","dirname","files","readdirSync","withFileTypes","found","x","name","isDirectory","_err","stripped","slice","length"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,OAAOC,UAAU,cAAc;AAC/B,OAAOC,UAAU,OAAO;AACxB,SAASC,WAAW,QAAQ,eAAe;AAE3C,OAAOC,qBAAqB,oBAAoB;AAEhD,eAAe,SAASC,iBAAiBC,KAAY,EAAEC,IAAY,EAAEC,KAAa,EAAEC,UAAoB,EAAEC,SAAiB,EAAEC,OAA8B;IACzJ,MAAM,EAAEC,GAAG,EAAE,GAAGD;IAChB,MAAME,SAAST,gBAAgBG,MAAMC;IAErC,OAAOK,OACJC,GAAG,CAAC,CAACD;QACJ,IAAI,CAACA,OAAOE,WAAW,EAAE,OAAOF,OAAOG,OAAO;QAC9C,MAAMC,YAAYJ,OAAOG,OAAO;QAChC,IAAIb,YAAYe,IAAI,CAACD,YAAY,OAAOA;QAExC,MAAME,MAAMjB,KAAKkB,OAAO,CAACH;QACzB,IAAIE,OAAOV,WAAWY,OAAO,CAACF,OAAO,GAAG,OAAOF;QAC/C,IAAI,CAACE,KAAK;YACR,IAAI;gBACF,MAAMG,WAAWpB,KAAKoB,QAAQ,CAACL;gBAC/B,MAAMM,WAAWrB,KAAKsB,IAAI,CAACZ,KAAKV,KAAKuB,OAAO,CAACnB,MAAMJ,IAAI,GAAGe;gBAC1D,MAAMS,QAAQ1B,GAAG2B,WAAW,CAACzB,KAAKuB,OAAO,CAACF,WAAW;oBAAEK,eAAe;gBAAK;gBAC3E,MAAMC,QAAQ5B,KAAKyB,OAAO,CAACI,IAAMA,EAAEC,IAAI,KAAKT;gBAC5C,IAAIO,SAASA,MAAMG,WAAW,IAAI,OAAOf;YAC3C,EAAE,OAAOgB,MAAM,CAAC;QAClB;QACA,MAAMC,WAAWf,MAAMF,UAAUkB,KAAK,CAAC,GAAG,CAAChB,IAAIiB,MAAM,IAAInB;QACzD,OAAO,GAAGiB,WAAWxB,WAAW;IAClC,GACCc,IAAI,CAAC;AACV"}