ts-swc-transform 2.6.14 → 2.6.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/constants.d.cts +0 -4
- package/dist/cjs/constants.d.ts +0 -4
- package/dist/cjs/constants.js +0 -16
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/createMatcher.d.cts +1 -1
- package/dist/cjs/createMatcher.d.ts +1 -1
- package/dist/cjs/index.d.cts +8 -8
- package/dist/cjs/index.d.ts +8 -8
- package/dist/cjs/lib/parseSpecifiers.js +2 -1
- package/dist/cjs/lib/parseSpecifiers.js.map +1 -1
- package/dist/cjs/lib/patchCJS.d.cts +1 -1
- package/dist/cjs/lib/patchCJS.d.ts +1 -1
- package/dist/cjs/lib/patchCJS.js +1 -4
- package/dist/cjs/lib/patchCJS.js.map +1 -1
- package/dist/cjs/lib/patchESM.d.cts +1 -1
- package/dist/cjs/lib/patchESM.d.ts +1 -1
- package/dist/cjs/lib/patchESM.js +1 -4
- package/dist/cjs/lib/patchESM.js.map +1 -1
- package/dist/cjs/lib/prepareSWCOptions.d.cts +1 -1
- package/dist/cjs/lib/prepareSWCOptions.d.ts +1 -1
- package/dist/cjs/lib/rewriteExtensions.d.cts +1 -1
- package/dist/cjs/lib/rewriteExtensions.d.ts +1 -1
- package/dist/cjs/lib/rewriteExtensions.js +11 -23
- package/dist/cjs/lib/rewriteExtensions.js.map +1 -1
- package/dist/cjs/lib/transformFile.d.cts +1 -1
- package/dist/cjs/lib/transformFile.d.ts +1 -1
- package/dist/cjs/resolveFileSync.d.cts +1 -1
- package/dist/cjs/resolveFileSync.d.ts +1 -1
- package/dist/cjs/toPath.d.cts +1 -1
- package/dist/cjs/toPath.d.ts +1 -1
- package/dist/cjs/transformDirectory.d.cts +1 -1
- package/dist/cjs/transformDirectory.d.ts +1 -1
- package/dist/cjs/transformSync.d.cts +1 -1
- package/dist/cjs/transformSync.d.ts +1 -1
- package/dist/cjs/transformTypes.d.cts +1 -1
- package/dist/cjs/transformTypes.d.ts +1 -1
- package/dist/cjs/workers/transformDirectory.d.cts +1 -1
- package/dist/cjs/workers/transformDirectory.d.ts +1 -1
- package/dist/cjs/workers/transformSync.d.cts +1 -1
- package/dist/cjs/workers/transformSync.d.ts +1 -1
- package/dist/cjs/workers/transformTypes.d.cts +1 -1
- package/dist/cjs/workers/transformTypes.d.ts +1 -1
- package/dist/cjs/workers/transformTypes.js +6 -5
- package/dist/cjs/workers/transformTypes.js.map +1 -1
- package/dist/esm/constants.d.ts +0 -4
- package/dist/esm/constants.js +0 -5
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/createMatcher.d.ts +1 -1
- package/dist/esm/index.d.ts +8 -8
- package/dist/esm/lib/parseSpecifiers.js +2 -1
- package/dist/esm/lib/parseSpecifiers.js.map +1 -1
- package/dist/esm/lib/patchCJS.d.ts +1 -1
- package/dist/esm/lib/patchCJS.js +2 -5
- package/dist/esm/lib/patchCJS.js.map +1 -1
- package/dist/esm/lib/patchESM.d.ts +1 -1
- package/dist/esm/lib/patchESM.js +2 -5
- package/dist/esm/lib/patchESM.js.map +1 -1
- package/dist/esm/lib/prepareSWCOptions.d.ts +1 -1
- package/dist/esm/lib/rewriteExtensions.d.ts +1 -1
- package/dist/esm/lib/rewriteExtensions.js +8 -15
- package/dist/esm/lib/rewriteExtensions.js.map +1 -1
- package/dist/esm/lib/transformFile.d.ts +1 -1
- package/dist/esm/resolveFileSync.d.ts +1 -1
- package/dist/esm/toPath.d.ts +1 -1
- package/dist/esm/transformDirectory.d.ts +1 -1
- package/dist/esm/transformSync.d.ts +1 -1
- package/dist/esm/transformTypes.d.ts +1 -1
- package/dist/esm/workers/transformDirectory.d.ts +1 -1
- package/dist/esm/workers/transformSync.d.ts +1 -1
- package/dist/esm/workers/transformTypes.d.ts +1 -1
- package/dist/esm/workers/transformTypes.js +4 -3
- package/dist/esm/workers/transformTypes.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/constants.d.cts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
export declare const moduleRegEx: RegExp;
|
|
2
2
|
export declare const typeFileRegEx: RegExp;
|
|
3
|
-
export declare const moduleDependencyRegEx = "\\s*['\"`]([^'\"`]+)['\"`]\\s*";
|
|
4
|
-
export declare const moduleNameRegEx = "\\s*(?:[\\w${},\\s*]+)\\s*";
|
|
5
|
-
export declare const requireRegEx: RegExp;
|
|
6
|
-
export declare const importRegEx: RegExp;
|
|
7
3
|
export declare const extensions: string[];
|
package/dist/cjs/constants.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
export declare const moduleRegEx: RegExp;
|
|
2
2
|
export declare const typeFileRegEx: RegExp;
|
|
3
|
-
export declare const moduleDependencyRegEx = "\\s*['\"`]([^'\"`]+)['\"`]\\s*";
|
|
4
|
-
export declare const moduleNameRegEx = "\\s*(?:[\\w${},\\s*]+)\\s*";
|
|
5
|
-
export declare const requireRegEx: RegExp;
|
|
6
|
-
export declare const importRegEx: RegExp;
|
|
7
3
|
export declare const extensions: string[];
|
package/dist/cjs/constants.js
CHANGED
|
@@ -12,31 +12,15 @@ _export(exports, {
|
|
|
12
12
|
get extensions () {
|
|
13
13
|
return extensions;
|
|
14
14
|
},
|
|
15
|
-
get importRegEx () {
|
|
16
|
-
return importRegEx;
|
|
17
|
-
},
|
|
18
|
-
get moduleDependencyRegEx () {
|
|
19
|
-
return moduleDependencyRegEx;
|
|
20
|
-
},
|
|
21
|
-
get moduleNameRegEx () {
|
|
22
|
-
return moduleNameRegEx;
|
|
23
|
-
},
|
|
24
15
|
get moduleRegEx () {
|
|
25
16
|
return moduleRegEx;
|
|
26
17
|
},
|
|
27
|
-
get requireRegEx () {
|
|
28
|
-
return requireRegEx;
|
|
29
|
-
},
|
|
30
18
|
get typeFileRegEx () {
|
|
31
19
|
return typeFileRegEx;
|
|
32
20
|
}
|
|
33
21
|
});
|
|
34
22
|
var moduleRegEx = /^[^./]|^\.[^./]|^\.\.[^/]/;
|
|
35
23
|
var typeFileRegEx = /^[^.]+\.d\.[cm]?ts$/;
|
|
36
|
-
var moduleDependencyRegEx = '\\s*[\'"`]([^\'"`]+)[\'"`]\\s*';
|
|
37
|
-
var moduleNameRegEx = '\\s*(?:[\\w${},\\s*]+)\\s*';
|
|
38
|
-
var requireRegEx = new RegExp("(?:(?:var|const|let)".concat(moduleNameRegEx, "=\\s*)?require\\(").concat(moduleDependencyRegEx, "\\)?"), 'g');
|
|
39
|
-
var importRegEx = new RegExp("".concat(requireRegEx, "|import(?:").concat(moduleNameRegEx, "from\\s*)?").concat(moduleDependencyRegEx, ";?|export(?:").concat(moduleNameRegEx, "from\\s*)?").concat(moduleDependencyRegEx, "?"), 'g');
|
|
40
24
|
var extensions = [
|
|
41
25
|
'.js',
|
|
42
26
|
'.jsx',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/constants.ts"],"sourcesContent":["export const moduleRegEx = /^[^./]|^\\.[^./]|^\\.\\.[^/]/;\nexport const typeFileRegEx = /^[^.]+\\.d\\.[cm]?ts$/;\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/constants.ts"],"sourcesContent":["export const moduleRegEx = /^[^./]|^\\.[^./]|^\\.\\.[^/]/;\nexport const typeFileRegEx = /^[^.]+\\.d\\.[cm]?ts$/;\nexport const extensions = ['.js', '.jsx', '.cjs', '.mjs', '.ts', '.tsx', '.cts', '.mts', '.es6', '.es'];\n"],"names":["extensions","moduleRegEx","typeFileRegEx"],"mappings":";;;;;;;;;;;QAEaA;eAAAA;;QAFAC;eAAAA;;QACAC;eAAAA;;;AADN,IAAMD,cAAc;AACpB,IAAMC,gBAAgB;AACtB,IAAMF,aAAa;IAAC;IAAO;IAAQ;IAAQ;IAAQ;IAAO;IAAQ;IAAQ;IAAQ;IAAQ;CAAM"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Matcher, TSConfig } from './types.
|
|
1
|
+
import type { Matcher, TSConfig } from './types.js';
|
|
2
2
|
export default function createMatcher(tsconfig: TSConfig): Matcher;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Matcher, TSConfig } from './types.
|
|
1
|
+
import type { Matcher, TSConfig } from './types.js';
|
|
2
2
|
export default function createMatcher(tsconfig: TSConfig): Matcher;
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * as constants from './constants.
|
|
2
|
-
export { default as createMatcher } from './createMatcher.
|
|
3
|
-
export { default as resolveFileSync } from './resolveFileSync.
|
|
4
|
-
export { default as toPath } from './toPath.
|
|
5
|
-
export { default as transformDirectory } from './transformDirectory.
|
|
6
|
-
export { default as transformSync } from './transformSync.
|
|
7
|
-
export { default as transformTypes } from './transformTypes.
|
|
8
|
-
export type * from './types.
|
|
1
|
+
export * as constants from './constants.js';
|
|
2
|
+
export { default as createMatcher } from './createMatcher.js';
|
|
3
|
+
export { default as resolveFileSync } from './resolveFileSync.js';
|
|
4
|
+
export { default as toPath } from './toPath.js';
|
|
5
|
+
export { default as transformDirectory } from './transformDirectory.js';
|
|
6
|
+
export { default as transformSync } from './transformSync.js';
|
|
7
|
+
export { default as transformTypes } from './transformTypes.js';
|
|
8
|
+
export type * from './types.js';
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * as constants from './constants.
|
|
2
|
-
export { default as createMatcher } from './createMatcher.
|
|
3
|
-
export { default as resolveFileSync } from './resolveFileSync.
|
|
4
|
-
export { default as toPath } from './toPath.
|
|
5
|
-
export { default as transformDirectory } from './transformDirectory.
|
|
6
|
-
export { default as transformSync } from './transformSync.
|
|
7
|
-
export { default as transformTypes } from './transformTypes.
|
|
8
|
-
export type * from './types.
|
|
1
|
+
export * as constants from './constants.js';
|
|
2
|
+
export { default as createMatcher } from './createMatcher.js';
|
|
3
|
+
export { default as resolveFileSync } from './resolveFileSync.js';
|
|
4
|
+
export { default as toPath } from './toPath.js';
|
|
5
|
+
export { default as transformDirectory } from './transformDirectory.js';
|
|
6
|
+
export { default as transformSync } from './transformSync.js';
|
|
7
|
+
export { default as transformTypes } from './transformTypes.js';
|
|
8
|
+
export type * from './types.js';
|
|
@@ -13,7 +13,8 @@ function parser(code, regex) {
|
|
|
13
13
|
var offset = 0;
|
|
14
14
|
var match = regex.exec(code);
|
|
15
15
|
while(match){
|
|
16
|
-
|
|
16
|
+
// Support up to 5 capture groups for declaration-specific patterns
|
|
17
|
+
var dependency = match[1] || match[2] || match[3] || match[4] || match[5];
|
|
17
18
|
parsed.push({
|
|
18
19
|
content: code.substring(offset, match.index + match[0].lastIndexOf(dependency)),
|
|
19
20
|
isSpecifier: false
|
|
@@ -1 +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":";;;;+BAKA;;;eAAwBA;;;AAAT,SAASA,OAAOC,IAAY,EAAEC,KAAa;IACxD,IAAMC,SAAmB,EAAE;IAC3B,IAAIC,SAAS;IACb,IAAIC,QAAQH,MAAMI,IAAI,CAACL;IACvB,MAAOI,MAAO;QACZ,IAAME,aAAaF,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE;
|
|
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 // Support up to 5 capture groups for declaration-specific patterns\n const dependency = match[1] || match[2] || match[3] || match[4] || match[5];\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":";;;;+BAKA;;;eAAwBA;;;AAAT,SAASA,OAAOC,IAAY,EAAEC,KAAa;IACxD,IAAMC,SAAmB,EAAE;IAC3B,IAAIC,SAAS;IACb,IAAIC,QAAQH,MAAMI,IAAI,CAACL;IACvB,MAAOI,MAAO;QACZ,mEAAmE;QACnE,IAAME,aAAaF,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE;QAC3EF,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,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 { ConfigOptions } from '../types.
|
|
4
|
+
import type { ConfigOptions } from '../types.js';
|
|
5
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 { ConfigOptions } from '../types.
|
|
4
|
+
import type { ConfigOptions } from '../types.js';
|
|
5
5
|
export default function patchCJS(entry: Entry, output: Output, options: ConfigOptions): string;
|
package/dist/cjs/lib/patchCJS.js
CHANGED
|
@@ -17,7 +17,6 @@ _export(exports, {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
20
|
-
var _constants = require("../constants");
|
|
21
20
|
var _rewriteExtensionsts = require("./rewriteExtensions.js");
|
|
22
21
|
function _interop_require_default(obj) {
|
|
23
22
|
return obj && obj.__esModule ? obj : {
|
|
@@ -27,9 +26,7 @@ function _interop_require_default(obj) {
|
|
|
27
26
|
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; }";
|
|
28
27
|
function patchCJS(entry, output, options) {
|
|
29
28
|
var rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
|
|
30
|
-
if (rewrite)
|
|
31
|
-
output.code = (0, _rewriteExtensionsts.makeReplacements)(output.code, _constants.requireRegEx);
|
|
32
|
-
}
|
|
29
|
+
if (rewrite) output.code = (0, _rewriteExtensionsts.rewriteExtensions)(output.code);
|
|
33
30
|
output.code += interop;
|
|
34
31
|
return (0, _rewriteExtensionsts.replaceExtension)(_path.default.extname(entry.basename));
|
|
35
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import path from 'path';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import path from 'path';\nimport { replaceExtension, rewriteExtensions } 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) output.code = rewriteExtensions(output.code);\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","rewriteExtensions","replaceExtension","path","extname","basename"],"mappings":";;;;;;;;;;;QAeA;eAAwBA;;QAXXC;eAAAA;;;2DAJI;mCACmC;;;;;;AAG7C,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,SAASF,OAAOO,IAAI,GAAGC,IAAAA,sCAAiB,EAACR,OAAOO,IAAI;IACxDP,OAAOO,IAAI,IAAIT;IAEf,OAAOW,IAAAA,qCAAgB,EAACC,aAAI,CAACC,OAAO,CAACZ,MAAMa,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 { ConfigOptions } from '../types.
|
|
3
|
+
import type { ConfigOptions } from '../types.js';
|
|
4
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 { ConfigOptions } from '../types.
|
|
3
|
+
import type { ConfigOptions } from '../types.js';
|
|
4
4
|
export default function patchESM(entry: Entry, output: Output, options: ConfigOptions): string;
|
package/dist/cjs/lib/patchESM.js
CHANGED
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
-
var _constants = require("../constants");
|
|
13
12
|
var _rewriteExtensionsts = require("./rewriteExtensions.js");
|
|
14
13
|
function _interop_require_default(obj) {
|
|
15
14
|
return obj && obj.__esModule ? obj : {
|
|
@@ -18,9 +17,7 @@ function _interop_require_default(obj) {
|
|
|
18
17
|
}
|
|
19
18
|
function patchESM(entry, output, options) {
|
|
20
19
|
var rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
|
|
21
|
-
if (rewrite)
|
|
22
|
-
output.code = (0, _rewriteExtensionsts.makeReplacements)(output.code, _constants.importRegEx);
|
|
23
|
-
}
|
|
20
|
+
if (rewrite) output.code = (0, _rewriteExtensionsts.rewriteExtensions)(output.code);
|
|
24
21
|
return (0, _rewriteExtensionsts.replaceExtension)(_path.default.extname(entry.basename));
|
|
25
22
|
}
|
|
26
23
|
/* 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 type { Output } from '@swc/core';\nimport type { Entry } from 'fs-iterator';\nimport path from 'path';\nimport type { CompilerOptions } from 'typescript';\nimport
|
|
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 type { ConfigOptions } from '../types.ts';\nimport { replaceExtension, rewriteExtensions } 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) output.code = rewriteExtensions(output.code);\n\n return replaceExtension(path.extname(entry.basename));\n}\n"],"names":["patchESM","entry","output","options","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","rewriteExtensions","replaceExtension","path","extname","basename"],"mappings":";;;;+BAWA;;;eAAwBA;;;2DATP;mCAGmC;;;;;;AAMrC,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,SAASF,OAAOO,IAAI,GAAGC,IAAAA,sCAAiB,EAACR,OAAOO,IAAI;IAExD,OAAOE,IAAAA,qCAAgB,EAACC,aAAI,CAACC,OAAO,CAACZ,MAAMa,QAAQ;AACrD"}
|
|
@@ -12,21 +12,13 @@ _export(exports, {
|
|
|
12
12
|
get extensions () {
|
|
13
13
|
return extensions;
|
|
14
14
|
},
|
|
15
|
-
get makeReplacements () {
|
|
16
|
-
return makeReplacements;
|
|
17
|
-
},
|
|
18
15
|
get replaceExtension () {
|
|
19
16
|
return replaceExtension;
|
|
17
|
+
},
|
|
18
|
+
get rewriteExtensions () {
|
|
19
|
+
return rewriteExtensions;
|
|
20
20
|
}
|
|
21
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
22
|
var extensions = {
|
|
31
23
|
'.ts': '.js',
|
|
32
24
|
'.tsx': '.js',
|
|
@@ -37,17 +29,13 @@ function replaceExtension(ext) {
|
|
|
37
29
|
var replace = extensions[ext];
|
|
38
30
|
return replace === undefined ? ext : replace;
|
|
39
31
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var replace = replaceExtension(ext);
|
|
49
|
-
if (ext === replace) return specifier;
|
|
50
|
-
return "".concat(specifier.slice(0, -ext.length)).concat(replace);
|
|
51
|
-
}).join('');
|
|
32
|
+
// Pure regex solution for rewriting TypeScript extensions to JavaScript
|
|
33
|
+
// Pattern: quote + relative path (starts with .) + TS extension + matching quote
|
|
34
|
+
var extensionPattern = /(['"`])(\.[-\w./]*?)\.(tsx?|mts|cts)\1/g;
|
|
35
|
+
function rewriteExtensions(content) {
|
|
36
|
+
return content.replace(extensionPattern, function(_match, quote, path, ext) {
|
|
37
|
+
var newExt = extensions[".".concat(ext)];
|
|
38
|
+
return "".concat(quote).concat(path).concat(newExt).concat(quote);
|
|
39
|
+
});
|
|
52
40
|
}
|
|
53
41
|
/* 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/rewriteExtensions.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/rewriteExtensions.ts"],"sourcesContent":["export 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\n// Pure regex solution for rewriting TypeScript extensions to JavaScript\n// Pattern: quote + relative path (starts with .) + TS extension + matching quote\nconst extensionPattern = /(['\"`])(\\.[-\\w./]*?)\\.(tsx?|mts|cts)\\1/g;\n\nexport function rewriteExtensions(content: string): string {\n return content.replace(extensionPattern, (_match, quote, path, ext) => {\n const newExt = extensions[`.${ext}`];\n return `${quote}${path}${newExt}${quote}`;\n });\n}\n"],"names":["extensions","replaceExtension","rewriteExtensions","ext","replace","undefined","extensionPattern","content","_match","quote","path","newExt"],"mappings":";;;;;;;;;;;QAAaA;eAAAA;;QAOGC;eAAAA;;QASAC;eAAAA;;;AAhBT,IAAMF,aAAa;IACxB,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;AACV;AAEO,SAASC,iBAAiBE,GAAW;IAC1C,IAAMC,UAAUJ,UAAU,CAACG,IAAI;IAC/B,OAAOC,YAAYC,YAAYF,MAAMC;AACvC;AAEA,wEAAwE;AACxE,iFAAiF;AACjF,IAAME,mBAAmB;AAElB,SAASJ,kBAAkBK,OAAe;IAC/C,OAAOA,QAAQH,OAAO,CAACE,kBAAkB,SAACE,QAAQC,OAAOC,MAAMP;QAC7D,IAAMQ,SAASX,UAAU,CAAC,AAAC,IAAO,OAAJG,KAAM;QACpC,OAAO,AAAC,GAAUO,OAARD,OAAeE,OAAPD,MAAgBD,OAATE,QAAe,OAANF;IACpC;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Entry } from 'fs-iterator';
|
|
2
|
-
import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.
|
|
2
|
+
import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.js';
|
|
3
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 { ConfigOptions, TargetType, TransformFileCallback } from '../types.
|
|
2
|
+
import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.js';
|
|
3
3
|
export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptions, callback: TransformFileCallback): undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context } from './types.
|
|
1
|
+
import type { Context } from './types.js';
|
|
2
2
|
export default function resolveFileSync(specifier: string, context?: Context): string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context } from './types.
|
|
1
|
+
import type { Context } from './types.js';
|
|
2
2
|
export default function resolveFileSync(specifier: string, context?: Context): string;
|
package/dist/cjs/toPath.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context } from './types.
|
|
1
|
+
import type { Context } from './types.js';
|
|
2
2
|
export default function toPath(specifier: string, context?: Context): string;
|
package/dist/cjs/toPath.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context } from './types.
|
|
1
|
+
import type { Context } from './types.js';
|
|
2
2
|
export default function toPath(specifier: string, context?: Context): string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.
|
|
1
|
+
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.js';
|
|
2
2
|
export default function transformDirectory(src: string, dest: string, type: TargetType, options?: ConfigOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<string[]>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.
|
|
1
|
+
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.js';
|
|
2
2
|
export default function transformDirectory(src: string, dest: string, type: TargetType, options?: ConfigOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<string[]>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TransformTypesCallback } from './types.
|
|
1
|
+
import type { ConfigOptions, TransformTypesCallback } from './types.js';
|
|
2
2
|
export default function transformTypes(src: string, dest: string, options?: ConfigOptions | TransformTypesCallback, callback?: TransformTypesCallback): undefined | Promise<string[]>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TransformTypesCallback } from './types.
|
|
1
|
+
import type { ConfigOptions, TransformTypesCallback } from './types.js';
|
|
2
2
|
export default function transformTypes(src: string, dest: string, options?: ConfigOptions | TransformTypesCallback, callback?: TransformTypesCallback): undefined | Promise<string[]>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.
|
|
1
|
+
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.js';
|
|
2
2
|
export default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.
|
|
1
|
+
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.js';
|
|
2
2
|
export default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TransformTypesCallback } from '../types.
|
|
1
|
+
import type { ConfigOptions, TransformTypesCallback } from '../types.js';
|
|
2
2
|
export default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TransformTypesCallback } from '../types.
|
|
1
|
+
import type { ConfigOptions, TransformTypesCallback } from '../types.js';
|
|
2
2
|
export default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined;
|
|
@@ -8,10 +8,12 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return transformTypesWorker;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
11
12
|
var _fsiterator = /*#__PURE__*/ _interop_require_default(require("fs-iterator"));
|
|
12
13
|
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
13
14
|
var _constantsts = require("../constants.js");
|
|
14
15
|
var _createMatcherts = /*#__PURE__*/ _interop_require_default(require("../createMatcher.js"));
|
|
16
|
+
var _rewriteExtensionsts = require("../lib/rewriteExtensions.js");
|
|
15
17
|
function _define_property(obj, key, value) {
|
|
16
18
|
if (key in obj) {
|
|
17
19
|
Object.defineProperty(obj, key, {
|
|
@@ -118,16 +120,15 @@ function transformTypesWorker(src, dest, options, callback) {
|
|
|
118
120
|
};
|
|
119
121
|
var program = ts.createProgram(programOptions);
|
|
120
122
|
var res = program.emit();
|
|
121
|
-
//
|
|
123
|
+
// TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037
|
|
122
124
|
if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {
|
|
123
|
-
var fs = _require('fs');
|
|
124
125
|
res.emittedFiles.forEach(function(file) {
|
|
125
126
|
if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {
|
|
126
127
|
try {
|
|
127
|
-
var content =
|
|
128
|
-
var updated =
|
|
128
|
+
var content = _fs.default.readFileSync(file, 'utf8');
|
|
129
|
+
var updated = (0, _rewriteExtensionsts.rewriteExtensions)(content);
|
|
129
130
|
if (updated !== content) {
|
|
130
|
-
|
|
131
|
+
_fs.default.writeFileSync(file, updated, 'utf8');
|
|
131
132
|
}
|
|
132
133
|
} catch (_err) {
|
|
133
134
|
// Ignore errors
|
|
@@ -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';\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport Iterator, { type Entry } from 'fs-iterator';\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport { rewriteExtensions } from '../lib/rewriteExtensions.ts';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.ts';\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.options,\n outDir: dest,\n noEmit: false,\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\n // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037\n if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {\n res.emittedFiles.forEach((file) => {\n if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {\n try {\n const content = fs.readFileSync(file, 'utf8');\n const updated = rewriteExtensions(content);\n if (updated !== content) {\n fs.writeFileSync(file, updated, 'utf8');\n }\n } catch (_err) {\n // Ignore errors\n }\n }\n });\n }\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","noEmit","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles","rewriteRelativeImportExtensions","file","endsWith","content","fs","readFileSync","updated","rewriteExtensions","writeFileSync","_err"],"mappings":";;;;+BAYA;;;eAAwBA;;;yDAZT;iEACsB;6DAClB;2BAIW;sEACJ;mCACQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAJlC,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAQ3E,SAASF,qBAAqBK,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,IAAMC,WAAWF,QAAQE,QAAQ;IACjC,IAAMC,UAAUC,IAAAA,wBAAa,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,0BAAa,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,gBAAgBrB,OAAO;gBAC1B0B,QAAQ3B;gBACR4B,QAAQ;gBACRC,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;;YAEpBC,mBAAmB9B,SAASqB,MAAM,CAACU,UAAU;QAC/C;QACA,IAAQT,YAA0CD,OAA1CC,WAAWxB,YAA+BuB,OAA/BvB,SAASgC,oBAAsBT,OAAtBS;QAC5B,IAAME,OAAO7B,GAAG8B,wBAAwB,CAACnC,WAAS,gBAAgB,GAAGoC,WAAW/B,GAAGgC,GAAG;QACtF,IAAMC,iBAAiB;YACrBC,WAAWf;YACXxB,SAAAA;YACAgC,mBAAAA;YACAE,MAAAA;YACAM,8BAA8BnC,GAAGoC,+BAA+B,CAAC;gBAAEjB,WAAAA;gBAAWxB,SAAAA;YAAQ;QACxF;QACA,IAAM0C,UAAUrC,GAAGsC,aAAa,CAACL;QACjC,IAAMM,MAAMF,QAAQG,IAAI;QAExB,8EAA8E;QAC9E,IAAID,IAAIE,YAAY,IAAIzB,gBAAgBrB,OAAO,CAAC+C,+BAA+B,EAAE;YAC/EH,IAAIE,YAAY,CAACrC,OAAO,CAAC,SAACuC;gBACxB,IAAIA,KAAKC,QAAQ,CAAC,YAAYD,KAAKC,QAAQ,CAAC,aAAaD,KAAKC,QAAQ,CAAC,WAAW;oBAChF,IAAI;wBACF,IAAMC,UAAUC,WAAE,CAACC,YAAY,CAACJ,MAAM;wBACtC,IAAMK,UAAUC,IAAAA,sCAAiB,EAACJ;wBAClC,IAAIG,YAAYH,SAAS;4BACvBC,WAAE,CAACI,aAAa,CAACP,MAAMK,SAAS;wBAClC;oBACF,EAAE,OAAOG,MAAM;oBACb,gBAAgB;oBAClB;gBACF;YACF;QACF;QACAvD,SAAS,MAAM2C,IAAIE,YAAY;IACjC;AAEJ"}
|
package/dist/esm/constants.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
export declare const moduleRegEx: RegExp;
|
|
2
2
|
export declare const typeFileRegEx: RegExp;
|
|
3
|
-
export declare const moduleDependencyRegEx = "\\s*['\"`]([^'\"`]+)['\"`]\\s*";
|
|
4
|
-
export declare const moduleNameRegEx = "\\s*(?:[\\w${},\\s*]+)\\s*";
|
|
5
|
-
export declare const requireRegEx: RegExp;
|
|
6
|
-
export declare const importRegEx: RegExp;
|
|
7
3
|
export declare const extensions: string[];
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
export const moduleRegEx = /^[^./]|^\.[^./]|^\.\.[^/]/;
|
|
2
2
|
export const typeFileRegEx = /^[^.]+\.d\.[cm]?ts$/;
|
|
3
|
-
export const moduleDependencyRegEx = '\\s*[\'"`]([^\'"`]+)[\'"`]\\s*';
|
|
4
|
-
// biome-ignore lint/suspicious/noTemplateCurlyInString: Valid regex
|
|
5
|
-
export const moduleNameRegEx = '\\s*(?:[\\w${},\\s*]+)\\s*';
|
|
6
|
-
export const requireRegEx = new RegExp(`(?:(?:var|const|let)${moduleNameRegEx}=\\s*)?require\\(${moduleDependencyRegEx}\\)?`, 'g');
|
|
7
|
-
export const importRegEx = new RegExp(`${requireRegEx}|import(?:${moduleNameRegEx}from\\s*)?${moduleDependencyRegEx};?|export(?:${moduleNameRegEx}from\\s*)?${moduleDependencyRegEx}?`, 'g');
|
|
8
3
|
export const extensions = [
|
|
9
4
|
'.js',
|
|
10
5
|
'.jsx',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/constants.ts"],"sourcesContent":["export const moduleRegEx = /^[^./]|^\\.[^./]|^\\.\\.[^/]/;\nexport const typeFileRegEx = /^[^.]+\\.d\\.[cm]?ts$/;\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/constants.ts"],"sourcesContent":["export const moduleRegEx = /^[^./]|^\\.[^./]|^\\.\\.[^/]/;\nexport const typeFileRegEx = /^[^.]+\\.d\\.[cm]?ts$/;\nexport const extensions = ['.js', '.jsx', '.cjs', '.mjs', '.ts', '.tsx', '.cts', '.mts', '.es6', '.es'];\n"],"names":["moduleRegEx","typeFileRegEx","extensions"],"mappings":"AAAA,OAAO,MAAMA,cAAc,4BAA4B;AACvD,OAAO,MAAMC,gBAAgB,sBAAsB;AACnD,OAAO,MAAMC,aAAa;IAAC;IAAO;IAAQ;IAAQ;IAAQ;IAAO;IAAQ;IAAQ;IAAQ;IAAQ;CAAM,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Matcher, TSConfig } from './types.
|
|
1
|
+
import type { Matcher, TSConfig } from './types.js';
|
|
2
2
|
export default function createMatcher(tsconfig: TSConfig): Matcher;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * as constants from './constants.
|
|
2
|
-
export { default as createMatcher } from './createMatcher.
|
|
3
|
-
export { default as resolveFileSync } from './resolveFileSync.
|
|
4
|
-
export { default as toPath } from './toPath.
|
|
5
|
-
export { default as transformDirectory } from './transformDirectory.
|
|
6
|
-
export { default as transformSync } from './transformSync.
|
|
7
|
-
export { default as transformTypes } from './transformTypes.
|
|
8
|
-
export type * from './types.
|
|
1
|
+
export * as constants from './constants.js';
|
|
2
|
+
export { default as createMatcher } from './createMatcher.js';
|
|
3
|
+
export { default as resolveFileSync } from './resolveFileSync.js';
|
|
4
|
+
export { default as toPath } from './toPath.js';
|
|
5
|
+
export { default as transformDirectory } from './transformDirectory.js';
|
|
6
|
+
export { default as transformSync } from './transformSync.js';
|
|
7
|
+
export { default as transformTypes } from './transformTypes.js';
|
|
8
|
+
export type * from './types.js';
|
|
@@ -3,7 +3,8 @@ export default function parser(code, regex) {
|
|
|
3
3
|
let offset = 0;
|
|
4
4
|
let match = regex.exec(code);
|
|
5
5
|
while(match){
|
|
6
|
-
|
|
6
|
+
// Support up to 5 capture groups for declaration-specific patterns
|
|
7
|
+
const dependency = match[1] || match[2] || match[3] || match[4] || match[5];
|
|
7
8
|
parsed.push({
|
|
8
9
|
content: code.substring(offset, match.index + match[0].lastIndexOf(dependency)),
|
|
9
10
|
isSpecifier: false
|
|
@@ -1 +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;
|
|
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 // Support up to 5 capture groups for declaration-specific patterns\n const dependency = match[1] || match[2] || match[3] || match[4] || match[5];\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,mEAAmE;QACnE,MAAME,aAAaF,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE,IAAIA,KAAK,CAAC,EAAE;QAC3EF,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,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 { ConfigOptions } from '../types.
|
|
4
|
+
import type { ConfigOptions } from '../types.js';
|
|
5
5
|
export default function patchCJS(entry: Entry, output: Output, options: ConfigOptions): string;
|
package/dist/esm/lib/patchCJS.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import {
|
|
3
|
-
import { makeReplacements, replaceExtension } from './rewriteExtensions.js';
|
|
2
|
+
import { replaceExtension, rewriteExtensions } from './rewriteExtensions.js';
|
|
4
3
|
// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125
|
|
5
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; }";
|
|
6
5
|
export default function patchCJS(entry, output, options) {
|
|
7
6
|
const rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
|
|
8
|
-
if (rewrite)
|
|
9
|
-
output.code = makeReplacements(output.code, requireRegEx);
|
|
10
|
-
}
|
|
7
|
+
if (rewrite) output.code = rewriteExtensions(output.code);
|
|
11
8
|
output.code += interop;
|
|
12
9
|
return replaceExtension(path.extname(entry.basename));
|
|
13
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import path from 'path';\nimport {
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import path from 'path';\nimport { replaceExtension, rewriteExtensions } 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) output.code = rewriteExtensions(output.code);\n output.code += interop;\n\n return replaceExtension(path.extname(entry.basename));\n}\n"],"names":["path","replaceExtension","rewriteExtensions","interop","patchCJS","entry","output","options","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","extname","basename"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,yBAAyB;AAE7E,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,SAASF,OAAOO,IAAI,GAAGX,kBAAkBI,OAAOO,IAAI;IACxDP,OAAOO,IAAI,IAAIV;IAEf,OAAOF,iBAAiBD,KAAKc,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 { ConfigOptions } from '../types.
|
|
3
|
+
import type { ConfigOptions } from '../types.js';
|
|
4
4
|
export default function patchESM(entry: Entry, output: Output, options: ConfigOptions): string;
|
package/dist/esm/lib/patchESM.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import {
|
|
3
|
-
import { makeReplacements, replaceExtension } from './rewriteExtensions.js';
|
|
2
|
+
import { replaceExtension, rewriteExtensions } from './rewriteExtensions.js';
|
|
4
3
|
export default function patchESM(entry, output, options) {
|
|
5
4
|
const rewrite = (options.tsconfig.config.compilerOptions || {}).rewriteRelativeImportExtensions;
|
|
6
|
-
if (rewrite)
|
|
7
|
-
output.code = makeReplacements(output.code, importRegEx);
|
|
8
|
-
}
|
|
5
|
+
if (rewrite) output.code = rewriteExtensions(output.code);
|
|
9
6
|
return replaceExtension(path.extname(entry.basename));
|
|
10
7
|
}
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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 type { ConfigOptions } from '../types.ts';\nimport { replaceExtension, rewriteExtensions } 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) output.code = rewriteExtensions(output.code);\n\n return replaceExtension(path.extname(entry.basename));\n}\n"],"names":["path","replaceExtension","rewriteExtensions","patchESM","entry","output","options","rewrite","tsconfig","config","compilerOptions","rewriteRelativeImportExtensions","code","extname","basename"],"mappings":"AAEA,OAAOA,UAAU,OAAO;AAGxB,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,yBAAyB;AAM7E,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,SAASF,OAAOO,IAAI,GAAGV,kBAAkBG,OAAOO,IAAI;IAExD,OAAOX,iBAAiBD,KAAKa,OAAO,CAACT,MAAMU,QAAQ;AACrD"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import { moduleRegEx } from '../constants.js';
|
|
3
|
-
import parseSpecifiers from './parseSpecifiers.js';
|
|
4
1
|
export const extensions = {
|
|
5
2
|
'.ts': '.js',
|
|
6
3
|
'.tsx': '.js',
|
|
@@ -11,16 +8,12 @@ export function replaceExtension(ext) {
|
|
|
11
8
|
const replace = extensions[ext];
|
|
12
9
|
return replace === undefined ? ext : replace;
|
|
13
10
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const replace = replaceExtension(ext);
|
|
23
|
-
if (ext === replace) return specifier;
|
|
24
|
-
return `${specifier.slice(0, -ext.length)}${replace}`;
|
|
25
|
-
}).join('');
|
|
11
|
+
// Pure regex solution for rewriting TypeScript extensions to JavaScript
|
|
12
|
+
// Pattern: quote + relative path (starts with .) + TS extension + matching quote
|
|
13
|
+
const extensionPattern = /(['"`])(\.[-\w./]*?)\.(tsx?|mts|cts)\1/g;
|
|
14
|
+
export function rewriteExtensions(content) {
|
|
15
|
+
return content.replace(extensionPattern, (_match, quote, path, ext)=>{
|
|
16
|
+
const newExt = extensions[`.${ext}`];
|
|
17
|
+
return `${quote}${path}${newExt}${quote}`;
|
|
18
|
+
});
|
|
26
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/rewriteExtensions.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/rewriteExtensions.ts"],"sourcesContent":["export 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\n// Pure regex solution for rewriting TypeScript extensions to JavaScript\n// Pattern: quote + relative path (starts with .) + TS extension + matching quote\nconst extensionPattern = /(['\"`])(\\.[-\\w./]*?)\\.(tsx?|mts|cts)\\1/g;\n\nexport function rewriteExtensions(content: string): string {\n return content.replace(extensionPattern, (_match, quote, path, ext) => {\n const newExt = extensions[`.${ext}`];\n return `${quote}${path}${newExt}${quote}`;\n });\n}\n"],"names":["extensions","replaceExtension","ext","replace","undefined","extensionPattern","rewriteExtensions","content","_match","quote","path","newExt"],"mappings":"AAAA,OAAO,MAAMA,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,wEAAwE;AACxE,iFAAiF;AACjF,MAAME,mBAAmB;AAEzB,OAAO,SAASC,kBAAkBC,OAAe;IAC/C,OAAOA,QAAQJ,OAAO,CAACE,kBAAkB,CAACG,QAAQC,OAAOC,MAAMR;QAC7D,MAAMS,SAASX,UAAU,CAAC,CAAC,CAAC,EAAEE,KAAK,CAAC;QACpC,OAAO,GAAGO,QAAQC,OAAOC,SAASF,OAAO;IAC3C;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Entry } from 'fs-iterator';
|
|
2
|
-
import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.
|
|
2
|
+
import type { ConfigOptions, TargetType, TransformFileCallback } from '../types.js';
|
|
3
3
|
export default function transformFile(entry: Entry, dest: string, type: TargetType, options: ConfigOptions, callback: TransformFileCallback): undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context } from './types.
|
|
1
|
+
import type { Context } from './types.js';
|
|
2
2
|
export default function resolveFileSync(specifier: string, context?: Context): string;
|
package/dist/esm/toPath.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context } from './types.
|
|
1
|
+
import type { Context } from './types.js';
|
|
2
2
|
export default function toPath(specifier: string, context?: Context): string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.
|
|
1
|
+
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from './types.js';
|
|
2
2
|
export default function transformDirectory(src: string, dest: string, type: TargetType, options?: ConfigOptions | TransformDirectoryCallback, callback?: TransformDirectoryCallback): undefined | Promise<string[]>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TransformTypesCallback } from './types.
|
|
1
|
+
import type { ConfigOptions, TransformTypesCallback } from './types.js';
|
|
2
2
|
export default function transformTypes(src: string, dest: string, options?: ConfigOptions | TransformTypesCallback, callback?: TransformTypesCallback): undefined | Promise<string[]>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.
|
|
1
|
+
import type { ConfigOptions, TargetType, TransformDirectoryCallback } from '../types.js';
|
|
2
2
|
export default function transformDirectoryWorker(src: string, dest: string, type: TargetType, options: ConfigOptions, callback: TransformDirectoryCallback): undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ConfigOptions, TransformTypesCallback } from '../types.
|
|
1
|
+
import type { ConfigOptions, TransformTypesCallback } from '../types.js';
|
|
2
2
|
export default function transformTypesWorker(src: string, dest: string, options: ConfigOptions, callback: TransformTypesCallback): undefined;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
1
2
|
import Iterator from 'fs-iterator';
|
|
2
3
|
import Module from 'module';
|
|
3
4
|
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
4
5
|
import { typeFileRegEx } from '../constants.js';
|
|
5
6
|
import createMatcher from '../createMatcher.js';
|
|
7
|
+
import { rewriteExtensions } from '../lib/rewriteExtensions.js';
|
|
6
8
|
export default function transformTypesWorker(src, dest, options, callback) {
|
|
7
9
|
const tsconfig = options.tsconfig;
|
|
8
10
|
const matcher = createMatcher(tsconfig);
|
|
@@ -50,14 +52,13 @@ export default function transformTypesWorker(src, dest, options, callback) {
|
|
|
50
52
|
};
|
|
51
53
|
const program = ts.createProgram(programOptions);
|
|
52
54
|
const res = program.emit();
|
|
53
|
-
//
|
|
55
|
+
// TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037
|
|
54
56
|
if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {
|
|
55
|
-
const fs = _require('fs');
|
|
56
57
|
res.emittedFiles.forEach((file)=>{
|
|
57
58
|
if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {
|
|
58
59
|
try {
|
|
59
60
|
const content = fs.readFileSync(file, 'utf8');
|
|
60
|
-
const updated = content
|
|
61
|
+
const updated = rewriteExtensions(content);
|
|
61
62
|
if (updated !== content) {
|
|
62
63
|
fs.writeFileSync(file, updated, 'utf8');
|
|
63
64
|
}
|
|
@@ -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';\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/workers/transformTypes.ts"],"sourcesContent":["import fs from 'fs';\nimport Iterator, { type Entry } from 'fs-iterator';\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nimport { typeFileRegEx } from '../constants.ts';\nimport createMatcher from '../createMatcher.ts';\nimport { rewriteExtensions } from '../lib/rewriteExtensions.ts';\n\nimport type { ConfigOptions, TransformTypesCallback } from '../types.ts';\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.options,\n outDir: dest,\n noEmit: false,\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\n // TODO: remove patch for https://github.com/microsoft/TypeScript/issues/61037\n if (res.emittedFiles && compilerOptions.options.rewriteRelativeImportExtensions) {\n res.emittedFiles.forEach((file) => {\n if (file.endsWith('.d.ts') || file.endsWith('.d.cts') || file.endsWith('.d.mts')) {\n try {\n const content = fs.readFileSync(file, 'utf8');\n const updated = rewriteExtensions(content);\n if (updated !== content) {\n fs.writeFileSync(file, updated, 'utf8');\n }\n } catch (_err) {\n // Ignore errors\n }\n }\n });\n }\n callback(null, res.emittedFiles);\n }\n );\n}\n"],"names":["fs","Iterator","Module","_require","require","createRequire","url","typeFileRegEx","createMatcher","rewriteExtensions","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","noEmit","allowJs","declaration","emitDeclarationOnly","listEmittedFiles","projectReferences","references","host","createCompilerHostWorker","undefined","sys","programOptions","rootNames","configFileParsingDiagnostics","getConfigFileParsingDiagnostics","program","createProgram","res","emit","emittedFiles","rewriteRelativeImportExtensions","file","endsWith","content","readFileSync","updated","writeFileSync","_err"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,cAA8B,cAAc;AACnD,OAAOC,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,SAASG,aAAa,QAAQ,kBAAkB;AAChD,OAAOC,mBAAmB,sBAAsB;AAChD,SAASC,iBAAiB,QAAQ,8BAA8B;AAIhE,eAAe,SAASC,qBAAqBC,GAAW,EAAEC,IAAY,EAAEC,OAAsB,EAAEC,QAAgC;IAC9H,MAAMC,WAAWF,QAAQE,QAAQ;IACjC,MAAMC,UAAUR,cAAcO;IAC9B,MAAME,KAAKd,SAAS;IAEpB,MAAMe,UAAU,EAAE;IAClB,MAAMC,WAAW,IAAIlB,SAASU;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,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,gBAAgBlB,OAAO;gBAC1BuB,QAAQxB;gBACRyB,QAAQ;gBACRC,SAAS;gBACTC,aAAa;gBACbC,qBAAqB;gBACrBC,kBAAkB;YACpB;YACAC,mBAAmB3B,SAASkB,MAAM,CAACU,UAAU;QAC/C;QACA,MAAM,EAAET,SAAS,EAAErB,OAAO,EAAE6B,iBAAiB,EAAE,GAAGT;QAClD,MAAMW,OAAO3B,GAAG4B,wBAAwB,CAAChC,SAAS,gBAAgB,GAAGiC,WAAW7B,GAAG8B,GAAG;QACtF,MAAMC,iBAAiB;YACrBC,WAAWf;YACXrB;YACA6B;YACAE;YACAM,8BAA8BjC,GAAGkC,+BAA+B,CAAC;gBAAEjB;gBAAWrB;YAAQ;QACxF;QACA,MAAMuC,UAAUnC,GAAGoC,aAAa,CAACL;QACjC,MAAMM,MAAMF,QAAQG,IAAI;QAExB,8EAA8E;QAC9E,IAAID,IAAIE,YAAY,IAAIzB,gBAAgBlB,OAAO,CAAC4C,+BAA+B,EAAE;YAC/EH,IAAIE,YAAY,CAACpC,OAAO,CAAC,CAACsC;gBACxB,IAAIA,KAAKC,QAAQ,CAAC,YAAYD,KAAKC,QAAQ,CAAC,aAAaD,KAAKC,QAAQ,CAAC,WAAW;oBAChF,IAAI;wBACF,MAAMC,UAAU5D,GAAG6D,YAAY,CAACH,MAAM;wBACtC,MAAMI,UAAUrD,kBAAkBmD;wBAClC,IAAIE,YAAYF,SAAS;4BACvB5D,GAAG+D,aAAa,CAACL,MAAMI,SAAS;wBAClC;oBACF,EAAE,OAAOE,MAAM;oBACb,gBAAgB;oBAClB;gBACF;YACF;QACF;QACAlD,SAAS,MAAMwC,IAAIE,YAAY;IACjC;AAEJ"}
|