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.
- package/README.md +32 -0
- package/dist/esm/add-dot.d.ts.map +1 -1
- package/dist/esm/bin-min.d.mts.map +1 -1
- package/dist/esm/bin-min.mjs +18 -16
- package/dist/esm/bin-min.mjs.map +4 -4
- package/dist/esm/bins.d.ts.map +1 -1
- package/dist/esm/bins.js.map +1 -1
- package/dist/esm/build-commonjs.d.ts.map +1 -1
- package/dist/esm/build-commonjs.js.map +1 -1
- package/dist/esm/build-esm.d.ts.map +1 -1
- package/dist/esm/build-esm.js.map +1 -1
- package/dist/esm/build-fail.d.ts +1 -1
- package/dist/esm/build-fail.d.ts.map +1 -1
- package/dist/esm/build-fail.js.map +1 -1
- package/dist/esm/build-live-commonjs.d.ts.map +1 -1
- package/dist/esm/build-live-commonjs.js.map +1 -1
- package/dist/esm/build-live-esm.d.ts.map +1 -1
- package/dist/esm/build-live-esm.js.map +1 -1
- package/dist/esm/build.d.ts.map +1 -1
- package/dist/esm/build.js.map +1 -1
- package/dist/esm/built-imports.d.ts +1 -1
- package/dist/esm/built-imports.d.ts.map +1 -1
- package/dist/esm/built-imports.js.map +1 -1
- package/dist/esm/clean-build-tmp.d.ts.map +1 -1
- package/dist/esm/clean-build-tmp.js.map +1 -1
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +2 -0
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/console.d.ts.map +1 -1
- package/dist/esm/console.js.map +1 -1
- package/dist/esm/dialects.d.ts.map +1 -1
- package/dist/esm/exports.d.ts +5 -5
- package/dist/esm/exports.d.ts.map +1 -1
- package/dist/esm/exports.js.map +1 -1
- package/dist/esm/fail.d.ts +1 -1
- package/dist/esm/fail.d.ts.map +1 -1
- package/dist/esm/fail.js.map +1 -1
- package/dist/esm/if-exist.d.ts +2 -2
- package/dist/esm/if-exist.d.ts.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.d.ts.map +1 -1
- package/dist/esm/package.js.map +1 -1
- package/dist/esm/polyfills.d.ts.map +1 -1
- package/dist/esm/polyfills.js.map +1 -1
- package/dist/esm/prevent-verbatim-module-syntax.d.ts.map +1 -1
- package/dist/esm/prevent-verbatim-module-syntax.js.map +1 -1
- package/dist/esm/read-typescript-config.d.ts +1 -2
- package/dist/esm/read-typescript-config.d.ts.map +1 -1
- package/dist/esm/read-typescript-config.js.map +1 -1
- package/dist/esm/resolve-export.d.ts +1 -1
- package/dist/esm/resolve-export.d.ts.map +1 -1
- package/dist/esm/resolve-export.js.map +1 -1
- package/dist/esm/self-link.d.ts.map +1 -1
- package/dist/esm/self-link.js.map +1 -1
- package/dist/esm/set-folder-dialect.d.ts +1 -1
- package/dist/esm/set-folder-dialect.d.ts.map +1 -1
- package/dist/esm/set-folder-dialect.js.map +1 -1
- package/dist/esm/sources.d.ts.map +1 -1
- package/dist/esm/sources.js.map +1 -1
- package/dist/esm/tsconfig.d.ts.map +1 -1
- package/dist/esm/tsconfig.js.map +1 -1
- package/dist/esm/types.d.ts +1 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/unbuilt-imports.d.ts.map +1 -1
- package/dist/esm/unbuilt-imports.js.map +1 -1
- package/dist/esm/usage.d.ts +1 -1
- package/dist/esm/usage.d.ts.map +1 -1
- package/dist/esm/usage.js.map +1 -1
- package/dist/esm/valid-compiler.d.ts +3 -0
- package/dist/esm/valid-compiler.d.ts.map +1 -0
- package/dist/esm/valid-compiler.js +2 -0
- package/dist/esm/valid-compiler.js.map +1 -0
- package/dist/esm/valid-dialects.d.ts +2 -2
- package/dist/esm/valid-dialects.d.ts.map +1 -1
- package/dist/esm/valid-dialects.js.map +1 -1
- package/dist/esm/valid-exclude.d.ts +1 -2
- package/dist/esm/valid-exclude.d.ts.map +1 -1
- package/dist/esm/valid-exclude.js.map +1 -1
- package/dist/esm/valid-exports.d.ts +1 -2
- package/dist/esm/valid-exports.d.ts.map +1 -1
- package/dist/esm/valid-exports.js.map +1 -1
- package/dist/esm/valid-external-export.d.ts.map +1 -1
- package/dist/esm/valid-external-export.js.map +1 -1
- package/dist/esm/valid-extra-dialects.d.ts.map +1 -1
- package/dist/esm/valid-extra-dialects.js.map +1 -1
- package/dist/esm/valid-imports.d.ts.map +1 -1
- package/dist/esm/valid-imports.js.map +1 -1
- package/dist/esm/valid-project.d.ts +1 -2
- package/dist/esm/valid-project.d.ts.map +1 -1
- package/dist/esm/valid-project.js.map +1 -1
- package/dist/esm/watch.d.ts.map +1 -1
- package/dist/esm/watch.js.map +1 -1
- package/dist/esm/which-tsc.d.ts.map +1 -1
- package/dist/esm/which-tsc.js +15 -2
- package/dist/esm/which-tsc.js.map +1 -1
- package/dist/esm/write-package.d.ts.map +1 -1
- 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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-project.d.ts","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":"
|
|
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,
|
|
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"]}
|
package/dist/esm/watch.d.ts.map
CHANGED
|
@@ -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"]}
|
package/dist/esm/watch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,2CAA2C;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,KAAK,EAAmB,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAE3C,MAAM,MAAM,GAAG,GAAW,EAAE;
|
|
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":";
|
|
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"]}
|
package/dist/esm/which-tsc.js
CHANGED
|
@@ -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
|
-
|
|
10
|
-
|
|
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;
|
|
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.
|
|
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": "
|
|
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
|
],
|