ts-swc-transform 1.11.1 → 1.11.3

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.
@@ -2,10 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, /**
6
- * @param {TsConfigResult} tsconfig The configuration.
7
- * @returns {(filePath:string) => boolean} The function to test for typescript files being included or excluded
8
- */ "default", {
5
+ Object.defineProperty(exports, "default", {
9
6
  enumerable: true,
10
7
  get: function() {
11
8
  return createMatcher;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/createMatcher.ts"],"sourcesContent":["import type { TsConfigResult } from 'get-tsconfig-compat';\nimport minimatch from 'minimatch';\nimport path from 'path-posix';\nimport unixify from 'unixify';\nimport loadTsConfig from './loadTsConfig';\n\n/**\n * @param {TsConfigResult} tsconfig The configuration.\n * @returns {(filePath:string) => boolean} The function to test for typescript files being included or excluded\n */\nexport default function createMatcher(tsConfig: TsConfigResult) {\n const tsconfig = loadTsConfig({ tsconfig: tsConfig }, 'transformTypes');\n const tsconfigPath = path.dirname(unixify(tsconfig.path));\n\n function matchFn(condition) {\n let pattern = unixify(condition);\n if (!path.isAbsolute(pattern) && !pattern.startsWith('*')) pattern = path.join(tsconfigPath, pattern);\n\n return function match(filePath) {\n return filePath.startsWith(pattern) || minimatch(filePath, pattern);\n };\n }\n\n const includes = (tsconfig.config.include || []).map(matchFn);\n const excludes = (tsconfig.config.exclude || []).map(matchFn);\n\n return function matcher(filePath: string): boolean {\n if (filePath.endsWith('.json')) return false;\n\n filePath = unixify(filePath);\n for (let i = 0; i < excludes.length; ++i) {\n if (excludes[i](filePath)) return false;\n }\n for (let j = 0; j < includes.length; ++j) {\n if (includes[j](filePath)) return true;\n }\n return !includes.length;\n };\n}\n"],"names":["createMatcher","tsConfig","tsconfig","loadTsConfig","tsconfigPath","path","dirname","unixify","matchFn","condition","pattern","isAbsolute","startsWith","join","match","filePath","minimatch","includes","config","include","map","excludes","exclude","matcher","endsWith","i","length","j"],"mappings":";;;;+BAMA;;;CAGC,GACD;;;eAAwBA;;;gEATF;gEACL;8DACG;mEACK;;;;;;AAMV,SAASA,cAAcC,QAAwB;IAC5D,IAAMC,WAAWC,IAAAA,qBAAY,EAAC;QAAED,UAAUD;IAAS,GAAG;IACtD,IAAMG,eAAeC,kBAAI,CAACC,OAAO,CAACC,IAAAA,gBAAO,EAACL,SAASG,IAAI;IAEvD,SAASG,QAAQC,SAAS;QACxB,IAAIC,UAAUH,IAAAA,gBAAO,EAACE;QACtB,IAAI,CAACJ,kBAAI,CAACM,UAAU,CAACD,YAAY,CAACA,QAAQE,UAAU,CAAC,MAAMF,UAAUL,kBAAI,CAACQ,IAAI,CAACT,cAAcM;QAE7F,OAAO,SAASI,MAAMC,QAAQ;YAC5B,OAAOA,SAASH,UAAU,CAACF,YAAYM,IAAAA,kBAAS,EAACD,UAAUL;QAC7D;IACF;IAEA,IAAMO,WAAW,AAACf,CAAAA,SAASgB,MAAM,CAACC,OAAO,IAAI,EAAE,AAAD,EAAGC,GAAG,CAACZ;IACrD,IAAMa,WAAW,AAACnB,CAAAA,SAASgB,MAAM,CAACI,OAAO,IAAI,EAAE,AAAD,EAAGF,GAAG,CAACZ;IAErD,OAAO,SAASe,QAAQR,QAAgB;QACtC,IAAIA,SAASS,QAAQ,CAAC,UAAU,OAAO;QAEvCT,WAAWR,IAAAA,gBAAO,EAACQ;QACnB,IAAK,IAAIU,IAAI,GAAGA,IAAIJ,SAASK,MAAM,EAAE,EAAED,EAAG;YACxC,IAAIJ,QAAQ,CAACI,EAAE,CAACV,WAAW,OAAO;QACpC;QACA,IAAK,IAAIY,IAAI,GAAGA,IAAIV,SAASS,MAAM,EAAE,EAAEC,EAAG;YACxC,IAAIV,QAAQ,CAACU,EAAE,CAACZ,WAAW,OAAO;QACpC;QACA,OAAO,CAACE,SAASS,MAAM;IACzB;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/createMatcher.ts"],"sourcesContent":["import minimatch from 'minimatch';\nimport path from 'path-posix';\nimport unixify from 'unixify';\nimport loadTsConfig from './loadTsConfig';\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nimport type { Matcher } from './types';\n\nexport default function createMatcher(tsConfig: TsConfigResult): Matcher {\n const tsconfig = loadTsConfig({ tsconfig: tsConfig }, 'transformTypes');\n const tsconfigPath = path.dirname(unixify(tsconfig.path));\n\n function matchFn(condition) {\n let pattern = unixify(condition);\n if (!path.isAbsolute(pattern) && !pattern.startsWith('*')) pattern = path.join(tsconfigPath, pattern);\n\n return function match(filePath) {\n return filePath.startsWith(pattern) || minimatch(filePath, pattern);\n };\n }\n\n const includes = (tsconfig.config.include || []).map(matchFn);\n const excludes = (tsconfig.config.exclude || []).map(matchFn);\n\n return function matcher(filePath) {\n if (filePath.endsWith('.json')) return false;\n\n filePath = unixify(filePath);\n for (let i = 0; i < excludes.length; ++i) {\n if (excludes[i](filePath)) return false;\n }\n for (let j = 0; j < includes.length; ++j) {\n if (includes[j](filePath)) return true;\n }\n return !includes.length;\n };\n}\n"],"names":["createMatcher","tsConfig","tsconfig","loadTsConfig","tsconfigPath","path","dirname","unixify","matchFn","condition","pattern","isAbsolute","startsWith","join","match","filePath","minimatch","includes","config","include","map","excludes","exclude","matcher","endsWith","i","length","j"],"mappings":";;;;+BAQA;;;eAAwBA;;;gEARF;gEACL;8DACG;mEACK;;;;;;AAKV,SAASA,cAAcC,QAAwB;IAC5D,IAAMC,WAAWC,IAAAA,qBAAY,EAAC;QAAED,UAAUD;IAAS,GAAG;IACtD,IAAMG,eAAeC,kBAAI,CAACC,OAAO,CAACC,IAAAA,gBAAO,EAACL,SAASG,IAAI;IAEvD,SAASG,QAAQC,SAAS;QACxB,IAAIC,UAAUH,IAAAA,gBAAO,EAACE;QACtB,IAAI,CAACJ,kBAAI,CAACM,UAAU,CAACD,YAAY,CAACA,QAAQE,UAAU,CAAC,MAAMF,UAAUL,kBAAI,CAACQ,IAAI,CAACT,cAAcM;QAE7F,OAAO,SAASI,MAAMC,QAAQ;YAC5B,OAAOA,SAASH,UAAU,CAACF,YAAYM,IAAAA,kBAAS,EAACD,UAAUL;QAC7D;IACF;IAEA,IAAMO,WAAW,AAACf,CAAAA,SAASgB,MAAM,CAACC,OAAO,IAAI,EAAE,AAAD,EAAGC,GAAG,CAACZ;IACrD,IAAMa,WAAW,AAACnB,CAAAA,SAASgB,MAAM,CAACI,OAAO,IAAI,EAAE,AAAD,EAAGF,GAAG,CAACZ;IAErD,OAAO,SAASe,QAAQR,QAAQ;QAC9B,IAAIA,SAASS,QAAQ,CAAC,UAAU,OAAO;QAEvCT,WAAWR,IAAAA,gBAAO,EAACQ;QACnB,IAAK,IAAIU,IAAI,GAAGA,IAAIJ,SAASK,MAAM,EAAE,EAAED,EAAG;YACxC,IAAIJ,QAAQ,CAACI,EAAE,CAACV,WAAW,OAAO;QACpC;QACA,IAAK,IAAIY,IAAI,GAAGA,IAAIV,SAASS,MAAM,EAAE,EAAEC,EAAG;YACxC,IAAIV,QAAQ,CAACU,EAAE,CAACZ,WAAW,OAAO;QACpC;QACA,OAAO,CAACE,SAASS,MAAM;IACzB;AACF"}
@@ -18,9 +18,9 @@ function _interop_require_default(obj) {
18
18
  }
19
19
  // https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125
20
20
  var interopClientDefaultExport = "/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }";
21
+ var DEFAULT_EXTENSION = '.cjs';
21
22
  function patchCJS(output, options, _basename) {
22
- var _options_extensions;
23
- var cjsExtension = ((_options_extensions = options.extensions) === null || _options_extensions === void 0 ? void 0 : _options_extensions.cjs) || '';
23
+ var cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;
24
24
  output.code = (0, _makeReplacements.default)(output.code, _constants.requireRegEx, _extensions.default, cjsExtension);
25
25
  output.code += interopClientDefaultExport;
26
26
  return cjsExtension;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import { requireRegEx } from '../constants';\nimport extensions from '../extensions';\nimport makeReplacements from './makeReplacements';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\n\nexport default function patchCJS(output, options, _basename) {\n const cjsExtension = options.extensions?.cjs || '';\n\n output.code = makeReplacements(output.code, requireRegEx, extensions, cjsExtension);\n output.code += interopClientDefaultExport;\n\n return cjsExtension;\n}\n"],"names":["patchCJS","interopClientDefaultExport","output","options","_basename","cjsExtension","extensions","cjs","code","makeReplacements","requireRegEx"],"mappings":";;;;+BAOA;;;eAAwBA;;;yBAPK;iEACN;uEACM;;;;;;AAE7B,0HAA0H;AAC1H,IAAMC,6BAA6B;AAEpB,SAASD,SAASE,MAAM,EAAEC,OAAO,EAAEC,SAAS;QACpCD;IAArB,IAAME,eAAeF,EAAAA,sBAAAA,QAAQG,UAAU,cAAlBH,0CAAAA,oBAAoBI,GAAG,KAAI;IAEhDL,OAAOM,IAAI,GAAGC,IAAAA,yBAAgB,EAACP,OAAOM,IAAI,EAAEE,uBAAY,EAAEJ,mBAAU,EAAED;IACtEH,OAAOM,IAAI,IAAIP;IAEf,OAAOI;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import { requireRegEx } from '../constants';\nimport extensions from '../extensions';\nimport makeReplacements from './makeReplacements';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\nconst DEFAULT_EXTENSION = '.cjs';\n\nexport default function patchCJS(output, options, _basename) {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;\n\n output.code = makeReplacements(output.code, requireRegEx, extensions, cjsExtension);\n output.code += interopClientDefaultExport;\n\n return cjsExtension;\n}\n"],"names":["patchCJS","interopClientDefaultExport","DEFAULT_EXTENSION","output","options","_basename","cjsExtension","extensions","cjs","code","makeReplacements","requireRegEx"],"mappings":";;;;+BAQA;;;eAAwBA;;;yBARK;iEACN;uEACM;;;;;;AAE7B,0HAA0H;AAC1H,IAAMC,6BAA6B;AACnC,IAAMC,oBAAoB;AAEX,SAASF,SAASG,MAAM,EAAEC,OAAO,EAAEC,SAAS;IACzD,IAAMC,eAAe,AAACF,CAAAA,QAAQG,UAAU,GAAGH,QAAQG,UAAU,CAACC,GAAG,GAAGN,iBAAgB,KAAMA;IAE1FC,OAAOM,IAAI,GAAGC,IAAAA,yBAAgB,EAACP,OAAOM,IAAI,EAAEE,uBAAY,EAAEJ,mBAAU,EAAED;IACtEH,OAAOM,IAAI,IAAIR;IAEf,OAAOK;AACT"}
@@ -27,10 +27,11 @@ var esmExtensions = [
27
27
  '.mts',
28
28
  '.mjs'
29
29
  ];
30
+ var DEFAULT_EXTENSION_CJS = '.cjs';
31
+ var _DEFAULT_EXTENSION_EMS = '.mjs';
30
32
  function patchESM(output, options, basename) {
31
- var _options_extensions, _options_extensions1;
32
- var cjsExtension = ((_options_extensions = options.extensions) === null || _options_extensions === void 0 ? void 0 : _options_extensions.cjs) || '.cjs';
33
- var esmExtension = ((_options_extensions1 = options.extensions) === null || _options_extensions1 === void 0 ? void 0 : _options_extensions1.esm) || '.mjs';
33
+ var cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;
34
+ var esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;
34
35
  output.code = (0, _makeReplacements.default)(output.code, _constants.importRegEx, esmExtensions, esmExtension);
35
36
  output.code = (0, _makeReplacements.default)(output.code, _constants.importRegEx, cjsExtensions, cjsExtension);
36
37
  var ext = _path.default.extname(basename);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchESM.ts"],"sourcesContent":["import path from 'path';\nimport { importRegEx } from '../constants';\nimport makeReplacements from './makeReplacements';\n\nconst cjsExtensions = ['.cjs', '.cts'];\nconst esmExtensions = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\n\nexport default function patchESM(output, options, basename) {\n const cjsExtension = options.extensions?.cjs || '.cjs';\n const esmExtension = options.extensions?.esm || '.mjs';\n\n output.code = makeReplacements(output.code, importRegEx, esmExtensions, esmExtension);\n output.code = makeReplacements(output.code, importRegEx, cjsExtensions, cjsExtension);\n\n let ext = path.extname(basename);\n if (cjsExtensions.indexOf(ext) >= 0) ext = cjsExtension;\n else if (esmExtensions.indexOf(ext) >= 0) ext = esmExtension;\n return ext;\n}\n"],"names":["patchESM","cjsExtensions","esmExtensions","output","options","basename","cjsExtension","extensions","cjs","esmExtension","esm","code","makeReplacements","importRegEx","ext","path","extname","indexOf"],"mappings":";;;;+BAOA;;;eAAwBA;;;2DAPP;yBACW;uEACC;;;;;;AAE7B,IAAMC,gBAAgB;IAAC;IAAQ;CAAO;AACtC,IAAMC,gBAAgB;IAAC;IAAO;IAAO;IAAQ;IAAQ;CAAO;AAE7C,SAASF,SAASG,MAAM,EAAEC,OAAO,EAAEC,QAAQ;QACnCD,qBACAA;IADrB,IAAME,eAAeF,EAAAA,sBAAAA,QAAQG,UAAU,cAAlBH,0CAAAA,oBAAoBI,GAAG,KAAI;IAChD,IAAMC,eAAeL,EAAAA,uBAAAA,QAAQG,UAAU,cAAlBH,2CAAAA,qBAAoBM,GAAG,KAAI;IAEhDP,OAAOQ,IAAI,GAAGC,IAAAA,yBAAgB,EAACT,OAAOQ,IAAI,EAAEE,sBAAW,EAAEX,eAAeO;IACxEN,OAAOQ,IAAI,GAAGC,IAAAA,yBAAgB,EAACT,OAAOQ,IAAI,EAAEE,sBAAW,EAAEZ,eAAeK;IAExE,IAAIQ,MAAMC,aAAI,CAACC,OAAO,CAACX;IACvB,IAAIJ,cAAcgB,OAAO,CAACH,QAAQ,GAAGA,MAAMR;SACtC,IAAIJ,cAAce,OAAO,CAACH,QAAQ,GAAGA,MAAML;IAChD,OAAOK;AACT"}
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 cjsExtensions = ['.cjs', '.cts'];\nconst esmExtensions = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\n\nconst DEFAULT_EXTENSION_CJS = '.cjs';\nconst _DEFAULT_EXTENSION_EMS = '.mjs';\n\nexport default function patchESM(output, options, basename) {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;\n const esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;\n\n output.code = makeReplacements(output.code, importRegEx, esmExtensions, esmExtension);\n output.code = makeReplacements(output.code, importRegEx, cjsExtensions, cjsExtension);\n\n let ext = path.extname(basename);\n if (cjsExtensions.indexOf(ext) >= 0) ext = cjsExtension;\n else if (esmExtensions.indexOf(ext) >= 0) ext = esmExtension;\n return ext;\n}\n"],"names":["patchESM","cjsExtensions","esmExtensions","DEFAULT_EXTENSION_CJS","_DEFAULT_EXTENSION_EMS","output","options","basename","cjsExtension","extensions","cjs","esmExtension","esm","code","makeReplacements","importRegEx","ext","path","extname","indexOf"],"mappings":";;;;+BAUA;;;eAAwBA;;;2DAVP;yBACW;uEACC;;;;;;AAE7B,IAAMC,gBAAgB;IAAC;IAAQ;CAAO;AACtC,IAAMC,gBAAgB;IAAC;IAAO;IAAO;IAAQ;IAAQ;CAAO;AAE5D,IAAMC,wBAAwB;AAC9B,IAAMC,yBAAyB;AAEhB,SAASJ,SAASK,MAAM,EAAEC,OAAO,EAAEC,QAAQ;IACxD,IAAMC,eAAe,AAACF,CAAAA,QAAQG,UAAU,GAAGH,QAAQG,UAAU,CAACC,GAAG,GAAGP,qBAAoB,KAAMA;IAC9F,IAAMQ,eAAe,AAACL,CAAAA,QAAQG,UAAU,GAAGH,QAAQG,UAAU,CAACG,GAAG,GAAGT,qBAAoB,KAAMA;IAE9FE,OAAOQ,IAAI,GAAGC,IAAAA,yBAAgB,EAACT,OAAOQ,IAAI,EAAEE,sBAAW,EAAEb,eAAeS;IACxEN,OAAOQ,IAAI,GAAGC,IAAAA,yBAAgB,EAACT,OAAOQ,IAAI,EAAEE,sBAAW,EAAEd,eAAeO;IAExE,IAAIQ,MAAMC,aAAI,CAACC,OAAO,CAACX;IACvB,IAAIN,cAAckB,OAAO,CAACH,QAAQ,GAAGA,MAAMR;SACtC,IAAIN,cAAciB,OAAO,CAACH,QAAQ,GAAGA,MAAML;IAChD,OAAOK;AACT"}
@@ -23,26 +23,29 @@ var indexExtensions = _extensions.default.map(function(x) {
23
23
  });
24
24
  function resolveFileSync(specifier, context) {
25
25
  var filePath = (0, _toPath.default)(specifier, context);
26
- var ext = _path.default.extname(filePath);
27
- var stats;
26
+ var stat;
28
27
  try {
29
- stats = _fs.default.statSync(filePath);
28
+ stat = _fs.default.statSync(filePath);
30
29
  } catch (_err) {}
31
- if ((stats === null || stats === void 0 ? void 0 : stats.isDirectory()) || specifier.endsWith('/')) {
32
- var items = _fs.default.readdirSync(filePath);
33
- var item = items.find(function(x) {
34
- return indexExtensions.indexOf(x) >= 0;
35
- });
36
- if (item) return _path.default.join(filePath, item);
37
- } else if (!stats || !ext && !_constants.moduleRegEx.test(specifier)) {
38
- var fileName = _path.default.basename(filePath).replace(/(\.[^/.]+)+$/, '');
39
- var items1 = _fs.default.readdirSync(_path.default.dirname(filePath));
40
- var item1 = items1.find(function(x) {
41
- return x.startsWith(fileName) && !_constants.typeFileRegEx.test(x) && _extensions.default.indexOf(_path.default.extname(x)) >= 0;
42
- });
43
- if (item1) return _path.default.join(_path.default.dirname(filePath), item1);
30
+ try {
31
+ if (stat && stat.isDirectory() || specifier.endsWith('/')) {
32
+ var items = _fs.default.readdirSync(filePath);
33
+ var item = items.find(function(x) {
34
+ return indexExtensions.indexOf(x) >= 0;
35
+ });
36
+ if (item) return _path.default.join(filePath, item);
37
+ } else if (!stat && !_constants.moduleRegEx.test(specifier)) {
38
+ var fileName = _path.default.basename(filePath).replace(/(\.[^/.]+)+$/, '');
39
+ var items1 = _fs.default.readdirSync(_path.default.dirname(filePath));
40
+ var item1 = items1.find(function(x) {
41
+ return x.startsWith(fileName) && !_constants.typeFileRegEx.test(x) && _extensions.default.indexOf(_path.default.extname(x)) >= 0;
42
+ });
43
+ if (item1) return _path.default.join(_path.default.dirname(filePath), item1);
44
+ }
45
+ // return what was found
46
+ return stat ? filePath : null;
47
+ } catch (_err) {
48
+ return null;
44
49
  }
45
- // return what was found
46
- return stats ? filePath : null;
47
50
  }
48
51
  /* 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/resolveFileSync.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { moduleRegEx, typeFileRegEx } from './constants';\nimport extensions from './extensions';\nimport toPath from './toPath';\nimport type { Context } from './types';\n\nconst indexExtensions = extensions.map((x) => `index${x}`);\n\nexport default function resolveFileSync(specifier: string, context?: Context) {\n const filePath = toPath(specifier, context);\n const ext = path.extname(filePath);\n\n let stats: fs.Stats | undefined;\n try {\n stats = fs.statSync(filePath);\n } catch (_err) {}\n\n if (stats?.isDirectory() || specifier.endsWith('/')) {\n const items = fs.readdirSync(filePath);\n const item = items.find((x) => indexExtensions.indexOf(x) >= 0);\n if (item) return path.join(filePath, item);\n }\n\n // look up the extension\n else if (!stats || (!ext && !moduleRegEx.test(specifier))) {\n const fileName = path.basename(filePath).replace(/(\\.[^/.]+)+$/, '');\n const items = fs.readdirSync(path.dirname(filePath));\n const item = items.find((x) => x.startsWith(fileName) && !typeFileRegEx.test(x) && extensions.indexOf(path.extname(x)) >= 0);\n if (item) return path.join(path.dirname(filePath), item);\n }\n\n // return what was found\n return stats ? filePath : null;\n}\n"],"names":["resolveFileSync","indexExtensions","extensions","map","x","specifier","context","filePath","toPath","ext","path","extname","stats","fs","statSync","_err","isDirectory","endsWith","items","readdirSync","item","find","indexOf","join","moduleRegEx","test","fileName","basename","replace","dirname","startsWith","typeFileRegEx"],"mappings":";;;;+BASA;;;eAAwBA;;;yDATT;2DACE;yBAC0B;iEACpB;6DACJ;;;;;;AAGnB,IAAMC,kBAAkBC,mBAAU,CAACC,GAAG,CAAC,SAACC;WAAM,AAAC,QAAS,OAAFA;;AAEvC,SAASJ,gBAAgBK,SAAiB,EAAEC,OAAiB;IAC1E,IAAMC,WAAWC,IAAAA,eAAM,EAACH,WAAWC;IACnC,IAAMG,MAAMC,aAAI,CAACC,OAAO,CAACJ;IAEzB,IAAIK;IACJ,IAAI;QACFA,QAAQC,WAAE,CAACC,QAAQ,CAACP;IACtB,EAAE,OAAOQ,MAAM,CAAC;IAEhB,IAAIH,CAAAA,kBAAAA,4BAAAA,MAAOI,WAAW,OAAMX,UAAUY,QAAQ,CAAC,MAAM;QACnD,IAAMC,QAAQL,WAAE,CAACM,WAAW,CAACZ;QAC7B,IAAMa,OAAOF,MAAMG,IAAI,CAAC,SAACjB;mBAAMH,gBAAgBqB,OAAO,CAAClB,MAAM;;QAC7D,IAAIgB,MAAM,OAAOV,aAAI,CAACa,IAAI,CAAChB,UAAUa;IACvC,OAGK,IAAI,CAACR,SAAU,CAACH,OAAO,CAACe,sBAAW,CAACC,IAAI,CAACpB,YAAa;QACzD,IAAMqB,WAAWhB,aAAI,CAACiB,QAAQ,CAACpB,UAAUqB,OAAO,CAAC,gBAAgB;QACjE,IAAMV,SAAQL,WAAE,CAACM,WAAW,CAACT,aAAI,CAACmB,OAAO,CAACtB;QAC1C,IAAMa,QAAOF,OAAMG,IAAI,CAAC,SAACjB;mBAAMA,EAAE0B,UAAU,CAACJ,aAAa,CAACK,wBAAa,CAACN,IAAI,CAACrB,MAAMF,mBAAU,CAACoB,OAAO,CAACZ,aAAI,CAACC,OAAO,CAACP,OAAO;;QAC1H,IAAIgB,OAAM,OAAOV,aAAI,CAACa,IAAI,CAACb,aAAI,CAACmB,OAAO,CAACtB,WAAWa;IACrD;IAEA,wBAAwB;IACxB,OAAOR,QAAQL,WAAW;AAC5B"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/resolveFileSync.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { moduleRegEx, typeFileRegEx } from './constants';\nimport extensions from './extensions';\nimport toPath from './toPath';\nimport type { Context } from './types';\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\n try {\n if ((stat && stat.isDirectory()) || specifier.endsWith('/')) {\n const items = fs.readdirSync(filePath);\n const item = items.find((x) => indexExtensions.indexOf(x) >= 0);\n if (item) return path.join(filePath, item);\n } else if (!stat && !moduleRegEx.test(specifier)) {\n const fileName = path.basename(filePath).replace(/(\\.[^/.]+)+$/, '');\n const items = fs.readdirSync(path.dirname(filePath));\n const item = items.find((x) => x.startsWith(fileName) && !typeFileRegEx.test(x) && extensions.indexOf(path.extname(x)) >= 0);\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":["resolveFileSync","indexExtensions","extensions","map","x","specifier","context","filePath","toPath","stat","fs","statSync","_err","isDirectory","endsWith","items","readdirSync","item","find","indexOf","path","join","moduleRegEx","test","fileName","basename","replace","dirname","startsWith","typeFileRegEx","extname"],"mappings":";;;;+BASA;;;eAAwBA;;;yDATT;2DACE;yBAC0B;iEACpB;6DACJ;;;;;;AAGnB,IAAMC,kBAAkBC,mBAAU,CAACC,GAAG,CAAC,SAACC;WAAM,AAAC,QAAS,OAAFA;;AAEvC,SAASJ,gBAAgBK,SAAiB,EAAEC,OAAiB;IAC1E,IAAMC,WAAWC,IAAAA,eAAM,EAACH,WAAWC;IACnC,IAAIG;IACJ,IAAI;QACFA,OAAOC,WAAE,CAACC,QAAQ,CAACJ;IACrB,EAAE,OAAOK,MAAM,CAAC;IAEhB,IAAI;QACF,IAAI,AAACH,QAAQA,KAAKI,WAAW,MAAOR,UAAUS,QAAQ,CAAC,MAAM;YAC3D,IAAMC,QAAQL,WAAE,CAACM,WAAW,CAACT;YAC7B,IAAMU,OAAOF,MAAMG,IAAI,CAAC,SAACd;uBAAMH,gBAAgBkB,OAAO,CAACf,MAAM;;YAC7D,IAAIa,MAAM,OAAOG,aAAI,CAACC,IAAI,CAACd,UAAUU;QACvC,OAAO,IAAI,CAACR,QAAQ,CAACa,sBAAW,CAACC,IAAI,CAAClB,YAAY;YAChD,IAAMmB,WAAWJ,aAAI,CAACK,QAAQ,CAAClB,UAAUmB,OAAO,CAAC,gBAAgB;YACjE,IAAMX,SAAQL,WAAE,CAACM,WAAW,CAACI,aAAI,CAACO,OAAO,CAACpB;YAC1C,IAAMU,QAAOF,OAAMG,IAAI,CAAC,SAACd;uBAAMA,EAAEwB,UAAU,CAACJ,aAAa,CAACK,wBAAa,CAACN,IAAI,CAACnB,MAAMF,mBAAU,CAACiB,OAAO,CAACC,aAAI,CAACU,OAAO,CAAC1B,OAAO;;YAC1H,IAAIa,OAAM,OAAOG,aAAI,CAACC,IAAI,CAACD,aAAI,CAACO,OAAO,CAACpB,WAAWU;QACrD;QACA,wBAAwB;QACxB,OAAOR,OAAOF,WAAW;IAC3B,EAAE,OAAOK,MAAM;QACb,OAAO;IACT;AACF"}
@@ -2,10 +2,7 @@ import minimatch from 'minimatch';
2
2
  import path from 'path-posix';
3
3
  import unixify from 'unixify';
4
4
  import loadTsConfig from './loadTsConfig.mjs';
5
- /**
6
- * @param {TsConfigResult} tsconfig The configuration.
7
- * @returns {(filePath:string) => boolean} The function to test for typescript files being included or excluded
8
- */ export default function createMatcher(tsConfig) {
5
+ export default function createMatcher(tsConfig) {
9
6
  const tsconfig = loadTsConfig({
10
7
  tsconfig: tsConfig
11
8
  }, 'transformTypes');
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/createMatcher.ts"],"sourcesContent":["import type { TsConfigResult } from 'get-tsconfig-compat';\nimport minimatch from 'minimatch';\nimport path from 'path-posix';\nimport unixify from 'unixify';\nimport loadTsConfig from './loadTsConfig';\n\n/**\n * @param {TsConfigResult} tsconfig The configuration.\n * @returns {(filePath:string) => boolean} The function to test for typescript files being included or excluded\n */\nexport default function createMatcher(tsConfig: TsConfigResult) {\n const tsconfig = loadTsConfig({ tsconfig: tsConfig }, 'transformTypes');\n const tsconfigPath = path.dirname(unixify(tsconfig.path));\n\n function matchFn(condition) {\n let pattern = unixify(condition);\n if (!path.isAbsolute(pattern) && !pattern.startsWith('*')) pattern = path.join(tsconfigPath, pattern);\n\n return function match(filePath) {\n return filePath.startsWith(pattern) || minimatch(filePath, pattern);\n };\n }\n\n const includes = (tsconfig.config.include || []).map(matchFn);\n const excludes = (tsconfig.config.exclude || []).map(matchFn);\n\n return function matcher(filePath: string): boolean {\n if (filePath.endsWith('.json')) return false;\n\n filePath = unixify(filePath);\n for (let i = 0; i < excludes.length; ++i) {\n if (excludes[i](filePath)) return false;\n }\n for (let j = 0; j < includes.length; ++j) {\n if (includes[j](filePath)) return true;\n }\n return !includes.length;\n };\n}\n"],"names":["minimatch","path","unixify","loadTsConfig","createMatcher","tsConfig","tsconfig","tsconfigPath","dirname","matchFn","condition","pattern","isAbsolute","startsWith","join","match","filePath","includes","config","include","map","excludes","exclude","matcher","endsWith","i","length","j"],"mappings":"AACA,OAAOA,eAAe,YAAY;AAClC,OAAOC,UAAU,aAAa;AAC9B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,kBAAkB,iBAAiB;AAE1C;;;CAGC,GACD,eAAe,SAASC,cAAcC,QAAwB;IAC5D,MAAMC,WAAWH,aAAa;QAAEG,UAAUD;IAAS,GAAG;IACtD,MAAME,eAAeN,KAAKO,OAAO,CAACN,QAAQI,SAASL,IAAI;IAEvD,SAASQ,QAAQC,SAAS;QACxB,IAAIC,UAAUT,QAAQQ;QACtB,IAAI,CAACT,KAAKW,UAAU,CAACD,YAAY,CAACA,QAAQE,UAAU,CAAC,MAAMF,UAAUV,KAAKa,IAAI,CAACP,cAAcI;QAE7F,OAAO,SAASI,MAAMC,QAAQ;YAC5B,OAAOA,SAASH,UAAU,CAACF,YAAYX,UAAUgB,UAAUL;QAC7D;IACF;IAEA,MAAMM,WAAW,AAACX,CAAAA,SAASY,MAAM,CAACC,OAAO,IAAI,EAAE,AAAD,EAAGC,GAAG,CAACX;IACrD,MAAMY,WAAW,AAACf,CAAAA,SAASY,MAAM,CAACI,OAAO,IAAI,EAAE,AAAD,EAAGF,GAAG,CAACX;IAErD,OAAO,SAASc,QAAQP,QAAgB;QACtC,IAAIA,SAASQ,QAAQ,CAAC,UAAU,OAAO;QAEvCR,WAAWd,QAAQc;QACnB,IAAK,IAAIS,IAAI,GAAGA,IAAIJ,SAASK,MAAM,EAAE,EAAED,EAAG;YACxC,IAAIJ,QAAQ,CAACI,EAAE,CAACT,WAAW,OAAO;QACpC;QACA,IAAK,IAAIW,IAAI,GAAGA,IAAIV,SAASS,MAAM,EAAE,EAAEC,EAAG;YACxC,IAAIV,QAAQ,CAACU,EAAE,CAACX,WAAW,OAAO;QACpC;QACA,OAAO,CAACC,SAASS,MAAM;IACzB;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/createMatcher.ts"],"sourcesContent":["import minimatch from 'minimatch';\nimport path from 'path-posix';\nimport unixify from 'unixify';\nimport loadTsConfig from './loadTsConfig';\n\nimport type { TsConfigResult } from 'get-tsconfig-compat';\nimport type { Matcher } from './types';\n\nexport default function createMatcher(tsConfig: TsConfigResult): Matcher {\n const tsconfig = loadTsConfig({ tsconfig: tsConfig }, 'transformTypes');\n const tsconfigPath = path.dirname(unixify(tsconfig.path));\n\n function matchFn(condition) {\n let pattern = unixify(condition);\n if (!path.isAbsolute(pattern) && !pattern.startsWith('*')) pattern = path.join(tsconfigPath, pattern);\n\n return function match(filePath) {\n return filePath.startsWith(pattern) || minimatch(filePath, pattern);\n };\n }\n\n const includes = (tsconfig.config.include || []).map(matchFn);\n const excludes = (tsconfig.config.exclude || []).map(matchFn);\n\n return function matcher(filePath) {\n if (filePath.endsWith('.json')) return false;\n\n filePath = unixify(filePath);\n for (let i = 0; i < excludes.length; ++i) {\n if (excludes[i](filePath)) return false;\n }\n for (let j = 0; j < includes.length; ++j) {\n if (includes[j](filePath)) return true;\n }\n return !includes.length;\n };\n}\n"],"names":["minimatch","path","unixify","loadTsConfig","createMatcher","tsConfig","tsconfig","tsconfigPath","dirname","matchFn","condition","pattern","isAbsolute","startsWith","join","match","filePath","includes","config","include","map","excludes","exclude","matcher","endsWith","i","length","j"],"mappings":"AAAA,OAAOA,eAAe,YAAY;AAClC,OAAOC,UAAU,aAAa;AAC9B,OAAOC,aAAa,UAAU;AAC9B,OAAOC,kBAAkB,iBAAiB;AAK1C,eAAe,SAASC,cAAcC,QAAwB;IAC5D,MAAMC,WAAWH,aAAa;QAAEG,UAAUD;IAAS,GAAG;IACtD,MAAME,eAAeN,KAAKO,OAAO,CAACN,QAAQI,SAASL,IAAI;IAEvD,SAASQ,QAAQC,SAAS;QACxB,IAAIC,UAAUT,QAAQQ;QACtB,IAAI,CAACT,KAAKW,UAAU,CAACD,YAAY,CAACA,QAAQE,UAAU,CAAC,MAAMF,UAAUV,KAAKa,IAAI,CAACP,cAAcI;QAE7F,OAAO,SAASI,MAAMC,QAAQ;YAC5B,OAAOA,SAASH,UAAU,CAACF,YAAYX,UAAUgB,UAAUL;QAC7D;IACF;IAEA,MAAMM,WAAW,AAACX,CAAAA,SAASY,MAAM,CAACC,OAAO,IAAI,EAAE,AAAD,EAAGC,GAAG,CAACX;IACrD,MAAMY,WAAW,AAACf,CAAAA,SAASY,MAAM,CAACI,OAAO,IAAI,EAAE,AAAD,EAAGF,GAAG,CAACX;IAErD,OAAO,SAASc,QAAQP,QAAQ;QAC9B,IAAIA,SAASQ,QAAQ,CAAC,UAAU,OAAO;QAEvCR,WAAWd,QAAQc;QACnB,IAAK,IAAIS,IAAI,GAAGA,IAAIJ,SAASK,MAAM,EAAE,EAAED,EAAG;YACxC,IAAIJ,QAAQ,CAACI,EAAE,CAACT,WAAW,OAAO;QACpC;QACA,IAAK,IAAIW,IAAI,GAAGA,IAAIV,SAASS,MAAM,EAAE,EAAEC,EAAG;YACxC,IAAIV,QAAQ,CAACU,EAAE,CAACX,WAAW,OAAO;QACpC;QACA,OAAO,CAACC,SAASS,MAAM;IACzB;AACF"}
@@ -3,8 +3,9 @@ import extensions from '../extensions.mjs';
3
3
  import makeReplacements from './makeReplacements.mjs';
4
4
  // https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125
5
5
  const interopClientDefaultExport = "/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }";
6
+ const DEFAULT_EXTENSION = '.cjs';
6
7
  export default function patchCJS(output, options, _basename) {
7
- const cjsExtension = options.extensions?.cjs || '';
8
+ const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;
8
9
  output.code = makeReplacements(output.code, requireRegEx, extensions, cjsExtension);
9
10
  output.code += interopClientDefaultExport;
10
11
  return cjsExtension;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import { requireRegEx } from '../constants';\nimport extensions from '../extensions';\nimport makeReplacements from './makeReplacements';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\n\nexport default function patchCJS(output, options, _basename) {\n const cjsExtension = options.extensions?.cjs || '';\n\n output.code = makeReplacements(output.code, requireRegEx, extensions, cjsExtension);\n output.code += interopClientDefaultExport;\n\n return cjsExtension;\n}\n"],"names":["requireRegEx","extensions","makeReplacements","interopClientDefaultExport","patchCJS","output","options","_basename","cjsExtension","cjs","code"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,OAAOC,gBAAgB,gBAAgB;AACvC,OAAOC,sBAAsB,qBAAqB;AAElD,0HAA0H;AAC1H,MAAMC,6BAA6B;AAEnC,eAAe,SAASC,SAASC,MAAM,EAAEC,OAAO,EAAEC,SAAS;IACzD,MAAMC,eAAeF,QAAQL,UAAU,EAAEQ,OAAO;IAEhDJ,OAAOK,IAAI,GAAGR,iBAAiBG,OAAOK,IAAI,EAAEV,cAAcC,YAAYO;IACtEH,OAAOK,IAAI,IAAIP;IAEf,OAAOK;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchCJS.ts"],"sourcesContent":["import { requireRegEx } from '../constants';\nimport extensions from '../extensions';\nimport makeReplacements from './makeReplacements';\n\n// https://github.com/vercel/next.js/blob/20b63e13ab2631d6043277895d373aa31a1b327c/packages/next/taskfile-swc.js#L118-L125\nconst interopClientDefaultExport = \"/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }\";\nconst DEFAULT_EXTENSION = '.cjs';\n\nexport default function patchCJS(output, options, _basename) {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION) || DEFAULT_EXTENSION;\n\n output.code = makeReplacements(output.code, requireRegEx, extensions, cjsExtension);\n output.code += interopClientDefaultExport;\n\n return cjsExtension;\n}\n"],"names":["requireRegEx","extensions","makeReplacements","interopClientDefaultExport","DEFAULT_EXTENSION","patchCJS","output","options","_basename","cjsExtension","cjs","code"],"mappings":"AAAA,SAASA,YAAY,QAAQ,eAAe;AAC5C,OAAOC,gBAAgB,gBAAgB;AACvC,OAAOC,sBAAsB,qBAAqB;AAElD,0HAA0H;AAC1H,MAAMC,6BAA6B;AACnC,MAAMC,oBAAoB;AAE1B,eAAe,SAASC,SAASC,MAAM,EAAEC,OAAO,EAAEC,SAAS;IACzD,MAAMC,eAAe,AAACF,CAAAA,QAAQN,UAAU,GAAGM,QAAQN,UAAU,CAACS,GAAG,GAAGN,iBAAgB,KAAMA;IAE1FE,OAAOK,IAAI,GAAGT,iBAAiBI,OAAOK,IAAI,EAAEX,cAAcC,YAAYQ;IACtEH,OAAOK,IAAI,IAAIR;IAEf,OAAOM;AACT"}
@@ -12,9 +12,11 @@ const esmExtensions = [
12
12
  '.mts',
13
13
  '.mjs'
14
14
  ];
15
+ const DEFAULT_EXTENSION_CJS = '.cjs';
16
+ const _DEFAULT_EXTENSION_EMS = '.mjs';
15
17
  export default function patchESM(output, options, basename) {
16
- const cjsExtension = options.extensions?.cjs || '.cjs';
17
- const esmExtension = options.extensions?.esm || '.mjs';
18
+ const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;
19
+ const esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;
18
20
  output.code = makeReplacements(output.code, importRegEx, esmExtensions, esmExtension);
19
21
  output.code = makeReplacements(output.code, importRegEx, cjsExtensions, cjsExtension);
20
22
  let ext = path.extname(basename);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/lib/patchESM.ts"],"sourcesContent":["import path from 'path';\nimport { importRegEx } from '../constants';\nimport makeReplacements from './makeReplacements';\n\nconst cjsExtensions = ['.cjs', '.cts'];\nconst esmExtensions = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\n\nexport default function patchESM(output, options, basename) {\n const cjsExtension = options.extensions?.cjs || '.cjs';\n const esmExtension = options.extensions?.esm || '.mjs';\n\n output.code = makeReplacements(output.code, importRegEx, esmExtensions, esmExtension);\n output.code = makeReplacements(output.code, importRegEx, cjsExtensions, cjsExtension);\n\n let ext = path.extname(basename);\n if (cjsExtensions.indexOf(ext) >= 0) ext = cjsExtension;\n else if (esmExtensions.indexOf(ext) >= 0) ext = esmExtension;\n return ext;\n}\n"],"names":["path","importRegEx","makeReplacements","cjsExtensions","esmExtensions","patchESM","output","options","basename","cjsExtension","extensions","cjs","esmExtension","esm","code","ext","extname","indexOf"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,WAAW,QAAQ,eAAe;AAC3C,OAAOC,sBAAsB,qBAAqB;AAElD,MAAMC,gBAAgB;IAAC;IAAQ;CAAO;AACtC,MAAMC,gBAAgB;IAAC;IAAO;IAAO;IAAQ;IAAQ;CAAO;AAE5D,eAAe,SAASC,SAASC,MAAM,EAAEC,OAAO,EAAEC,QAAQ;IACxD,MAAMC,eAAeF,QAAQG,UAAU,EAAEC,OAAO;IAChD,MAAMC,eAAeL,QAAQG,UAAU,EAAEG,OAAO;IAEhDP,OAAOQ,IAAI,GAAGZ,iBAAiBI,OAAOQ,IAAI,EAAEb,aAAaG,eAAeQ;IACxEN,OAAOQ,IAAI,GAAGZ,iBAAiBI,OAAOQ,IAAI,EAAEb,aAAaE,eAAeM;IAExE,IAAIM,MAAMf,KAAKgB,OAAO,CAACR;IACvB,IAAIL,cAAcc,OAAO,CAACF,QAAQ,GAAGA,MAAMN;SACtC,IAAIL,cAAca,OAAO,CAACF,QAAQ,GAAGA,MAAMH;IAChD,OAAOG;AACT"}
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 cjsExtensions = ['.cjs', '.cts'];\nconst esmExtensions = ['.js', '.ts', '.tsx', '.mts', '.mjs'];\n\nconst DEFAULT_EXTENSION_CJS = '.cjs';\nconst _DEFAULT_EXTENSION_EMS = '.mjs';\n\nexport default function patchESM(output, options, basename) {\n const cjsExtension = (options.extensions ? options.extensions.cjs : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;\n const esmExtension = (options.extensions ? options.extensions.esm : DEFAULT_EXTENSION_CJS) || DEFAULT_EXTENSION_CJS;\n\n output.code = makeReplacements(output.code, importRegEx, esmExtensions, esmExtension);\n output.code = makeReplacements(output.code, importRegEx, cjsExtensions, cjsExtension);\n\n let ext = path.extname(basename);\n if (cjsExtensions.indexOf(ext) >= 0) ext = cjsExtension;\n else if (esmExtensions.indexOf(ext) >= 0) ext = esmExtension;\n return ext;\n}\n"],"names":["path","importRegEx","makeReplacements","cjsExtensions","esmExtensions","DEFAULT_EXTENSION_CJS","_DEFAULT_EXTENSION_EMS","patchESM","output","options","basename","cjsExtension","extensions","cjs","esmExtension","esm","code","ext","extname","indexOf"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,WAAW,QAAQ,eAAe;AAC3C,OAAOC,sBAAsB,qBAAqB;AAElD,MAAMC,gBAAgB;IAAC;IAAQ;CAAO;AACtC,MAAMC,gBAAgB;IAAC;IAAO;IAAO;IAAQ;IAAQ;CAAO;AAE5D,MAAMC,wBAAwB;AAC9B,MAAMC,yBAAyB;AAE/B,eAAe,SAASC,SAASC,MAAM,EAAEC,OAAO,EAAEC,QAAQ;IACxD,MAAMC,eAAe,AAACF,CAAAA,QAAQG,UAAU,GAAGH,QAAQG,UAAU,CAACC,GAAG,GAAGR,qBAAoB,KAAMA;IAC9F,MAAMS,eAAe,AAACL,CAAAA,QAAQG,UAAU,GAAGH,QAAQG,UAAU,CAACG,GAAG,GAAGV,qBAAoB,KAAMA;IAE9FG,OAAOQ,IAAI,GAAGd,iBAAiBM,OAAOQ,IAAI,EAAEf,aAAaG,eAAeU;IACxEN,OAAOQ,IAAI,GAAGd,iBAAiBM,OAAOQ,IAAI,EAAEf,aAAaE,eAAeQ;IAExE,IAAIM,MAAMjB,KAAKkB,OAAO,CAACR;IACvB,IAAIP,cAAcgB,OAAO,CAACF,QAAQ,GAAGA,MAAMN;SACtC,IAAIP,cAAce,OAAO,CAACF,QAAQ,GAAGA,MAAMH;IAChD,OAAOG;AACT"}
@@ -6,21 +6,24 @@ import toPath from './toPath.mjs';
6
6
  const indexExtensions = extensions.map((x)=>`index${x}`);
7
7
  export default function resolveFileSync(specifier, context) {
8
8
  const filePath = toPath(specifier, context);
9
- const ext = path.extname(filePath);
10
- let stats;
9
+ let stat;
11
10
  try {
12
- stats = fs.statSync(filePath);
11
+ stat = fs.statSync(filePath);
13
12
  } catch (_err) {}
14
- if (stats?.isDirectory() || specifier.endsWith('/')) {
15
- const items = fs.readdirSync(filePath);
16
- const item = items.find((x)=>indexExtensions.indexOf(x) >= 0);
17
- if (item) return path.join(filePath, item);
18
- } else if (!stats || !ext && !moduleRegEx.test(specifier)) {
19
- const fileName = path.basename(filePath).replace(/(\.[^/.]+)+$/, '');
20
- const items = fs.readdirSync(path.dirname(filePath));
21
- const item = items.find((x)=>x.startsWith(fileName) && !typeFileRegEx.test(x) && extensions.indexOf(path.extname(x)) >= 0);
22
- if (item) return path.join(path.dirname(filePath), item);
13
+ try {
14
+ if (stat && stat.isDirectory() || specifier.endsWith('/')) {
15
+ const items = fs.readdirSync(filePath);
16
+ const item = items.find((x)=>indexExtensions.indexOf(x) >= 0);
17
+ if (item) return path.join(filePath, item);
18
+ } else if (!stat && !moduleRegEx.test(specifier)) {
19
+ const fileName = path.basename(filePath).replace(/(\.[^/.]+)+$/, '');
20
+ const items = fs.readdirSync(path.dirname(filePath));
21
+ const item = items.find((x)=>x.startsWith(fileName) && !typeFileRegEx.test(x) && extensions.indexOf(path.extname(x)) >= 0);
22
+ if (item) return path.join(path.dirname(filePath), item);
23
+ }
24
+ // return what was found
25
+ return stat ? filePath : null;
26
+ } catch (_err) {
27
+ return null;
23
28
  }
24
- // return what was found
25
- return stats ? filePath : null;
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/resolveFileSync.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { moduleRegEx, typeFileRegEx } from './constants';\nimport extensions from './extensions';\nimport toPath from './toPath';\nimport type { Context } from './types';\n\nconst indexExtensions = extensions.map((x) => `index${x}`);\n\nexport default function resolveFileSync(specifier: string, context?: Context) {\n const filePath = toPath(specifier, context);\n const ext = path.extname(filePath);\n\n let stats: fs.Stats | undefined;\n try {\n stats = fs.statSync(filePath);\n } catch (_err) {}\n\n if (stats?.isDirectory() || specifier.endsWith('/')) {\n const items = fs.readdirSync(filePath);\n const item = items.find((x) => indexExtensions.indexOf(x) >= 0);\n if (item) return path.join(filePath, item);\n }\n\n // look up the extension\n else if (!stats || (!ext && !moduleRegEx.test(specifier))) {\n const fileName = path.basename(filePath).replace(/(\\.[^/.]+)+$/, '');\n const items = fs.readdirSync(path.dirname(filePath));\n const item = items.find((x) => x.startsWith(fileName) && !typeFileRegEx.test(x) && extensions.indexOf(path.extname(x)) >= 0);\n if (item) return path.join(path.dirname(filePath), item);\n }\n\n // return what was found\n return stats ? filePath : null;\n}\n"],"names":["fs","path","moduleRegEx","typeFileRegEx","extensions","toPath","indexExtensions","map","x","resolveFileSync","specifier","context","filePath","ext","extname","stats","statSync","_err","isDirectory","endsWith","items","readdirSync","item","find","indexOf","join","test","fileName","basename","replace","dirname","startsWith"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,SAASC,WAAW,EAAEC,aAAa,QAAQ,cAAc;AACzD,OAAOC,gBAAgB,eAAe;AACtC,OAAOC,YAAY,WAAW;AAG9B,MAAMC,kBAAkBF,WAAWG,GAAG,CAAC,CAACC,IAAM,CAAC,KAAK,EAAEA,GAAG;AAEzD,eAAe,SAASC,gBAAgBC,SAAiB,EAAEC,OAAiB;IAC1E,MAAMC,WAAWP,OAAOK,WAAWC;IACnC,MAAME,MAAMZ,KAAKa,OAAO,CAACF;IAEzB,IAAIG;IACJ,IAAI;QACFA,QAAQf,GAAGgB,QAAQ,CAACJ;IACtB,EAAE,OAAOK,MAAM,CAAC;IAEhB,IAAIF,OAAOG,iBAAiBR,UAAUS,QAAQ,CAAC,MAAM;QACnD,MAAMC,QAAQpB,GAAGqB,WAAW,CAACT;QAC7B,MAAMU,OAAOF,MAAMG,IAAI,CAAC,CAACf,IAAMF,gBAAgBkB,OAAO,CAAChB,MAAM;QAC7D,IAAIc,MAAM,OAAOrB,KAAKwB,IAAI,CAACb,UAAUU;IACvC,OAGK,IAAI,CAACP,SAAU,CAACF,OAAO,CAACX,YAAYwB,IAAI,CAAChB,YAAa;QACzD,MAAMiB,WAAW1B,KAAK2B,QAAQ,CAAChB,UAAUiB,OAAO,CAAC,gBAAgB;QACjE,MAAMT,QAAQpB,GAAGqB,WAAW,CAACpB,KAAK6B,OAAO,CAAClB;QAC1C,MAAMU,OAAOF,MAAMG,IAAI,CAAC,CAACf,IAAMA,EAAEuB,UAAU,CAACJ,aAAa,CAACxB,cAAcuB,IAAI,CAAClB,MAAMJ,WAAWoB,OAAO,CAACvB,KAAKa,OAAO,CAACN,OAAO;QAC1H,IAAIc,MAAM,OAAOrB,KAAKwB,IAAI,CAACxB,KAAK6B,OAAO,CAAClB,WAAWU;IACrD;IAEA,wBAAwB;IACxB,OAAOP,QAAQH,WAAW;AAC5B"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/typescript/ts-swc-transform/src/resolveFileSync.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { moduleRegEx, typeFileRegEx } from './constants';\nimport extensions from './extensions';\nimport toPath from './toPath';\nimport type { Context } from './types';\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\n try {\n if ((stat && stat.isDirectory()) || specifier.endsWith('/')) {\n const items = fs.readdirSync(filePath);\n const item = items.find((x) => indexExtensions.indexOf(x) >= 0);\n if (item) return path.join(filePath, item);\n } else if (!stat && !moduleRegEx.test(specifier)) {\n const fileName = path.basename(filePath).replace(/(\\.[^/.]+)+$/, '');\n const items = fs.readdirSync(path.dirname(filePath));\n const item = items.find((x) => x.startsWith(fileName) && !typeFileRegEx.test(x) && extensions.indexOf(path.extname(x)) >= 0);\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","path","moduleRegEx","typeFileRegEx","extensions","toPath","indexExtensions","map","x","resolveFileSync","specifier","context","filePath","stat","statSync","_err","isDirectory","endsWith","items","readdirSync","item","find","indexOf","join","test","fileName","basename","replace","dirname","startsWith","extname"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,SAASC,WAAW,EAAEC,aAAa,QAAQ,cAAc;AACzD,OAAOC,gBAAgB,eAAe;AACtC,OAAOC,YAAY,WAAW;AAG9B,MAAMC,kBAAkBF,WAAWG,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,OAAOb,GAAGc,QAAQ,CAACF;IACrB,EAAE,OAAOG,MAAM,CAAC;IAEhB,IAAI;QACF,IAAI,AAACF,QAAQA,KAAKG,WAAW,MAAON,UAAUO,QAAQ,CAAC,MAAM;YAC3D,MAAMC,QAAQlB,GAAGmB,WAAW,CAACP;YAC7B,MAAMQ,OAAOF,MAAMG,IAAI,CAAC,CAACb,IAAMF,gBAAgBgB,OAAO,CAACd,MAAM;YAC7D,IAAIY,MAAM,OAAOnB,KAAKsB,IAAI,CAACX,UAAUQ;QACvC,OAAO,IAAI,CAACP,QAAQ,CAACX,YAAYsB,IAAI,CAACd,YAAY;YAChD,MAAMe,WAAWxB,KAAKyB,QAAQ,CAACd,UAAUe,OAAO,CAAC,gBAAgB;YACjE,MAAMT,QAAQlB,GAAGmB,WAAW,CAAClB,KAAK2B,OAAO,CAAChB;YAC1C,MAAMQ,OAAOF,MAAMG,IAAI,CAAC,CAACb,IAAMA,EAAEqB,UAAU,CAACJ,aAAa,CAACtB,cAAcqB,IAAI,CAAChB,MAAMJ,WAAWkB,OAAO,CAACrB,KAAK6B,OAAO,CAACtB,OAAO;YAC1H,IAAIY,MAAM,OAAOnB,KAAKsB,IAAI,CAACtB,KAAK2B,OAAO,CAAChB,WAAWQ;QACrD;QACA,wBAAwB;QACxB,OAAOP,OAAOD,WAAW;IAC3B,EAAE,OAAOG,MAAM;QACb,OAAO;IACT;AACF"}
@@ -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"],"names":[],"mappings":"AAaA,WAAiF"}
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,6 +1,3 @@
1
1
  import type { TsConfigResult } from 'get-tsconfig-compat';
2
- /**
3
- * @param {TsConfigResult} tsconfig The configuration.
4
- * @returns {(filePath:string) => boolean} The function to test for typescript files being included or excluded
5
- */
6
- export default function createMatcher(tsConfig: TsConfigResult): (filePath: string) => boolean;
2
+ import type { Matcher } from './types';
3
+ export default function createMatcher(tsConfig: TsConfigResult): Matcher;
@@ -10,3 +10,4 @@ export interface ConfigOptions {
10
10
  export type TransformDirectoryCallback = (err?: Error, filePaths?: string[]) => void;
11
11
  export type TransformFileCallback = (err?: Error, destFilePath?: string) => void;
12
12
  export type TransformTypesCallback = (err?: Error, filePaths?: string[]) => void;
13
+ export type Matcher = (filePath: string) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-swc-transform",
3
- "version": "1.11.1",
3
+ "version": "1.11.3",
4
4
  "description": "Typescript transformers for swc. Supports Node >= 0.8",
5
5
  "keywords": [
6
6
  "matcher",