ts-swc-transform 2.0.18 → 2.0.20

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 (81) hide show
  1. package/dist/cjs/lib/makeReplacements.d.cts +3 -0
  2. package/dist/cjs/lib/makeReplacements.d.ts +3 -0
  3. package/dist/cjs/lib/makeReplacements.js +47 -0
  4. package/dist/cjs/lib/makeReplacements.js.map +1 -0
  5. package/dist/cjs/lib/parseSpecifiers.d.cts +5 -0
  6. package/dist/cjs/lib/parseSpecifiers.d.ts +5 -0
  7. package/dist/cjs/lib/parseSpecifiers.js +37 -0
  8. package/dist/cjs/lib/parseSpecifiers.js.map +1 -0
  9. package/dist/cjs/lib/patchCJS.d.cts +4 -1
  10. package/dist/cjs/lib/patchCJS.d.ts +4 -1
  11. package/dist/cjs/lib/patchCJS.js +10 -8
  12. package/dist/cjs/lib/patchCJS.js.map +1 -1
  13. package/dist/cjs/lib/patchESM.d.cts +4 -1
  14. package/dist/cjs/lib/patchESM.d.ts +4 -1
  15. package/dist/cjs/lib/patchESM.js +28 -6
  16. package/dist/cjs/lib/patchESM.js.map +1 -1
  17. package/dist/cjs/lib/swcPrepareOptions.d.cts +6 -1
  18. package/dist/cjs/lib/swcPrepareOptions.d.ts +6 -1
  19. package/dist/cjs/lib/swcPrepareOptions.js.map +1 -1
  20. package/dist/cjs/lib/transformFile.d.cts +3 -1
  21. package/dist/cjs/lib/transformFile.d.ts +3 -1
  22. package/dist/cjs/lib/transformFile.js.map +1 -1
  23. package/dist/cjs/loadTsConfig.js.map +1 -1
  24. package/dist/cjs/resolveFileSync.d.cts +1 -1
  25. package/dist/cjs/resolveFileSync.d.ts +1 -1
  26. package/dist/cjs/resolveFileSync.js.map +1 -1
  27. package/dist/cjs/toPath.d.cts +1 -1
  28. package/dist/cjs/toPath.d.ts +1 -1
  29. package/dist/cjs/toPath.js.map +1 -1
  30. package/dist/cjs/transformDirectory.d.cts +2 -2
  31. package/dist/cjs/transformDirectory.d.ts +2 -2
  32. package/dist/cjs/transformDirectory.js +1 -1
  33. package/dist/cjs/transformDirectory.js.map +1 -1
  34. package/dist/cjs/types.d.cts +10 -0
  35. package/dist/cjs/types.d.ts +10 -0
  36. package/dist/cjs/workers/transformDirectory.d.cts +2 -1
  37. package/dist/cjs/workers/transformDirectory.d.ts +2 -1
  38. package/dist/cjs/workers/transformDirectory.js +4 -1
  39. package/dist/cjs/workers/transformDirectory.js.map +1 -1
  40. package/dist/cjs/workers/transformSync.d.cts +2 -1
  41. package/dist/cjs/workers/transformSync.d.ts +2 -1
  42. package/dist/cjs/workers/transformSync.js.map +1 -1
  43. package/dist/cjs/workers/transformTypes.d.cts +2 -1
  44. package/dist/cjs/workers/transformTypes.d.ts +2 -1
  45. package/dist/cjs/workers/transformTypes.js +6 -2
  46. package/dist/cjs/workers/transformTypes.js.map +1 -1
  47. package/dist/esm/lib/makeReplacements.d.ts +3 -0
  48. package/dist/esm/lib/makeReplacements.js +29 -0
  49. package/dist/esm/lib/makeReplacements.js.map +1 -0
  50. package/dist/esm/lib/parseSpecifiers.d.ts +5 -0
  51. package/dist/esm/lib/parseSpecifiers.js +26 -0
  52. package/dist/esm/lib/parseSpecifiers.js.map +1 -0
  53. package/dist/esm/lib/patchCJS.d.ts +4 -1
  54. package/dist/esm/lib/patchCJS.js +10 -8
  55. package/dist/esm/lib/patchCJS.js.map +1 -1
  56. package/dist/esm/lib/patchESM.d.ts +4 -1
  57. package/dist/esm/lib/patchESM.js +29 -7
  58. package/dist/esm/lib/patchESM.js.map +1 -1
  59. package/dist/esm/lib/swcPrepareOptions.d.ts +6 -1
  60. package/dist/esm/lib/swcPrepareOptions.js.map +1 -1
  61. package/dist/esm/lib/transformFile.d.ts +3 -1
  62. package/dist/esm/lib/transformFile.js.map +1 -1
  63. package/dist/esm/loadTsConfig.js.map +1 -1
  64. package/dist/esm/resolveFileSync.d.ts +1 -1
  65. package/dist/esm/resolveFileSync.js.map +1 -1
  66. package/dist/esm/toPath.d.ts +1 -1
  67. package/dist/esm/toPath.js.map +1 -1
  68. package/dist/esm/transformDirectory.d.ts +2 -2
  69. package/dist/esm/transformDirectory.js +3 -1
  70. package/dist/esm/transformDirectory.js.map +1 -1
  71. package/dist/esm/types.d.ts +10 -0
  72. package/dist/esm/types.js.map +1 -1
  73. package/dist/esm/workers/transformDirectory.d.ts +2 -1
  74. package/dist/esm/workers/transformDirectory.js +4 -1
  75. package/dist/esm/workers/transformDirectory.js.map +1 -1
  76. package/dist/esm/workers/transformSync.d.ts +2 -1
  77. package/dist/esm/workers/transformSync.js.map +1 -1
  78. package/dist/esm/workers/transformTypes.d.ts +2 -1
  79. package/dist/esm/workers/transformTypes.js +6 -2
  80. package/dist/esm/workers/transformTypes.js.map +1 -1
  81. package/package.json +1 -1
@@ -85,12 +85,16 @@ function transformTypesWorker(src, dest, options, callback) {
85
85
  }, {
86
86
  concurrency: Infinity
87
87
  }, function(err) {
88
- if (err) return callback(err);
88
+ if (err) {
89
+ callback(err);
90
+ return;
91
+ }
92
+ var compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');
89
93
  var config = {
90
94
  fileNames: entries.map(function(entry) {
91
95
  return entry.fullPath;
92
96
  }),
93
- options: _object_spread_props(_object_spread({}, tsconfig.compilerOptions || {}), {
97
+ options: _object_spread_props(_object_spread({}, compilerOptions), {
94
98
  outDir: dest,
95
99
  allowJs: true,
96
100
  declaration: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nexport default function transformTypesWorker(src, dest, options, callback) {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\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 entries.push(entry);\n },\n { concurrency: Infinity },\n (err) => {\n if (err) return callback(err);\n\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...(tsconfig.compilerOptions || {}),\n outDir: dest,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["transformTypesWorker","_require","require","Module","createRequire","src","dest","options","callback","tsconfig","matcher","createMatcher","ts","entries","iterator","Iterator","forEach","entry","stats","isFile","basename","typeFileRegEx","test","fullPath","push","concurrency","Infinity","err","config","fileNames","map","compilerOptions","outDir","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles"],"mappings":";;;;+BASA;;;eAAwBA;;;iEATa;6DAElB;yBAIW;oEACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAH1B,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAK3E,SAASF,qBAAqBK,GAAG,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACvE,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,UAAUC,IAAAA,sBAAa,EAACF;IAC9B,IAAMG,KAAKX,SAAS;IAEpB,IAAMY,UAAU,EAAE;IAClB,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,wBAAa,CAACC,IAAI,CAACL,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACV,QAAQO,MAAMM,QAAQ,GAAG;QAC9BV,QAAQW,IAAI,CAACP;IACf,GACA;QAAEQ,aAAaC;IAAS,GACxB,SAACC;QACC,IAAIA,KAAK,OAAOnB,SAASmB;QAEzB,IAAMC,SAAS;YACbC,WAAWhB,QAAQiB,GAAG,CAAC,SAACb;uBAAUA,MAAMM,QAAQ;;YAChDhB,SAAS,wCACHE,SAASsB,eAAe,IAAI,CAAC;gBACjCC,QAAQ1B;gBACR2B,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;;YAEpBC,mBAAmB5B,SAASmB,MAAM,CAACU,UAAU;QAC/C;QACA,IAAQT,YAA0CD,OAA1CC,WAAWtB,YAA+BqB,OAA/BrB,SAAS8B,oBAAsBT,OAAtBS;QAC5B,IAAME,OAAO3B,GAAG4B,wBAAwB,CAACjC,WAAS,gBAAgB,GAAGkC,WAAW7B,GAAG8B,GAAG;QACtF,IAAMC,iBAAiB;YACrBC,WAAWf;YACXtB,SAAAA;YACA8B,mBAAAA;YACAE,MAAAA;YACAM,8BAA8BjC,GAAGkC,+BAA+B,CAAC;gBAAEjB,WAAAA;gBAAWtB,SAAAA;YAAQ;QACxF;QACA,IAAMwC,UAAUnC,GAAGoC,aAAa,CAACL;QACjC,IAAMM,MAAMF,QAAQG,IAAI;QACxB1C,SAAS,MAAMyC,IAAIE,YAAY;IACjC;AAEJ"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.js';\n\nexport default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\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 entries.push(entry);\n },\n { concurrency: Infinity },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n\n const compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...compilerOptions,\n outDir: dest,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["transformTypesWorker","_require","require","Module","createRequire","src","dest","options","callback","tsconfig","matcher","createMatcher","ts","entries","iterator","Iterator","forEach","entry","stats","isFile","basename","typeFileRegEx","test","fullPath","push","concurrency","Infinity","err","compilerOptions","convertCompilerOptionsFromJson","config","fileNames","map","outDir","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles"],"mappings":";;;;+BAWA;;;eAAwBA;;;iEAXa;6DAElB;yBAIW;oEACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAH1B,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAO3E,SAASF,qBAAqBK,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,UAAUC,IAAAA,sBAAa,EAACF;IAC9B,IAAMG,KAAKX,SAAS;IAEpB,IAAMY,UAAU,EAAE;IAClB,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,wBAAa,CAACC,IAAI,CAACL,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACV,QAAQO,MAAMM,QAAQ,GAAG;QAC9BV,QAAQW,IAAI,CAACP;IACf,GACA;QAAEQ,aAAaC;IAAS,GACxB,SAACC;QACC,IAAIA,KAAK;YACPnB,SAASmB;YACT;QACF;QAEA,IAAMC,kBAAkBhB,GAAGiB,8BAA8B,CAACpB,SAASqB,MAAM,CAACF,eAAe,EAAE;QAC3F,IAAME,SAAS;YACbC,WAAWlB,QAAQmB,GAAG,CAAC,SAACf;uBAAUA,MAAMM,QAAQ;;YAChDhB,SAAS,wCACJqB;gBACHK,QAAQ3B;gBACR4B,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;;YAEpBC,mBAAmB7B,SAASqB,MAAM,CAACS,UAAU;QAC/C;QACA,IAAQR,YAA0CD,OAA1CC,WAAWxB,YAA+BuB,OAA/BvB,SAAS+B,oBAAsBR,OAAtBQ;QAC5B,IAAME,OAAO5B,GAAG6B,wBAAwB,CAAClC,WAAS,gBAAgB,GAAGmC,WAAW9B,GAAG+B,GAAG;QACtF,IAAMC,iBAAiB;YACrBC,WAAWd;YACXxB,SAAAA;YACA+B,mBAAAA;YACAE,MAAAA;YACAM,8BAA8BlC,GAAGmC,+BAA+B,CAAC;gBAAEhB,WAAAA;gBAAWxB,SAAAA;YAAQ;QACxF;QACA,IAAMyC,UAAUpC,GAAGqC,aAAa,CAACL;QACjC,IAAMM,MAAMF,QAAQG,IAAI;QACxB3C,SAAS,MAAM0C,IAAIE,YAAY;IACjC;AAEJ"}
@@ -0,0 +1,3 @@
1
+ import type { Entry } from 'fs-iterator';
2
+ import type { ConfigOptionsInternal } from '../types.js';
3
+ export default function makeReplacements(entry: Entry, code: string, regex: RegExp, extensions: string[], extension: string, options: ConfigOptionsInternal): string;
@@ -0,0 +1,29 @@
1
+ import fs from 'fs';
2
+ import find from 'lodash.find';
3
+ import path from 'path';
4
+ import { moduleRegEx } from '../constants';
5
+ import parseSpecifiers from './parseSpecifiers';
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
+ }
@@ -0,0 +1 @@
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.js';\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"}
@@ -0,0 +1,5 @@
1
+ export interface Parsed {
2
+ content: string;
3
+ isSpecifier: boolean;
4
+ }
5
+ export default function parser(code: string, regex: RegExp): Parsed[];
@@ -0,0 +1,26 @@
1
+ export default function parser(code, regex) {
2
+ const parsed = [];
3
+ let offset = 0;
4
+ let match = regex.exec(code);
5
+ while(match){
6
+ const dependency = match[1] || match[2] || match[3] || match[4];
7
+ parsed.push({
8
+ content: code.substring(offset, match.index + match[0].lastIndexOf(dependency)),
9
+ isSpecifier: false
10
+ });
11
+ offset += parsed[parsed.length - 1].content.length;
12
+ parsed.push({
13
+ content: dependency,
14
+ isSpecifier: true
15
+ });
16
+ offset += parsed[parsed.length - 1].content.length;
17
+ match = regex.exec(code);
18
+ }
19
+ if (offset < code.length) {
20
+ parsed.push({
21
+ content: code.substring(offset, code.length),
22
+ isSpecifier: false
23
+ });
24
+ }
25
+ return parsed;
26
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/parseSpecifiers.ts"],"sourcesContent":["export interface Parsed {\n content: string;\n isSpecifier: boolean;\n}\n\nexport default function parser(code: string, regex: RegExp): Parsed[] {\n const parsed: Parsed[] = [];\n let offset = 0;\n let match = regex.exec(code);\n while (match) {\n const dependency = match[1] || match[2] || match[3] || match[4];\n parsed.push({ content: code.substring(offset, match.index + match[0].lastIndexOf(dependency)), isSpecifier: false });\n offset += parsed[parsed.length - 1].content.length;\n parsed.push({ content: dependency, isSpecifier: true });\n offset += parsed[parsed.length - 1].content.length;\n match = regex.exec(code);\n }\n\n if (offset < code.length) {\n parsed.push({ content: code.substring(offset, code.length), isSpecifier: false });\n }\n return parsed;\n}\n"],"names":["parser","code","regex","parsed","offset","match","exec","dependency","push","content","substring","index","lastIndexOf","isSpecifier","length"],"mappings":"AAKA,eAAe,SAASA,OAAOC,IAAY,EAAEC,KAAa;IACxD,MAAMC,SAAmB,EAAE;IAC3B,IAAIC,SAAS;IACb,IAAIC,QAAQH,MAAMI,IAAI,CAACL;IACvB,MAAOI,MAAO;QACZ,MAAME,aAAaF,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE;QAC/DF,OAAOK,IAAI,CAAC;YAAEC,SAASR,KAAKS,SAAS,CAACN,QAAQC,MAAMM,KAAK,GAAGN,KAAK,CAAC,EAAE,CAACO,WAAW,CAACL;YAAcM,aAAa;QAAM;QAClHT,UAAUD,MAAM,CAACA,OAAOW,MAAM,GAAG,EAAE,CAACL,OAAO,CAACK,MAAM;QAClDX,OAAOK,IAAI,CAAC;YAAEC,SAASF;YAAYM,aAAa;QAAK;QACrDT,UAAUD,MAAM,CAACA,OAAOW,MAAM,GAAG,EAAE,CAACL,OAAO,CAACK,MAAM;QAClDT,QAAQH,MAAMI,IAAI,CAACL;IACrB;IAEA,IAAIG,SAASH,KAAKa,MAAM,EAAE;QACxBX,OAAOK,IAAI,CAAC;YAAEC,SAASR,KAAKS,SAAS,CAACN,QAAQH,KAAKa,MAAM;YAAGD,aAAa;QAAM;IACjF;IACA,OAAOV;AACT"}
@@ -1,2 +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
- export default function patchCJS(entry: any, output: any, _options: any): any;
2
+ import type { Output } from '@swc/core';
3
+ import type { Entry } from 'fs-iterator';
4
+ import type { ConfigOptionsInternal } from '../types.js';
5
+ export default function patchCJS(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
@@ -1,12 +1,14 @@
1
- import path from 'path';
1
+ import { extensions, requireRegEx } from '../constants';
2
+ import makeReplacements from './makeReplacements';
2
3
  // https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125
3
4
  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; }";
4
- const EXTENSIONS = [
5
- '.ts',
6
- '.tsx'
7
- ];
8
- export default function patchCJS(entry, output, _options) {
5
+ const DEFAULT_EXTENSION = '.js';
6
+ export default function patchCJS(entry, output, options) {
7
+ const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;
8
+ const rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
9
+ if (rewrite) {
10
+ output.code = makeReplacements(entry, output.code, requireRegEx, extensions, cjsExtension, options);
11
+ }
9
12
  output.code += interop;
10
- const ext = path.extname(entry.basename);
11
- return EXTENSIONS.indexOf(ext) >= 0 ? '.js' : ext;
13
+ return cjsExtension;
12
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import path from 'path';\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\nconst EXTENSIONS = ['.ts', '.tsx'];\n\nexport default function patchCJS(entry, output, _options) {\n output.code += interop;\n const ext = path.extname(entry.basename);\n return EXTENSIONS.indexOf(ext) >= 0 ? '.js' : ext;\n}\n"],"names":["path","interop","EXTENSIONS","patchCJS","entry","output","_options","code","ext","extname","basename","indexOf"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAExB,0HAA0H;AAC1H,OAAO,MAAMC,UAAU,oQAAoQ;AAE3R,MAAMC,aAAa;IAAC;IAAO;CAAO;AAElC,eAAe,SAASC,SAASC,KAAK,EAAEC,MAAM,EAAEC,QAAQ;IACtDD,OAAOE,IAAI,IAAIN;IACf,MAAMO,MAAMR,KAAKS,OAAO,CAACL,MAAMM,QAAQ;IACvC,OAAOR,WAAWS,OAAO,CAACH,QAAQ,IAAI,QAAQA;AAChD"}
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.js';\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 +1,4 @@
1
- export default function patchESM(entry: any, _output: any, _options: any): any;
1
+ import type { Output } from '@swc/core';
2
+ import type { Entry } from 'fs-iterator';
3
+ import type { ConfigOptionsInternal } from '../types.js';
4
+ export default function patchESM(entry: Entry, output: Output, options: ConfigOptionsInternal): string;
@@ -1,9 +1,31 @@
1
1
  import path from 'path';
2
- const EXTENSIONS = [
3
- '.ts',
4
- '.tsx'
5
- ];
6
- export default function patchESM(entry, _output, _options) {
7
- const ext = path.extname(entry.basename);
8
- return EXTENSIONS.indexOf(ext) >= 0 ? '.js' : ext;
2
+ import { importRegEx } from '../constants';
3
+ import makeReplacements from './makeReplacements';
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';
19
+ 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
+ const rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
23
+ 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);
26
+ }
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
31
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchESM.ts"],"sourcesContent":["import path from 'path';\n\nconst EXTENSIONS = ['.ts', '.tsx'];\n\nexport default function patchESM(entry, _output, _options) {\n const ext = path.extname(entry.basename);\n return EXTENSIONS.indexOf(ext) >= 0 ? '.js' : ext;\n}\n"],"names":["path","EXTENSIONS","patchESM","entry","_output","_options","ext","extname","basename","indexOf"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAExB,MAAMC,aAAa;IAAC;IAAO;CAAO;AAElC,eAAe,SAASC,SAASC,KAAK,EAAEC,OAAO,EAAEC,QAAQ;IACvD,MAAMC,MAAMN,KAAKO,OAAO,CAACJ,MAAMK,QAAQ;IACvC,OAAOP,WAAWQ,OAAO,CAACH,QAAQ,IAAI,QAAQA;AAChD"}
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.js';\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,2 +1,7 @@
1
+ import type { Options } from '@swc/core';
1
2
  import type { TsConfigResult } from 'get-tsconfig-compat';
2
- export default function swcPrepareOptions(tsconfig: TsConfigResult): any;
3
+ export interface TranspilerOptions {
4
+ tsxOptions: Options;
5
+ nonTsxOptions: Options;
6
+ }
7
+ export default function swcPrepareOptions(tsconfig: TsConfigResult): TranspilerOptions;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import { installSync } from 'install-optional';\nimport Module from 'module';\nimport path from 'path';\nimport url from 'url';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function swcPrepareOptions(tsconfig: TsConfigResult) {\n installSync('@swc/core', `${process.platform}-${process.arch}`, { cwd: __dirname });\n try {\n const ts = _require('typescript');\n const swc = _require('@swc/core');\n const transpiler = _require('ts-node/transpilers/swc');\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n return transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc');\n } catch (err) {\n console.log(`swcPrepareOptions failed: ${err.message}`);\n return {};\n }\n}\n"],"names":["installSync","Module","path","url","_require","require","createRequire","__dirname","dirname","__filename","fileURLToPath","swcPrepareOptions","tsconfig","process","platform","arch","cwd","ts","swc","transpiler","parsed","parseJsonConfigFileContent","config","sys","createSwcOptions","options","undefined","err","console","log","message"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,MAAMC,WAAW,OAAOC,YAAY,cAAcJ,OAAOK,aAAa,CAAC,YAAYH,GAAG,IAAIE;AAC1F,MAAME,YAAYL,KAAKM,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaN,IAAIO,aAAa,CAAC,YAAYP,GAAG;AAGjH,eAAe,SAASQ,kBAAkBC,QAAwB;IAChEZ,YAAY,aAAa,GAAGa,QAAQC,QAAQ,CAAC,CAAC,EAAED,QAAQE,IAAI,EAAE,EAAE;QAAEC,KAAKT;IAAU;IACjF,IAAI;QACF,MAAMU,KAAKb,SAAS;QACpB,MAAMc,MAAMd,SAAS;QACrB,MAAMe,aAAaf,SAAS;QAC5B,MAAMgB,SAASH,GAAGI,0BAA0B,CAACT,SAASU,MAAM,EAAEL,GAAGM,GAAG,EAAErB,KAAKM,OAAO,CAACI,SAASV,IAAI;QAChG,OAAOiB,WAAWK,gBAAgB,CAACJ,OAAOK,OAAO,EAAEC,WAAWR,KAAK;IACrE,EAAE,OAAOS,KAAK;QACZC,QAAQC,GAAG,CAAC,CAAC,0BAA0B,EAAEF,IAAIG,OAAO,EAAE;QACtD,OAAO,CAAC;IACV;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/swcPrepareOptions.ts"],"sourcesContent":["import type { Options } from '@swc/core';\nimport { installSync } from 'install-optional';\nimport Module from 'module';\nimport path from 'path';\nimport url from 'url';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\n\nexport interface TranspilerOptions {\n tsxOptions: Options;\n nonTsxOptions: Options;\n}\n\nexport default function swcPrepareOptions(tsconfig: TsConfigResult): TranspilerOptions {\n installSync('@swc/core', `${process.platform}-${process.arch}`, { cwd: __dirname });\n try {\n const ts = _require('typescript');\n const swc = _require('@swc/core');\n const transpiler = _require('ts-node/transpilers/swc');\n const parsed = ts.parseJsonConfigFileContent(tsconfig.config, ts.sys, path.dirname(tsconfig.path));\n return transpiler.createSwcOptions(parsed.options, undefined, swc, 'swc');\n } catch (err) {\n console.log(`swcPrepareOptions failed: ${err.message}`);\n return {} as TranspilerOptions;\n }\n}\n"],"names":["installSync","Module","path","url","_require","require","createRequire","__dirname","dirname","__filename","fileURLToPath","swcPrepareOptions","tsconfig","process","platform","arch","cwd","ts","swc","transpiler","parsed","parseJsonConfigFileContent","config","sys","createSwcOptions","options","undefined","err","console","log","message"],"mappings":"AACA,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,MAAMC,WAAW,OAAOC,YAAY,cAAcJ,OAAOK,aAAa,CAAC,YAAYH,GAAG,IAAIE;AAC1F,MAAME,YAAYL,KAAKM,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaN,IAAIO,aAAa,CAAC,YAAYP,GAAG;AASjH,eAAe,SAASQ,kBAAkBC,QAAwB;IAChEZ,YAAY,aAAa,GAAGa,QAAQC,QAAQ,CAAC,CAAC,EAAED,QAAQE,IAAI,EAAE,EAAE;QAAEC,KAAKT;IAAU;IACjF,IAAI;QACF,MAAMU,KAAKb,SAAS;QACpB,MAAMc,MAAMd,SAAS;QACrB,MAAMe,aAAaf,SAAS;QAC5B,MAAMgB,SAASH,GAAGI,0BAA0B,CAACT,SAASU,MAAM,EAAEL,GAAGM,GAAG,EAAErB,KAAKM,OAAO,CAACI,SAASV,IAAI;QAChG,OAAOiB,WAAWK,gBAAgB,CAACJ,OAAOK,OAAO,EAAEC,WAAWR,KAAK;IACrE,EAAE,OAAOS,KAAK;QACZC,QAAQC,GAAG,CAAC,CAAC,0BAA0B,EAAEF,IAAIG,OAAO,EAAE;QACtD,OAAO,CAAC;IACV;AACF"}
@@ -1 +1,3 @@
1
- export default function transformFile(entry: any, dest: any, type: any, options: any, callback: any): void;
1
+ import type { Entry } from 'fs-iterator';
2
+ import type { ConfigOptionsInternal, TargetType, TransformFileCallback } from '../types.js';
3
+ export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptionsInternal, callback: TransformFileCallback): undefined;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/transformFile.ts"],"sourcesContent":["import fs from 'fs';\nimport mkdirp from 'mkdirp-classic';\nimport Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport patchCJS from '../lib/patchCJS.js';\nimport patchESM from '../lib/patchESM.js';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nexport default function transformFile(entry, dest, type, options, callback) {\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) => {\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":"AAAA,OAAOA,QAAQ,KAAK;AACpB,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;AAE1F,eAAe,SAASG,cAAcC,KAAK,EAAEC,IAAI,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACxE,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.js';\nimport patchESM from '../lib/patchESM.js';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { ConfigOptionsInternal, TargetType, TransformFileCallback } from '../types.js';\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 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/loadTsConfig.ts"],"sourcesContent":["import * as getTS from 'get-tsconfig-compat';\nimport type { ConfigOptions } from './types.js';\n\nexport default function loadTsConfig(options: ConfigOptions, name: string) {\n let tsconfig = options.tsconfig;\n if (!tsconfig) tsconfig = getTS.getTsconfig(options.cwd || process.cwd());\n\n if (typeof tsconfig !== 'object') throw new Error(`${name}: missing valid tsconfig`);\n if (tsconfig.path === undefined) throw new Error(`${name}: expecting tsconfig.path`);\n if (tsconfig.config === undefined) throw new Error(`${name}: expecting tsconfig.config`);\n return tsconfig;\n}\n"],"names":["getTS","loadTsConfig","options","name","tsconfig","getTsconfig","cwd","process","Error","path","undefined","config"],"mappings":"AAAA,YAAYA,WAAW,sBAAsB;AAG7C,eAAe,SAASC,aAAaC,OAAsB,EAAEC,IAAY;IACvE,IAAIC,WAAWF,QAAQE,QAAQ;IAC/B,IAAI,CAACA,UAAUA,WAAWJ,MAAMK,WAAW,CAACH,QAAQI,GAAG,IAAIC,QAAQD,GAAG;IAEtE,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAII,MAAM,GAAGL,KAAK,wBAAwB,CAAC;IACnF,IAAIC,SAASK,IAAI,KAAKC,WAAW,MAAM,IAAIF,MAAM,GAAGL,KAAK,yBAAyB,CAAC;IACnF,IAAIC,SAASO,MAAM,KAAKD,WAAW,MAAM,IAAIF,MAAM,GAAGL,KAAK,2BAA2B,CAAC;IACvF,OAAOC;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/loadTsConfig.ts"],"sourcesContent":["import * as getTS from 'get-tsconfig-compat';\nimport type { ConfigOptions } from './types.js';\n\nexport default function loadTsConfig(options: ConfigOptions, name: string): getTS.TsConfigResult {\n let tsconfig = options.tsconfig;\n if (!tsconfig) tsconfig = getTS.getTsconfig(options.cwd || process.cwd());\n\n if (typeof tsconfig !== 'object') throw new Error(`${name}: missing valid tsconfig`);\n if (tsconfig.path === undefined) throw new Error(`${name}: expecting tsconfig.path`);\n if (tsconfig.config === undefined) throw new Error(`${name}: expecting tsconfig.config`);\n return tsconfig;\n}\n"],"names":["getTS","loadTsConfig","options","name","tsconfig","getTsconfig","cwd","process","Error","path","undefined","config"],"mappings":"AAAA,YAAYA,WAAW,sBAAsB;AAG7C,eAAe,SAASC,aAAaC,OAAsB,EAAEC,IAAY;IACvE,IAAIC,WAAWF,QAAQE,QAAQ;IAC/B,IAAI,CAACA,UAAUA,WAAWJ,MAAMK,WAAW,CAACH,QAAQI,GAAG,IAAIC,QAAQD,GAAG;IAEtE,IAAI,OAAOF,aAAa,UAAU,MAAM,IAAII,MAAM,GAAGL,KAAK,wBAAwB,CAAC;IACnF,IAAIC,SAASK,IAAI,KAAKC,WAAW,MAAM,IAAIF,MAAM,GAAGL,KAAK,yBAAyB,CAAC;IACnF,IAAIC,SAASO,MAAM,KAAKD,WAAW,MAAM,IAAIF,MAAM,GAAGL,KAAK,2BAA2B,CAAC;IACvF,OAAOC;AACT"}
@@ -1,2 +1,2 @@
1
1
  import type { Context } from './types.js';
2
- export default function resolveFileSync(specifier: string, context?: Context): any;
2
+ export default function resolveFileSync(specifier: string, context?: Context): string;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/resolveFileSync.ts"],"sourcesContent":["import fs from 'fs';\nimport find from 'lodash.find';\nimport path from 'path';\nimport { extensions, moduleRegEx, typeFileRegEx } from './constants.js';\nimport toPath from './toPath.js';\nimport type { Context } from './types.js';\n\nconst indexExtensions = extensions.map((x) => `index${x}`);\n\nexport default function resolveFileSync(specifier: string, context?: Context) {\n const filePath = toPath(specifier, context);\n let stat: fs.Stats;\n try {\n stat = fs.statSync(filePath);\n } catch (_err) {}\n try {\n if ((stat && stat.isDirectory()) || specifier.endsWith('/')) {\n const items = fs.readdirSync(filePath);\n const item = find(items, (x) => indexExtensions.indexOf(x) >= 0);\n if (item) return path.join(filePath, item);\n } else if (!stat && !moduleRegEx.test(specifier)) {\n const ext = path.extname(filePath);\n const basename = ext ? path.basename(filePath).slice(0, -ext.length) : path.basename(filePath);\n const items = fs.readdirSync(path.dirname(filePath));\n const item = find(items, (x) => {\n if (typeFileRegEx.test(x)) return false;\n const extTest = path.extname(x);\n const basenameTest = extTest ? path.basename(x).slice(0, -extTest.length) : path.basename(x);\n return basename === basenameTest;\n });\n if (item) return path.join(path.dirname(filePath), item);\n }\n // return what was found\n return stat ? filePath : null;\n } catch (_err) {\n return null;\n }\n}\n"],"names":["fs","find","path","extensions","moduleRegEx","typeFileRegEx","toPath","indexExtensions","map","x","resolveFileSync","specifier","context","filePath","stat","statSync","_err","isDirectory","endsWith","items","readdirSync","item","indexOf","join","test","ext","extname","basename","slice","length","dirname","extTest","basenameTest"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,cAAc;AAC/B,OAAOC,UAAU,OAAO;AACxB,SAASC,UAAU,EAAEC,WAAW,EAAEC,aAAa,QAAQ,iBAAiB;AACxE,OAAOC,YAAY,cAAc;AAGjC,MAAMC,kBAAkBJ,WAAWK,GAAG,CAAC,CAACC,IAAM,CAAC,KAAK,EAAEA,GAAG;AAEzD,eAAe,SAASC,gBAAgBC,SAAiB,EAAEC,OAAiB;IAC1E,MAAMC,WAAWP,OAAOK,WAAWC;IACnC,IAAIE;IACJ,IAAI;QACFA,OAAOd,GAAGe,QAAQ,CAACF;IACrB,EAAE,OAAOG,MAAM,CAAC;IAChB,IAAI;QACF,IAAI,AAACF,QAAQA,KAAKG,WAAW,MAAON,UAAUO,QAAQ,CAAC,MAAM;YAC3D,MAAMC,QAAQnB,GAAGoB,WAAW,CAACP;YAC7B,MAAMQ,OAAOpB,KAAKkB,OAAO,CAACV,IAAMF,gBAAgBe,OAAO,CAACb,MAAM;YAC9D,IAAIY,MAAM,OAAOnB,KAAKqB,IAAI,CAACV,UAAUQ;QACvC,OAAO,IAAI,CAACP,QAAQ,CAACV,YAAYoB,IAAI,CAACb,YAAY;YAChD,MAAMc,MAAMvB,KAAKwB,OAAO,CAACb;YACzB,MAAMc,WAAWF,MAAMvB,KAAKyB,QAAQ,CAACd,UAAUe,KAAK,CAAC,GAAG,CAACH,IAAII,MAAM,IAAI3B,KAAKyB,QAAQ,CAACd;YACrF,MAAMM,QAAQnB,GAAGoB,WAAW,CAAClB,KAAK4B,OAAO,CAACjB;YAC1C,MAAMQ,OAAOpB,KAAKkB,OAAO,CAACV;gBACxB,IAAIJ,cAAcmB,IAAI,CAACf,IAAI,OAAO;gBAClC,MAAMsB,UAAU7B,KAAKwB,OAAO,CAACjB;gBAC7B,MAAMuB,eAAeD,UAAU7B,KAAKyB,QAAQ,CAAClB,GAAGmB,KAAK,CAAC,GAAG,CAACG,QAAQF,MAAM,IAAI3B,KAAKyB,QAAQ,CAAClB;gBAC1F,OAAOkB,aAAaK;YACtB;YACA,IAAIX,MAAM,OAAOnB,KAAKqB,IAAI,CAACrB,KAAK4B,OAAO,CAACjB,WAAWQ;QACrD;QACA,wBAAwB;QACxB,OAAOP,OAAOD,WAAW;IAC3B,EAAE,OAAOG,MAAM;QACb,OAAO;IACT;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/resolveFileSync.ts"],"sourcesContent":["import fs from 'fs';\nimport find from 'lodash.find';\nimport path from 'path';\nimport { extensions, moduleRegEx, typeFileRegEx } from './constants.js';\nimport toPath from './toPath.js';\nimport type { Context } from './types.js';\n\nconst indexExtensions = extensions.map((x) => `index${x}`);\n\nexport default function resolveFileSync(specifier: string, context?: Context): string {\n const filePath = toPath(specifier, context);\n let stat: fs.Stats;\n try {\n stat = fs.statSync(filePath);\n } catch (_err) {}\n try {\n if ((stat && stat.isDirectory()) || specifier.endsWith('/')) {\n const items = fs.readdirSync(filePath);\n const item = find(items, (x) => indexExtensions.indexOf(x) >= 0);\n if (item) return path.join(filePath, item);\n } else if (!stat && !moduleRegEx.test(specifier)) {\n const ext = path.extname(filePath);\n const basename = ext ? path.basename(filePath).slice(0, -ext.length) : path.basename(filePath);\n const items = fs.readdirSync(path.dirname(filePath));\n const item = find(items, (x) => {\n if (typeFileRegEx.test(x)) return false;\n const extTest = path.extname(x);\n const basenameTest = extTest ? path.basename(x).slice(0, -extTest.length) : path.basename(x);\n return basename === basenameTest;\n });\n if (item) return path.join(path.dirname(filePath), item);\n }\n // return what was found\n return stat ? filePath : null;\n } catch (_err) {\n return null;\n }\n}\n"],"names":["fs","find","path","extensions","moduleRegEx","typeFileRegEx","toPath","indexExtensions","map","x","resolveFileSync","specifier","context","filePath","stat","statSync","_err","isDirectory","endsWith","items","readdirSync","item","indexOf","join","test","ext","extname","basename","slice","length","dirname","extTest","basenameTest"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,cAAc;AAC/B,OAAOC,UAAU,OAAO;AACxB,SAASC,UAAU,EAAEC,WAAW,EAAEC,aAAa,QAAQ,iBAAiB;AACxE,OAAOC,YAAY,cAAc;AAGjC,MAAMC,kBAAkBJ,WAAWK,GAAG,CAAC,CAACC,IAAM,CAAC,KAAK,EAAEA,GAAG;AAEzD,eAAe,SAASC,gBAAgBC,SAAiB,EAAEC,OAAiB;IAC1E,MAAMC,WAAWP,OAAOK,WAAWC;IACnC,IAAIE;IACJ,IAAI;QACFA,OAAOd,GAAGe,QAAQ,CAACF;IACrB,EAAE,OAAOG,MAAM,CAAC;IAChB,IAAI;QACF,IAAI,AAACF,QAAQA,KAAKG,WAAW,MAAON,UAAUO,QAAQ,CAAC,MAAM;YAC3D,MAAMC,QAAQnB,GAAGoB,WAAW,CAACP;YAC7B,MAAMQ,OAAOpB,KAAKkB,OAAO,CAACV,IAAMF,gBAAgBe,OAAO,CAACb,MAAM;YAC9D,IAAIY,MAAM,OAAOnB,KAAKqB,IAAI,CAACV,UAAUQ;QACvC,OAAO,IAAI,CAACP,QAAQ,CAACV,YAAYoB,IAAI,CAACb,YAAY;YAChD,MAAMc,MAAMvB,KAAKwB,OAAO,CAACb;YACzB,MAAMc,WAAWF,MAAMvB,KAAKyB,QAAQ,CAACd,UAAUe,KAAK,CAAC,GAAG,CAACH,IAAII,MAAM,IAAI3B,KAAKyB,QAAQ,CAACd;YACrF,MAAMM,QAAQnB,GAAGoB,WAAW,CAAClB,KAAK4B,OAAO,CAACjB;YAC1C,MAAMQ,OAAOpB,KAAKkB,OAAO,CAACV;gBACxB,IAAIJ,cAAcmB,IAAI,CAACf,IAAI,OAAO;gBAClC,MAAMsB,UAAU7B,KAAKwB,OAAO,CAACjB;gBAC7B,MAAMuB,eAAeD,UAAU7B,KAAKyB,QAAQ,CAAClB,GAAGmB,KAAK,CAAC,GAAG,CAACG,QAAQF,MAAM,IAAI3B,KAAKyB,QAAQ,CAAClB;gBAC1F,OAAOkB,aAAaK;YACtB;YACA,IAAIX,MAAM,OAAOnB,KAAKqB,IAAI,CAACrB,KAAK4B,OAAO,CAACjB,WAAWQ;QACrD;QACA,wBAAwB;QACxB,OAAOP,OAAOD,WAAW;IAC3B,EAAE,OAAOG,MAAM;QACb,OAAO;IACT;AACF"}
@@ -1,2 +1,2 @@
1
1
  import type { Context } from './types.js';
2
- export default function toPath(specifier: string, context?: Context): any;
2
+ export default function toPath(specifier: string, context?: Context): string;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/toPath.ts"],"sourcesContent":["import isAbsolute from 'is-absolute';\nimport module from 'module';\nimport path from 'path';\nimport resolveCJS from 'resolve';\nimport url from 'url';\n// @ts-ignore\nimport { resolve as resolveESM } from '../../assets/import-meta-resolve.cjs';\nimport { moduleRegEx } from './constants.js';\nimport * as urlPolyfills from './lib/url-file-url.js';\nimport type { Context } from './types.js';\n\nconst useCJS = !module.createRequire;\nconst fileURLToPath = url.fileURLToPath || urlPolyfills.fileURLToPath;\nconst pathToFileURL = url.pathToFileURL || urlPolyfills.pathToFileURL;\n\nfunction getParentPath(context: Context) {\n if (context.parentPath) return path.dirname(context.parentPath);\n return context.parentURL ? path.dirname(toPath(context.parentURL)) : process.cwd();\n}\n\nexport default function toPath(specifier: string, context?: Context) {\n if (specifier.startsWith('file:')) return fileURLToPath(specifier);\n if (isAbsolute(specifier)) return specifier;\n if (specifier[0] === '.') {\n const parentPath = context ? getParentPath(context) : process.cwd();\n return path.join(parentPath, specifier);\n }\n if (moduleRegEx.test(specifier)) {\n const parentPath = context ? getParentPath(context) : process.cwd();\n if (!useCJS) {\n try {\n const entryURL = resolveESM(specifier, pathToFileURL(parentPath));\n if (entryURL) return fileURLToPath(entryURL);\n } catch (_) {\n /* it may fail due to commonjs edge cases */\n }\n }\n const entryPath = resolveCJS.sync(specifier, {\n basedir: parentPath,\n extensions: ['.js', '.json', '.node', '.mjs'],\n });\n if (entryPath) return entryPath;\n }\n\n return specifier;\n}\n"],"names":["isAbsolute","module","path","resolveCJS","url","resolve","resolveESM","moduleRegEx","urlPolyfills","useCJS","createRequire","fileURLToPath","pathToFileURL","getParentPath","context","parentPath","dirname","parentURL","toPath","process","cwd","specifier","startsWith","join","test","entryURL","_","entryPath","sync","basedir","extensions"],"mappings":"AAAA,OAAOA,gBAAgB,cAAc;AACrC,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,gBAAgB,UAAU;AACjC,OAAOC,SAAS,MAAM;AACtB,aAAa;AACb,SAASC,WAAWC,UAAU,QAAQ,uCAAuC;AAC7E,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,YAAYC,kBAAkB,wBAAwB;AAGtD,MAAMC,SAAS,CAACR,OAAOS,aAAa;AACpC,MAAMC,gBAAgBP,IAAIO,aAAa,IAAIH,aAAaG,aAAa;AACrE,MAAMC,gBAAgBR,IAAIQ,aAAa,IAAIJ,aAAaI,aAAa;AAErE,SAASC,cAAcC,OAAgB;IACrC,IAAIA,QAAQC,UAAU,EAAE,OAAOb,KAAKc,OAAO,CAACF,QAAQC,UAAU;IAC9D,OAAOD,QAAQG,SAAS,GAAGf,KAAKc,OAAO,CAACE,OAAOJ,QAAQG,SAAS,KAAKE,QAAQC,GAAG;AAClF;AAEA,eAAe,SAASF,OAAOG,SAAiB,EAAEP,OAAiB;IACjE,IAAIO,UAAUC,UAAU,CAAC,UAAU,OAAOX,cAAcU;IACxD,IAAIrB,WAAWqB,YAAY,OAAOA;IAClC,IAAIA,SAAS,CAAC,EAAE,KAAK,KAAK;QACxB,MAAMN,aAAaD,UAAUD,cAAcC,WAAWK,QAAQC,GAAG;QACjE,OAAOlB,KAAKqB,IAAI,CAACR,YAAYM;IAC/B;IACA,IAAId,YAAYiB,IAAI,CAACH,YAAY;QAC/B,MAAMN,aAAaD,UAAUD,cAAcC,WAAWK,QAAQC,GAAG;QACjE,IAAI,CAACX,QAAQ;YACX,IAAI;gBACF,MAAMgB,WAAWnB,WAAWe,WAAWT,cAAcG;gBACrD,IAAIU,UAAU,OAAOd,cAAcc;YACrC,EAAE,OAAOC,GAAG;YACV,0CAA0C,GAC5C;QACF;QACA,MAAMC,YAAYxB,WAAWyB,IAAI,CAACP,WAAW;YAC3CQ,SAASd;YACTe,YAAY;gBAAC;gBAAO;gBAAS;gBAAS;aAAO;QAC/C;QACA,IAAIH,WAAW,OAAOA;IACxB;IAEA,OAAON;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/toPath.ts"],"sourcesContent":["import isAbsolute from 'is-absolute';\nimport module from 'module';\nimport path from 'path';\nimport resolveCJS from 'resolve';\nimport url from 'url';\n// @ts-ignore\nimport { resolve as resolveESM } from '../../assets/import-meta-resolve.cjs';\nimport { moduleRegEx } from './constants.js';\nimport * as urlPolyfills from './lib/url-file-url.js';\nimport type { Context } from './types.js';\n\nconst useCJS = !module.createRequire;\nconst fileURLToPath = url.fileURLToPath || urlPolyfills.fileURLToPath;\nconst pathToFileURL = url.pathToFileURL || urlPolyfills.pathToFileURL;\n\nfunction getParentPath(context: Context): string {\n if (context.parentPath) return path.dirname(context.parentPath);\n return context.parentURL ? path.dirname(toPath(context.parentURL)) : process.cwd();\n}\n\nexport default function toPath(specifier: string, context?: Context): string {\n if (specifier.startsWith('file:')) return fileURLToPath(specifier);\n if (isAbsolute(specifier)) return specifier;\n if (specifier[0] === '.') {\n const parentPath = context ? getParentPath(context) : process.cwd();\n return path.join(parentPath, specifier);\n }\n if (moduleRegEx.test(specifier)) {\n const parentPath = context ? getParentPath(context) : process.cwd();\n if (!useCJS) {\n try {\n const entryURL = resolveESM(specifier, pathToFileURL(parentPath));\n if (entryURL) return fileURLToPath(entryURL);\n } catch (_) {\n /* it may fail due to commonjs edge cases */\n }\n }\n const entryPath = resolveCJS.sync(specifier, {\n basedir: parentPath,\n extensions: ['.js', '.json', '.node', '.mjs'],\n });\n if (entryPath) return entryPath;\n }\n\n return specifier;\n}\n"],"names":["isAbsolute","module","path","resolveCJS","url","resolve","resolveESM","moduleRegEx","urlPolyfills","useCJS","createRequire","fileURLToPath","pathToFileURL","getParentPath","context","parentPath","dirname","parentURL","toPath","process","cwd","specifier","startsWith","join","test","entryURL","_","entryPath","sync","basedir","extensions"],"mappings":"AAAA,OAAOA,gBAAgB,cAAc;AACrC,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,gBAAgB,UAAU;AACjC,OAAOC,SAAS,MAAM;AACtB,aAAa;AACb,SAASC,WAAWC,UAAU,QAAQ,uCAAuC;AAC7E,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,YAAYC,kBAAkB,wBAAwB;AAGtD,MAAMC,SAAS,CAACR,OAAOS,aAAa;AACpC,MAAMC,gBAAgBP,IAAIO,aAAa,IAAIH,aAAaG,aAAa;AACrE,MAAMC,gBAAgBR,IAAIQ,aAAa,IAAIJ,aAAaI,aAAa;AAErE,SAASC,cAAcC,OAAgB;IACrC,IAAIA,QAAQC,UAAU,EAAE,OAAOb,KAAKc,OAAO,CAACF,QAAQC,UAAU;IAC9D,OAAOD,QAAQG,SAAS,GAAGf,KAAKc,OAAO,CAACE,OAAOJ,QAAQG,SAAS,KAAKE,QAAQC,GAAG;AAClF;AAEA,eAAe,SAASF,OAAOG,SAAiB,EAAEP,OAAiB;IACjE,IAAIO,UAAUC,UAAU,CAAC,UAAU,OAAOX,cAAcU;IACxD,IAAIrB,WAAWqB,YAAY,OAAOA;IAClC,IAAIA,SAAS,CAAC,EAAE,KAAK,KAAK;QACxB,MAAMN,aAAaD,UAAUD,cAAcC,WAAWK,QAAQC,GAAG;QACjE,OAAOlB,KAAKqB,IAAI,CAACR,YAAYM;IAC/B;IACA,IAAId,YAAYiB,IAAI,CAACH,YAAY;QAC/B,MAAMN,aAAaD,UAAUD,cAAcC,WAAWK,QAAQC,GAAG;QACjE,IAAI,CAACX,QAAQ;YACX,IAAI;gBACF,MAAMgB,WAAWnB,WAAWe,WAAWT,cAAcG;gBACrD,IAAIU,UAAU,OAAOd,cAAcc;YACrC,EAAE,OAAOC,GAAG;YACV,0CAA0C,GAC5C;QACF;QACA,MAAMC,YAAYxB,WAAWyB,IAAI,CAACP,WAAW;YAC3CQ,SAASd;YACTe,YAAY;gBAAC;gBAAO;gBAAS;gBAAS;aAAO;QAC/C;QACA,IAAIH,WAAW,OAAOA;IACxB;IAEA,OAAON;AACT"}
@@ -1,2 +1,2 @@
1
- import type { ConfigOptions, TransformDirectoryCallback } from './types.js';
2
- export default function transformDirectory(src: string, dest: string, type: string, options?: ConfigOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<string[]>;
1
+ import type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.js';
2
+ export default function transformDirectory(src: string, dest: string, type: TargetType, options?: ConfigOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<string[]>;
@@ -37,7 +37,9 @@ export default function transformDirectory(src, dest, type, options, callback) {
37
37
  ...options
38
38
  };
39
39
  if (typeof callback === 'function') return dispatch(version, src, dest, type, options, callback);
40
- return new Promise((resolve, reject)=>dispatch(version, src, dest, type, options, (err, result)=>err ? reject(err) : resolve(result)));
40
+ return new Promise((resolve, reject)=>dispatch(version, src, dest, type, options, (err, result)=>{
41
+ err ? reject(err) : resolve(result);
42
+ }));
41
43
  } catch (err) {
42
44
  if (callback) callback(err);
43
45
  else return Promise.reject(err);
@@ -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 loadTsConfig from './loadTsConfig.js';\n\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 workerPath = path.join(__dirname, '..', 'cjs', 'workers', 'transformDirectory.js');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nfunction dispatch(version, src, dest, type, options, callback) {\n if (version === 'local') return _require(workerPath)(src, dest, type, options, callback);\n try {\n callback(null, _require('node-version-call')({ version, callbacks: true }, workerPath, src, dest, type, options));\n } catch (err) {\n callback(err);\n }\n}\n\nimport type { ConfigOptions, TransformDirectoryCallback } from './types.js';\nexport default function transformDirectory(src: string, dest: string, type: string, options?: ConfigOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<string[]> {\n try {\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 options === 'function') {\n callback = options as TransformDirectoryCallback;\n options = null;\n }\n options = options || {};\n const tsconfig = loadTsConfig({ cwd: src, ...options }, 'transformDirectory');\n options = { tsconfig, ...options };\n\n if (typeof callback === 'function') return dispatch(version, src, dest, type, options, callback) as undefined;\n return new Promise((resolve, reject) => dispatch(version, src, dest, type, options, (err, result) => (err ? reject(err) : resolve(result))));\n } catch (err) {\n if (callback) callback(err);\n else return Promise.reject(err);\n }\n}\n"],"names":["path","url","loadTsConfig","major","process","versions","node","split","version","__dirname","dirname","__filename","fileURLToPath","workerPath","join","Module","_require","require","createRequire","dispatch","src","dest","type","options","callback","callbacks","err","transformDirectory","Error","tsconfig","cwd","Promise","resolve","reject","result"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,kBAAkB,oBAAoB;AAE7C,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,aAAab,KAAKc,IAAI,CAACL,WAAW,MAAM,OAAO,WAAW;AAEhE,OAAOM,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYjB,GAAG,IAAIgB;AAE1F,SAASE,SAASX,OAAO,EAAEY,GAAG,EAAEC,IAAI,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC3D,IAAIhB,YAAY,SAAS,OAAOQ,SAASH,YAAYO,KAAKC,MAAMC,MAAMC,SAASC;IAC/E,IAAI;QACFA,SAAS,MAAMR,SAAS,qBAAqB;YAAER;YAASiB,WAAW;QAAK,GAAGZ,YAAYO,KAAKC,MAAMC,MAAMC;IAC1G,EAAE,OAAOG,KAAK;QACZF,SAASE;IACX;AACF;AAGA,eAAe,SAASC,mBAAmBP,GAAW,EAAEC,IAAY,EAAEC,IAAY,EAAEC,OAAoD,EAAEC,QAAqC;IAC7K,IAAI;QACF,IAAI,OAAOJ,QAAQ,UAAU,MAAM,IAAIQ,MAAM;QAC7C,IAAI,OAAOP,SAAS,UAAU,MAAM,IAAIO,MAAM;QAC9C,IAAI,OAAON,SAAS,UAAU,MAAM,IAAIM,MAAM;QAE9C,IAAI,OAAOL,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QACAA,UAAUA,WAAW,CAAC;QACtB,MAAMM,WAAW3B,aAAa;YAAE4B,KAAKV;YAAK,GAAGG,OAAO;QAAC,GAAG;QACxDA,UAAU;YAAEM;YAAU,GAAGN,OAAO;QAAC;QAEjC,IAAI,OAAOC,aAAa,YAAY,OAAOL,SAASX,SAASY,KAAKC,MAAMC,MAAMC,SAASC;QACvF,OAAO,IAAIO,QAAQ,CAACC,SAASC,SAAWd,SAASX,SAASY,KAAKC,MAAMC,MAAMC,SAAS,CAACG,KAAKQ,SAAYR,MAAMO,OAAOP,OAAOM,QAAQE;IACpI,EAAE,OAAOR,KAAK;QACZ,IAAIF,UAAUA,SAASE;aAClB,OAAOK,QAAQE,MAAM,CAACP;IAC7B;AACF"}
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 loadTsConfig from './loadTsConfig.js';\n\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 workerPath = path.join(__dirname, '..', 'cjs', 'workers', 'transformDirectory.js');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.js';\n\nfunction dispatch(version: string, src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined {\n if (version === 'local') return _require(workerPath)(src, dest, type, options, callback);\n try {\n callback(null, _require('node-version-call')({ version, callbacks: true }, workerPath, src, dest, type, options));\n } catch (err) {\n callback(err);\n }\n}\n\nexport default function transformDirectory(src: string, dest: string, type: TargetType, options?: ConfigOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<string[]> {\n try {\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 options === 'function') {\n callback = options as TransformDirectoryCallback;\n options = null;\n }\n options = options || {};\n const tsconfig = loadTsConfig({ cwd: src, ...options }, 'transformDirectory');\n options = { tsconfig, ...options };\n\n if (typeof callback === 'function') return dispatch(version, src, dest, type, options, callback) as undefined;\n return new Promise((resolve, reject) =>\n dispatch(version, src, dest, type, options as ConfigOptions, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n } catch (err) {\n if (callback) callback(err);\n else return Promise.reject(err);\n }\n}\n"],"names":["path","url","loadTsConfig","major","process","versions","node","split","version","__dirname","dirname","__filename","fileURLToPath","workerPath","join","Module","_require","require","createRequire","dispatch","src","dest","type","options","callback","callbacks","err","transformDirectory","Error","tsconfig","cwd","Promise","resolve","reject","result"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,kBAAkB,oBAAoB;AAE7C,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,aAAab,KAAKc,IAAI,CAACL,WAAW,MAAM,OAAO,WAAW;AAEhE,OAAOM,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYjB,GAAG,IAAIgB;AAI1F,SAASE,SAASX,OAAe,EAAEY,GAAW,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAsB,EAAEC,QAAoC;IAC1I,IAAIhB,YAAY,SAAS,OAAOQ,SAASH,YAAYO,KAAKC,MAAMC,MAAMC,SAASC;IAC/E,IAAI;QACFA,SAAS,MAAMR,SAAS,qBAAqB;YAAER;YAASiB,WAAW;QAAK,GAAGZ,YAAYO,KAAKC,MAAMC,MAAMC;IAC1G,EAAE,OAAOG,KAAK;QACZF,SAASE;IACX;AACF;AAEA,eAAe,SAASC,mBAAmBP,GAAW,EAAEC,IAAY,EAAEC,IAAgB,EAAEC,OAAoD,EAAEC,QAAqC;IACjL,IAAI;QACF,IAAI,OAAOJ,QAAQ,UAAU,MAAM,IAAIQ,MAAM;QAC7C,IAAI,OAAOP,SAAS,UAAU,MAAM,IAAIO,MAAM;QAC9C,IAAI,OAAON,SAAS,UAAU,MAAM,IAAIM,MAAM;QAE9C,IAAI,OAAOL,YAAY,YAAY;YACjCC,WAAWD;YACXA,UAAU;QACZ;QACAA,UAAUA,WAAW,CAAC;QACtB,MAAMM,WAAW3B,aAAa;YAAE4B,KAAKV;YAAK,GAAGG,OAAO;QAAC,GAAG;QACxDA,UAAU;YAAEM;YAAU,GAAGN,OAAO;QAAC;QAEjC,IAAI,OAAOC,aAAa,YAAY,OAAOL,SAASX,SAASY,KAAKC,MAAMC,MAAMC,SAASC;QACvF,OAAO,IAAIO,QAAQ,CAACC,SAASC,SAC3Bd,SAASX,SAASY,KAAKC,MAAMC,MAAMC,SAA0B,CAACG,KAAKQ;gBACjER,MAAMO,OAAOP,OAAOM,QAAQE;YAC9B;IAEJ,EAAE,OAAOR,KAAK;QACZ,IAAIF,UAAUA,SAASE;aAClB,OAAOK,QAAQE,MAAM,CAACP;IAC7B;AACF"}
@@ -3,11 +3,21 @@ 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
+ }
6
10
  export interface ConfigOptions {
7
11
  tsconfig?: TsConfigResult;
8
12
  cwd?: string;
13
+ sourceMaps?: boolean;
14
+ extensions?: Extensions;
15
+ }
16
+ export interface ConfigOptionsInternal extends ConfigOptions {
17
+ src: string;
9
18
  }
10
19
  export type TransformDirectoryCallback = (err?: Error, filePaths?: string[]) => void;
11
20
  export type TransformFileCallback = (err?: Error, destFilePath?: string) => void;
12
21
  export type TransformTypesCallback = (err?: Error, filePaths?: string[]) => void;
13
22
  export type Matcher = (filePath: string) => boolean;
23
+ export type TargetType = 'cjs' | 'esm';
@@ -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 ConfigOptions {\n tsconfig?: TsConfigResult;\n cwd?: 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"],"names":[],"mappings":"AAeA,WAAoD"}
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 +1,2 @@
1
- export default function transformDirectoryWorker(src: any, dest: any, type: any, options: any, callback: any): void;
1
+ import type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.js';
2
+ export default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined;
@@ -18,7 +18,10 @@ export default function transformDirectoryWorker(src, dest, type, options, callb
18
18
  if (ext && extensions.indexOf(ext) < 0) return;
19
19
  entries.push(entry);
20
20
  }, (err)=>{
21
- if (err) return callback(err);
21
+ if (err) {
22
+ callback(err);
23
+ return;
24
+ }
22
25
  const results = [];
23
26
  options = {
24
27
  ...options,
@@ -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.js';\nimport createMatcher from '../createMatcher.js';\nimport transformFile from '../lib/transformFile.js';\n\nexport default function transformDirectoryWorker(src, dest, type, options, callback) {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n\n const entries = [];\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) => {\n if (err) return callback(err);\n const results = [];\n options = { ...options, tsconfig, src, dest };\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;AAEpD,eAAe,SAASC,yBAAyBC,GAAG,EAAEC,IAAI,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACjF,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUT,cAAcQ;IAE9B,MAAME,UAAU,EAAE;IAClB,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,OAAOhB,SAASgB;QACzB,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,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"}
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.js';\nimport createMatcher from '../createMatcher.js';\nimport transformFile from '../lib/transformFile.js';\n\nimport type { ConfigOptions, ConfigOptionsInternal, TargetType, TransformDirectoryCallback } from '../types.js';\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,2 +1,3 @@
1
+ import type { Output } from '@swc/core';
1
2
  import type { TsConfigResult } from 'get-tsconfig-compat';
2
- export default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult): any;
3
+ export default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult): Output;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformSync.ts"],"sourcesContent":["import Module from 'module';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult) {\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = _require('@swc/core');\n return swc.transformSync(contents, {\n ...(fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: fileName,\n });\n}\n"],"names":["Module","swcPrepareOptions","_require","require","createRequire","url","transformSyncWorker","contents","fileName","tsconfig","swcOptions","swc","transformSync","endsWith","tsxOptions","nonTsxOptions","filename"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,uBAAuB,8BAA8B;AAE5D,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAG1F,eAAe,SAASG,oBAAoBC,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB;IACtG,MAAMC,aAAaT,kBAAkBQ;IACrC,MAAME,MAAMT,SAAS;IACrB,OAAOS,IAAIC,aAAa,CAACL,UAAU;QACjC,GAAIC,SAASK,QAAQ,CAAC,WAAWL,SAASK,QAAQ,CAAC,UAAUH,WAAWI,UAAU,GAAGJ,WAAWK,aAAa;QAC7GC,UAAUR;IACZ;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformSync.ts"],"sourcesContent":["import type { Output } from '@swc/core';\nimport Module from 'module';\nimport swcPrepareOptions from '../lib/swcPrepareOptions.js';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nexport default function transformSyncWorker(contents: string, fileName: string, tsconfig: TsConfigResult): Output {\n const swcOptions = swcPrepareOptions(tsconfig);\n const swc = _require('@swc/core');\n return swc.transformSync(contents, {\n ...(fileName.endsWith('.tsx') || fileName.endsWith('.jsx') ? swcOptions.tsxOptions : swcOptions.nonTsxOptions),\n filename: fileName,\n });\n}\n"],"names":["Module","swcPrepareOptions","_require","require","createRequire","url","transformSyncWorker","contents","fileName","tsconfig","swcOptions","swc","transformSync","endsWith","tsxOptions","nonTsxOptions","filename"],"mappings":"AACA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,uBAAuB,8BAA8B;AAE5D,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAG1F,eAAe,SAASG,oBAAoBC,QAAgB,EAAEC,QAAgB,EAAEC,QAAwB;IACtG,MAAMC,aAAaT,kBAAkBQ;IACrC,MAAME,MAAMT,SAAS;IACrB,OAAOS,IAAIC,aAAa,CAACL,UAAU;QACjC,GAAIC,SAASK,QAAQ,CAAC,WAAWL,SAASK,QAAQ,CAAC,UAAUH,WAAWI,UAAU,GAAGJ,WAAWK,aAAa;QAC7GC,UAAUR;IACZ;AACF"}
@@ -1 +1,2 @@
1
- export default function transformTypesWorker(src: any, dest: any, options: any, callback: any): void;
1
+ import type { ConfigOptions, TransformTypesCallback } from '../types.js';
2
+ export default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined;
@@ -18,11 +18,15 @@ export default function transformTypesWorker(src, dest, options, callback) {
18
18
  }, {
19
19
  concurrency: Infinity
20
20
  }, (err)=>{
21
- if (err) return callback(err);
21
+ if (err) {
22
+ callback(err);
23
+ return;
24
+ }
25
+ const compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');
22
26
  const config = {
23
27
  fileNames: entries.map((entry)=>entry.fullPath),
24
28
  options: {
25
- ...tsconfig.compilerOptions || {},
29
+ ...compilerOptions,
26
30
  outDir: dest,
27
31
  allowJs: true,
28
32
  declaration: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nexport default function transformTypesWorker(src, dest, options, callback) {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\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 entries.push(entry);\n },\n { concurrency: Infinity },\n (err) => {\n if (err) return callback(err);\n\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...(tsconfig.compilerOptions || {}),\n outDir: dest,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["Iterator","Module","_require","require","createRequire","url","typeFileRegEx","createMatcher","transformTypesWorker","src","dest","options","callback","tsconfig","matcher","ts","entries","iterator","forEach","entry","stats","isFile","basename","test","fullPath","push","concurrency","Infinity","err","config","fileNames","map","compilerOptions","outDir","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles"],"mappings":"AAAA,OAAOA,cAA8B,cAAc;AAEnD,OAAOC,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,SAASG,aAAa,QAAQ,kBAAkB;AAChD,OAAOC,mBAAmB,sBAAsB;AAEhD,eAAe,SAASC,qBAAqBC,GAAG,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IACvE,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUP,cAAcM;IAC9B,MAAME,KAAKb,SAAS;IAEpB,MAAMc,UAAU,EAAE;IAClB,MAAMC,WAAW,IAAIjB,SAASS;IAC9BQ,SAASC,OAAO,CACd,CAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIhB,cAAciB,IAAI,CAACJ,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACR,QAAQK,MAAMK,QAAQ,GAAG;QAC9BR,QAAQS,IAAI,CAACN;IACf,GACA;QAAEO,aAAaC;IAAS,GACxB,CAACC;QACC,IAAIA,KAAK,OAAOhB,SAASgB;QAEzB,MAAMC,SAAS;YACbC,WAAWd,QAAQe,GAAG,CAAC,CAACZ,QAAUA,MAAMK,QAAQ;YAChDb,SAAS;gBACP,GAAIE,SAASmB,eAAe,IAAI,CAAC,CAAC;gBAClCC,QAAQvB;gBACRwB,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;YACpB;YACAC,mBAAmBzB,SAASgB,MAAM,CAACU,UAAU;QAC/C;QACA,MAAM,EAAET,SAAS,EAAEnB,OAAO,EAAE2B,iBAAiB,EAAE,GAAGT;QAClD,MAAMW,OAAOzB,GAAG0B,wBAAwB,CAAC9B,SAAS,gBAAgB,GAAG+B,WAAW3B,GAAG4B,GAAG;QACtF,MAAMC,iBAAiB;YACrBC,WAAWf;YACXnB;YACA2B;YACAE;YACAM,8BAA8B/B,GAAGgC,+BAA+B,CAAC;gBAAEjB;gBAAWnB;YAAQ;QACxF;QACA,MAAMqC,UAAUjC,GAAGkC,aAAa,CAACL;QACjC,MAAMM,MAAMF,QAAQG,IAAI;QACxBvC,SAAS,MAAMsC,IAAIE,YAAY;IACjC;AAEJ"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import Iterator, { type Entry } from 'fs-iterator';\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.js';\nimport createMatcher from '../createMatcher.js';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.js';\n\nexport default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined {\n const tsconfig = options.tsconfig;\n const matcher = createMatcher(tsconfig);\n const ts = _require('typescript');\n\n const entries = [];\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 entries.push(entry);\n },\n { concurrency: Infinity },\n (err): undefined => {\n if (err) {\n callback(err);\n return;\n }\n\n const compilerOptions = ts.convertCompilerOptionsFromJson(tsconfig.config.compilerOptions, '');\n const config = {\n fileNames: entries.map((entry) => entry.fullPath),\n options: {\n ...compilerOptions,\n outDir: dest,\n allowJs: true,\n declaration: true,\n emitDeclarationOnly: true,\n listEmittedFiles: true,\n },\n projectReferences: tsconfig.config.references,\n };\n const { fileNames, options, projectReferences } = config;\n const host = ts.createCompilerHostWorker(options, /*setParentNodes*/ undefined, ts.sys);\n const programOptions = {\n rootNames: fileNames,\n options,\n projectReferences,\n host,\n configFileParsingDiagnostics: ts.getConfigFileParsingDiagnostics({ fileNames, options }),\n };\n const program = ts.createProgram(programOptions);\n const res = program.emit();\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["Iterator","Module","_require","require","createRequire","url","typeFileRegEx","createMatcher","transformTypesWorker","src","dest","options","callback","tsconfig","matcher","ts","entries","iterator","forEach","entry","stats","isFile","basename","test","fullPath","push","concurrency","Infinity","err","compilerOptions","convertCompilerOptionsFromJson","config","fileNames","map","outDir","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles"],"mappings":"AAAA,OAAOA,cAA8B,cAAc;AAEnD,OAAOC,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,SAASG,aAAa,QAAQ,kBAAkB;AAChD,OAAOC,mBAAmB,sBAAsB;AAIhD,eAAe,SAASC,qBAAqBC,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUP,cAAcM;IAC9B,MAAME,KAAKb,SAAS;IAEpB,MAAMc,UAAU,EAAE;IAClB,MAAMC,WAAW,IAAIjB,SAASS;IAC9BQ,SAASC,OAAO,CACd,CAACC;QACC,IAAI,CAACA,MAAMC,KAAK,CAACC,MAAM,IAAI;QAC3B,IAAIF,MAAMG,QAAQ,CAAC,EAAE,KAAK,KAAK;QAC/B,IAAIhB,cAAciB,IAAI,CAACJ,MAAMG,QAAQ,GAAG;QACxC,IAAI,CAACR,QAAQK,MAAMK,QAAQ,GAAG;QAC9BR,QAAQS,IAAI,CAACN;IACf,GACA;QAAEO,aAAaC;IAAS,GACxB,CAACC;QACC,IAAIA,KAAK;YACPhB,SAASgB;YACT;QACF;QAEA,MAAMC,kBAAkBd,GAAGe,8BAA8B,CAACjB,SAASkB,MAAM,CAACF,eAAe,EAAE;QAC3F,MAAME,SAAS;YACbC,WAAWhB,QAAQiB,GAAG,CAAC,CAACd,QAAUA,MAAMK,QAAQ;YAChDb,SAAS;gBACP,GAAGkB,eAAe;gBAClBK,QAAQxB;gBACRyB,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;YACpB;YACAC,mBAAmB1B,SAASkB,MAAM,CAACS,UAAU;QAC/C;QACA,MAAM,EAAER,SAAS,EAAErB,OAAO,EAAE4B,iBAAiB,EAAE,GAAGR;QAClD,MAAMU,OAAO1B,GAAG2B,wBAAwB,CAAC/B,SAAS,gBAAgB,GAAGgC,WAAW5B,GAAG6B,GAAG;QACtF,MAAMC,iBAAiB;YACrBC,WAAWd;YACXrB;YACA4B;YACAE;YACAM,8BAA8BhC,GAAGiC,+BAA+B,CAAC;gBAAEhB;gBAAWrB;YAAQ;QACxF;QACA,MAAMsC,UAAUlC,GAAGmC,aAAa,CAACL;QACjC,MAAMM,MAAMF,QAAQG,IAAI;QACxBxC,SAAS,MAAMuC,IAAIE,YAAY;IACjC;AAEJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-swc-transform",
3
- "version": "2.0.18",
3
+ "version": "2.0.20",
4
4
  "description": "Typescript transformers for swc. Supports Node >= 0.8",
5
5
  "keywords": [
6
6
  "matcher",