tshy 3.2.1 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +32 -0
  2. package/dist/esm/add-dot.d.ts.map +1 -1
  3. package/dist/esm/bin-min.d.mts.map +1 -1
  4. package/dist/esm/bin-min.mjs +18 -16
  5. package/dist/esm/bin-min.mjs.map +4 -4
  6. package/dist/esm/bins.d.ts.map +1 -1
  7. package/dist/esm/bins.js.map +1 -1
  8. package/dist/esm/build-commonjs.d.ts.map +1 -1
  9. package/dist/esm/build-commonjs.js.map +1 -1
  10. package/dist/esm/build-esm.d.ts.map +1 -1
  11. package/dist/esm/build-esm.js.map +1 -1
  12. package/dist/esm/build-fail.d.ts +1 -1
  13. package/dist/esm/build-fail.d.ts.map +1 -1
  14. package/dist/esm/build-fail.js.map +1 -1
  15. package/dist/esm/build-live-commonjs.d.ts.map +1 -1
  16. package/dist/esm/build-live-commonjs.js.map +1 -1
  17. package/dist/esm/build-live-esm.d.ts.map +1 -1
  18. package/dist/esm/build-live-esm.js.map +1 -1
  19. package/dist/esm/build.d.ts.map +1 -1
  20. package/dist/esm/build.js.map +1 -1
  21. package/dist/esm/built-imports.d.ts +1 -1
  22. package/dist/esm/built-imports.d.ts.map +1 -1
  23. package/dist/esm/built-imports.js.map +1 -1
  24. package/dist/esm/clean-build-tmp.d.ts.map +1 -1
  25. package/dist/esm/clean-build-tmp.js.map +1 -1
  26. package/dist/esm/config.d.ts.map +1 -1
  27. package/dist/esm/config.js +2 -0
  28. package/dist/esm/config.js.map +1 -1
  29. package/dist/esm/console.d.ts.map +1 -1
  30. package/dist/esm/console.js.map +1 -1
  31. package/dist/esm/dialects.d.ts.map +1 -1
  32. package/dist/esm/exports.d.ts +5 -5
  33. package/dist/esm/exports.d.ts.map +1 -1
  34. package/dist/esm/exports.js.map +1 -1
  35. package/dist/esm/fail.d.ts +1 -1
  36. package/dist/esm/fail.d.ts.map +1 -1
  37. package/dist/esm/fail.js.map +1 -1
  38. package/dist/esm/if-exist.d.ts +2 -2
  39. package/dist/esm/if-exist.d.ts.map +1 -1
  40. package/dist/esm/index.d.ts.map +1 -1
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/package.d.ts.map +1 -1
  43. package/dist/esm/package.js.map +1 -1
  44. package/dist/esm/polyfills.d.ts.map +1 -1
  45. package/dist/esm/polyfills.js.map +1 -1
  46. package/dist/esm/prevent-verbatim-module-syntax.d.ts.map +1 -1
  47. package/dist/esm/prevent-verbatim-module-syntax.js.map +1 -1
  48. package/dist/esm/read-typescript-config.d.ts +1 -2
  49. package/dist/esm/read-typescript-config.d.ts.map +1 -1
  50. package/dist/esm/read-typescript-config.js.map +1 -1
  51. package/dist/esm/resolve-export.d.ts +1 -1
  52. package/dist/esm/resolve-export.d.ts.map +1 -1
  53. package/dist/esm/resolve-export.js.map +1 -1
  54. package/dist/esm/self-link.d.ts.map +1 -1
  55. package/dist/esm/self-link.js.map +1 -1
  56. package/dist/esm/set-folder-dialect.d.ts +1 -1
  57. package/dist/esm/set-folder-dialect.d.ts.map +1 -1
  58. package/dist/esm/set-folder-dialect.js.map +1 -1
  59. package/dist/esm/sources.d.ts.map +1 -1
  60. package/dist/esm/sources.js.map +1 -1
  61. package/dist/esm/tsconfig.d.ts.map +1 -1
  62. package/dist/esm/tsconfig.js.map +1 -1
  63. package/dist/esm/types.d.ts +1 -0
  64. package/dist/esm/types.d.ts.map +1 -1
  65. package/dist/esm/types.js.map +1 -1
  66. package/dist/esm/unbuilt-imports.d.ts.map +1 -1
  67. package/dist/esm/unbuilt-imports.js.map +1 -1
  68. package/dist/esm/usage.d.ts +1 -1
  69. package/dist/esm/usage.d.ts.map +1 -1
  70. package/dist/esm/usage.js.map +1 -1
  71. package/dist/esm/valid-compiler.d.ts +3 -0
  72. package/dist/esm/valid-compiler.d.ts.map +1 -0
  73. package/dist/esm/valid-compiler.js +2 -0
  74. package/dist/esm/valid-compiler.js.map +1 -0
  75. package/dist/esm/valid-dialects.d.ts +2 -2
  76. package/dist/esm/valid-dialects.d.ts.map +1 -1
  77. package/dist/esm/valid-dialects.js.map +1 -1
  78. package/dist/esm/valid-exclude.d.ts +1 -2
  79. package/dist/esm/valid-exclude.d.ts.map +1 -1
  80. package/dist/esm/valid-exclude.js.map +1 -1
  81. package/dist/esm/valid-exports.d.ts +1 -2
  82. package/dist/esm/valid-exports.d.ts.map +1 -1
  83. package/dist/esm/valid-exports.js.map +1 -1
  84. package/dist/esm/valid-external-export.d.ts.map +1 -1
  85. package/dist/esm/valid-external-export.js.map +1 -1
  86. package/dist/esm/valid-extra-dialects.d.ts.map +1 -1
  87. package/dist/esm/valid-extra-dialects.js.map +1 -1
  88. package/dist/esm/valid-imports.d.ts.map +1 -1
  89. package/dist/esm/valid-imports.js.map +1 -1
  90. package/dist/esm/valid-project.d.ts +1 -2
  91. package/dist/esm/valid-project.d.ts.map +1 -1
  92. package/dist/esm/valid-project.js.map +1 -1
  93. package/dist/esm/watch.d.ts.map +1 -1
  94. package/dist/esm/watch.js.map +1 -1
  95. package/dist/esm/which-tsc.d.ts.map +1 -1
  96. package/dist/esm/which-tsc.js +15 -2
  97. package/dist/esm/which-tsc.js.map +1 -1
  98. package/dist/esm/write-package.d.ts.map +1 -1
  99. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"valid-imports.js","sourceRoot":"","sources":["../../src/valid-imports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,mBAAmB,MAAM,4BAA4B,CAAA;AAE5D,qCAAqC;AACrC,eAAe,CAAC,GAAY,EAAE,EAAE;IAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IACvB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1D,IAAI,CACF,0DAA0D;YACxD,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CACpC,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAA;YAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAQ;QACnC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CACF,2BAA2B,CAAC,yBAAyB;gBACnD,mDAAmD;gBACnD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACpB,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA","sourcesContent":["import fail from './fail.js'\nimport { Package } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\n// validate the package.imports field\nexport default (pkg: Package) => {\n const { imports } = pkg\n if (imports === undefined) return true\n if (Array.isArray(imports) || typeof imports !== 'object') {\n fail(\n 'invalid imports object, must be Record<string, Import>, ' +\n `got: ${JSON.stringify(imports)}`,\n )\n return process.exit(1)\n }\n\n for (const [i, v] of Object.entries(imports)) {\n if (!i.startsWith('#') || i === '#' || i.startsWith('#/')) {\n fail('invalid imports module specifier: ' + i)\n return process.exit(1)\n }\n if (typeof v === 'string') continue\n if (!validExternalExport(v)) {\n fail(\n `unbuilt package.imports ${i} must not be in ./src, ` +\n 'and imports in ./src must be string values. got: ' +\n JSON.stringify(v),\n )\n return process.exit(1)\n }\n }\n return true\n}\n"]}
1
+ {"version":3,"file":"valid-imports.js","sourceRoot":"","sources":["../../src/valid-imports.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,mBAAmB,MAAM,4BAA4B,CAAA;AAE5D,qCAAqC;AACrC,eAAe,CAAC,GAAY,EAAE,EAAE,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IACvB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1D,IAAI,CACF,0DAA0D;YACxD,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CACpC,CAAA;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAA;YAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAQ;QACnC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,CACF,2BAA2B,CAAC,yBAAyB;gBACnD,mDAAmD;gBACnD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACpB,CAAA;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AAAA,CACZ,CAAA","sourcesContent":["import fail from './fail.js'\nimport { Package } from './types.js'\nimport validExternalExport from './valid-external-export.js'\n\n// validate the package.imports field\nexport default (pkg: Package) => {\n const { imports } = pkg\n if (imports === undefined) return true\n if (Array.isArray(imports) || typeof imports !== 'object') {\n fail(\n 'invalid imports object, must be Record<string, Import>, ' +\n `got: ${JSON.stringify(imports)}`,\n )\n return process.exit(1)\n }\n\n for (const [i, v] of Object.entries(imports)) {\n if (!i.startsWith('#') || i === '#' || i.startsWith('#/')) {\n fail('invalid imports module specifier: ' + i)\n return process.exit(1)\n }\n if (typeof v === 'string') continue\n if (!validExternalExport(v)) {\n fail(\n `unbuilt package.imports ${i} must not be in ./src, ` +\n 'and imports in ./src must be string values. got: ' +\n JSON.stringify(v),\n )\n return process.exit(1)\n }\n }\n return true\n}\n"]}
@@ -1,4 +1,3 @@
1
- import { TshyConfig } from './types.js';
2
- declare const _default: (p: any) => p is TshyConfig["project"];
1
+ declare const _default: (p: unknown) => p is string | undefined;
3
2
  export default _default;
4
3
  //# sourceMappingURL=valid-project.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"valid-project.d.ts","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;yBAEvB,GAAG,GAAG,KAAG,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC;AAAnD,wBAaC"}
1
+ {"version":3,"file":"valid-project.d.ts","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":";AAKA,wBAaC","sourcesContent":["import { resolve } from 'path'\nimport { readFileSync } from 'node:fs'\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\n\nexport default (p: unknown): p is TshyConfig['project'] => {\n if (typeof p === 'string') {\n try {\n readFileSync(resolve(p), 'utf8')\n return true\n } catch (_) {}\n }\n\n fail(\n `tshy.project must point to a tsconfig file on disk, ` +\n `got: ${JSON.stringify(p)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"valid-project.js","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,eAAe,CAAC,CAAM,EAA8B,EAAE;IACpD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;IAED,IAAI,CACF,sDAAsD;QACpD,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC,CAAA","sourcesContent":["import { resolve } from 'path'\nimport { readFileSync } from 'node:fs'\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\n\nexport default (p: any): p is TshyConfig['project'] => {\n if (typeof p === 'string') {\n try {\n readFileSync(resolve(p), 'utf8')\n return true\n } catch (_) {}\n }\n\n fail(\n `tshy.project must point to a tsconfig file on disk, ` +\n `got: ${JSON.stringify(p)}`,\n )\n return process.exit(1)\n}\n"]}
1
+ {"version":3,"file":"valid-project.js","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,eAAe,CAAC,CAAU,EAA8B,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;IAED,IAAI,CACF,sDAAsD;QACpD,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAAA,CACvB,CAAA","sourcesContent":["import { resolve } from 'path'\nimport { readFileSync } from 'node:fs'\nimport fail from './fail.js'\nimport { TshyConfig } from './types.js'\n\nexport default (p: unknown): p is TshyConfig['project'] => {\n if (typeof p === 'string') {\n try {\n readFileSync(resolve(p), 'utf8')\n return true\n } catch (_) {}\n }\n\n fail(\n `tshy.project must point to a tsconfig file on disk, ` +\n `got: ${JSON.stringify(p)}`,\n )\n return process.exit(1)\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,eAAe,EAAE,MAAM,UAAU,CAAA;AAmBjD,eAAO,MAAM,OAAO,EAAE,eAWrB,CAAA;AAED,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,GAAG,QAAmB,CAAA;AACnC,eAAO,MAAM,MAAM,QAA4B,CAAA;AAC/C,eAAO,MAAM,OAAO,UAAgB,CAAA;AACpC,eAAO,MAAM,GAAG,QAAwD,CAAA;;AAExE,wBA8CC"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,eAAe,EAAE,MAAM,UAAU,CAAA;AAmBjD,eAAO,MAAM,OAAO,EAAE,eAWrB,CAAA;AAED,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,KAAK,QAAgC,CAAA;AAClD,eAAO,MAAM,GAAG,QAAmB,CAAA;AACnC,eAAO,MAAM,MAAM,QAA4B,CAAA;AAC/C,eAAO,MAAM,OAAO,UAAgB,CAAA;AACpC,eAAO,MAAM,GAAG,QAAwD,CAAA;;AAExE,wBA8CC","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport { watch, ChokidarOptions } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8')),\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: ChokidarOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(new URL('./index.js', import.meta.url))\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) {\n tshyConsole.error(chalk.red('build failure'), {\n code,\n signal,\n })\n tshyConsole.print()\n } else {\n console.log(chalk.green('build success'), { code, signal })\n }\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n // prevent infinite looping on the src dir in liveDev mode\n if (ev === 'addDir' && path === src) {\n return\n }\n\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n lastPJData = pjData()\n build()\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport { watch, ChokidarOptions } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8')),\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: ChokidarOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(new URL('./index.js', import.meta.url))\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) {\n tshyConsole.error(chalk.red('build failure'), {\n code,\n signal,\n })\n tshyConsole.print()\n } else {\n console.log(chalk.green('build success'), { code, signal })\n }\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n // prevent infinite looping on the src dir in liveDev mode\n if (ev === 'addDir' && path === src) {\n return\n }\n\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n lastPJData = pjData()\n build()\n}\n"]}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["// any time the root package.json or any typescript files in src\n// are changed/added/removed, run the build\nimport chalk from 'chalk'\nimport { spawn } from 'child_process'\nimport { watch, ChokidarOptions } from 'chokidar'\nimport { readFileSync } from 'fs'\nimport { resolve, sep } from 'path'\nimport { fileURLToPath } from 'url'\nimport * as tshyConsole from './console.js'\n\nconst pjData = (): string => {\n try {\n return JSON.stringify(\n JSON.parse(readFileSync('./package.json', 'utf8')),\n )\n /* c8 ignore start */\n } catch {\n return 'null'\n }\n /* c8 ignore stop */\n}\nlet lastPJData: string = 'null'\n\nexport const options: ChokidarOptions = {\n persistent: true,\n ignoreInitial: true,\n ignorePermissionErrors: true,\n ignored: path => {\n const r = resolve(path)\n if (r === srcPJ) return true\n if (r === srcNM) return true\n if (r.startsWith(srcNM + sep)) return true\n return false\n },\n}\n\nexport const srcPJ = resolve('./src/package.json')\nexport const srcNM = resolve('./src/node_modules')\nexport const src = resolve('./src')\nexport const rootPJ = resolve('./package.json')\nexport const targets = [src, rootPJ]\nexport const bin = fileURLToPath(new URL('./index.js', import.meta.url))\n\nexport default () => {\n let building = false\n let needRebuild = false\n const watcher = watch(targets, options)\n const build = () => {\n building = true\n needRebuild = false\n const child = spawn(process.execPath, [bin], { stdio: 'inherit' })\n child.on('close', (code, signal) => {\n if (code || signal) {\n tshyConsole.error(chalk.red('build failure'), {\n code,\n signal,\n })\n tshyConsole.print()\n } else {\n console.log(chalk.green('build success'), { code, signal })\n }\n if (needRebuild) build()\n else building = false\n })\n }\n watcher.on('all', (ev, path) => {\n // prevent infinite looping on the src dir in liveDev mode\n if (ev === 'addDir' && path === src) {\n return\n }\n\n const r = resolve(path)\n if (r === srcPJ) return\n if (r === rootPJ) {\n // check if the data actually changed\n const newData = pjData()\n /* c8 ignore next */\n if (newData === lastPJData) return\n lastPJData = newData\n }\n if (building) {\n if (r !== rootPJ) needRebuild = true\n return\n }\n tshyConsole.debug(chalk.cyan.dim(ev), path)\n build()\n })\n lastPJData = pjData()\n build()\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"which-tsc.d.ts","sourceRoot":"","sources":["../../src/which-tsc.ts"],"names":[],"mappings":";AAcA,wBAAoE"}
1
+ {"version":3,"file":"which-tsc.d.ts","sourceRoot":"","sources":["../../src/which-tsc.ts"],"names":[],"mappings":";AAgCA,wBAAkE","sourcesContent":["// find the location of the tsc binary\n// This is necessary because pnpm install trees don't expose binaries\n// of meta-deps, and it's nicer to not require that the tshy user has\n// a dep on typescript directly if they don't need it otherwise.\n// However, if they DO have a direct dep on typescript, then load the\n// tsc from their local node_modules/.bin/tsc location.\nimport { resolveImport } from 'resolve-import'\nimport { fileURLToPath } from 'url'\nimport config from './config.js'\n\nconst provider = {\n tsgo: '@typescript/native-preview',\n tsc: 'typescript',\n} as const\n\nconst pjToCompilerPath = {\n tsgo: 'bin/tsgo.js',\n tsc: 'bin/tsc',\n} as const\n\n// use theirs if possible, otherwise use tshy's\nconst resolve = async (pkg: (typeof provider)[keyof typeof provider]) =>\n await resolveImport(pkg + '/package.json', process.cwd() + '/x').catch(\n () => resolveImport(pkg + '/package.json', import.meta.url),\n )\n\nconst { compiler = 'tsc' } = config\nconst provPkg = provider[compiler]\n\nconst pjToCompiler = (pj: string) =>\n pj.slice(0, -1 * 'package.json'.length) + pjToCompilerPath[compiler]\n\nexport default pjToCompiler(fileURLToPath(await resolve(provPkg)))\n"]}
@@ -6,6 +6,19 @@
6
6
  // tsc from their local node_modules/.bin/tsc location.
7
7
  import { resolveImport } from 'resolve-import';
8
8
  import { fileURLToPath } from 'url';
9
- const resolve = async () => await resolveImport('typescript', process.cwd() + '/x').catch(() => resolveImport('typescript', import.meta.url));
10
- export default fileURLToPath(new URL('../bin/tsc', await resolve()));
9
+ import config from './config.js';
10
+ const provider = {
11
+ tsgo: '@typescript/native-preview',
12
+ tsc: 'typescript',
13
+ };
14
+ const pjToCompilerPath = {
15
+ tsgo: 'bin/tsgo.js',
16
+ tsc: 'bin/tsc',
17
+ };
18
+ // use theirs if possible, otherwise use tshy's
19
+ const resolve = async (pkg) => await resolveImport(pkg + '/package.json', process.cwd() + '/x').catch(() => resolveImport(pkg + '/package.json', import.meta.url));
20
+ const { compiler = 'tsc' } = config;
21
+ const provPkg = provider[compiler];
22
+ const pjToCompiler = (pj) => pj.slice(0, -1 * 'package.json'.length) + pjToCompilerPath[compiler];
23
+ export default pjToCompiler(fileURLToPath(await resolve(provPkg)));
11
24
  //# sourceMappingURL=which-tsc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"which-tsc.js","sourceRoot":"","sources":["../../src/which-tsc.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qEAAqE;AACrE,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,uDAAuD;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CACzB,MAAM,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CACjE,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAC7C,CAAA;AAEH,eAAe,aAAa,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC,CAAA","sourcesContent":["// find the location of the tsc binary\n// This is necessary because pnpm install trees don't expose binaries\n// of meta-deps, and it's nicer to not require that the tshy user has\n// a dep on typescript directly if they don't need it otherwise.\n// However, if they DO have a direct dep on typescript, then load the\n// tsc from their local node_modules/.bin/tsc location.\nimport { resolveImport } from 'resolve-import'\nimport { fileURLToPath } from 'url'\n\nconst resolve = async () =>\n await resolveImport('typescript', process.cwd() + '/x').catch(() =>\n resolveImport('typescript', import.meta.url),\n )\n\nexport default fileURLToPath(new URL('../bin/tsc', await resolve()))\n"]}
1
+ {"version":3,"file":"which-tsc.js","sourceRoot":"","sources":["../../src/which-tsc.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,qEAAqE;AACrE,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,uDAAuD;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,MAAM,MAAM,aAAa,CAAA;AAEhC,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,4BAA4B;IAClC,GAAG,EAAE,YAAY;CACT,CAAA;AAEV,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,SAAS;CACN,CAAA;AAEV,+CAA+C;AAC/C,MAAM,OAAO,GAAG,KAAK,EAAE,GAA6C,EAAE,EAAE,CACtE,MAAM,aAAa,CAAC,GAAG,GAAG,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,KAAK,CACpE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,GAAG,eAAe,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAC5D,CAAA;AAEH,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,MAAM,CAAA;AACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAElC,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CAClC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AAEtE,eAAe,YAAY,CAAC,aAAa,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA","sourcesContent":["// find the location of the tsc binary\n// This is necessary because pnpm install trees don't expose binaries\n// of meta-deps, and it's nicer to not require that the tshy user has\n// a dep on typescript directly if they don't need it otherwise.\n// However, if they DO have a direct dep on typescript, then load the\n// tsc from their local node_modules/.bin/tsc location.\nimport { resolveImport } from 'resolve-import'\nimport { fileURLToPath } from 'url'\nimport config from './config.js'\n\nconst provider = {\n tsgo: '@typescript/native-preview',\n tsc: 'typescript',\n} as const\n\nconst pjToCompilerPath = {\n tsgo: 'bin/tsgo.js',\n tsc: 'bin/tsc',\n} as const\n\n// use theirs if possible, otherwise use tshy's\nconst resolve = async (pkg: (typeof provider)[keyof typeof provider]) =>\n await resolveImport(pkg + '/package.json', process.cwd() + '/x').catch(\n () => resolveImport(pkg + '/package.json', import.meta.url),\n )\n\nconst { compiler = 'tsc' } = config\nconst provPkg = provider[compiler]\n\nconst pjToCompiler = (pj: string) =>\n pj.slice(0, -1 * 'package.json'.length) + pjToCompilerPath[compiler]\n\nexport default pjToCompiler(fileURLToPath(await resolve(provPkg)))\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"write-package.d.ts","sourceRoot":"","sources":["../../src/write-package.ts"],"names":[],"mappings":";AAIA,wBAAkE"}
1
+ {"version":3,"file":"write-package.d.ts","sourceRoot":"","sources":["../../src/write-package.ts"],"names":[],"mappings":";AAIA,wBAAkE","sourcesContent":["import { writeFileSync } from 'fs'\nimport { stringify } from 'polite-json'\nimport pkg from './package.js'\n\nexport default () => writeFileSync('package.json', stringify(pkg))\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tshy",
3
- "version": "3.2.1",
3
+ "version": "3.3.1",
4
4
  "description": "TypeScript HYbridizer - Hybrid (CommonJS/ESM) TypeScript node package builder",
5
5
  "author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
6
6
  "license": "BlueOak-1.0.0",
@@ -10,6 +10,7 @@
10
10
  "dist"
11
11
  ],
12
12
  "dependencies": {
13
+ "@typescript/native-preview": "^7.0.0-dev.20260218.1",
13
14
  "chalk": "^5.6.2",
14
15
  "chokidar": "^4.0.3",
15
16
  "foreground-child": "^4.0.0",
@@ -27,7 +28,7 @@
27
28
  "preversion": "npm test",
28
29
  "postversion": "npm publish",
29
30
  "prepublishOnly": "git push origin --follow-tags",
30
- "prepare": "tsc -p .tshy/esm.json && bash scripts/fixup.sh",
31
+ "prepare": "tsgo -p .tshy/esm.json && bash scripts/fixup.sh",
31
32
  "pretest": "npm run prepare",
32
33
  "presnap": "npm run prepare",
33
34
  "format": "prettier --write . --ignore-path ./.prettierignore --cache",
@@ -58,6 +59,7 @@
58
59
  "typedoc": "^0.28.14"
59
60
  },
60
61
  "tshy": {
62
+ "compiler": "tsgo",
61
63
  "dialects": [
62
64
  "esm"
63
65
  ],