tshy 1.8.2 → 1.10.0
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 +34 -0
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +5 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/read-typescript-config.d.ts.map +1 -1
- package/dist/esm/read-typescript-config.js +2 -1
- package/dist/esm/read-typescript-config.js.map +1 -1
- package/dist/esm/tsconfig.js +9 -6
- package/dist/esm/tsconfig.js.map +1 -1
- package/dist/esm/types.d.ts +2 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/valid-exclude.d.ts +3 -0
- package/dist/esm/valid-exclude.d.ts.map +1 -0
- package/dist/esm/valid-exclude.js +13 -0
- package/dist/esm/valid-exclude.js.map +1 -0
- package/dist/esm/valid-project.d.ts +3 -0
- package/dist/esm/valid-project.d.ts.map +1 -0
- package/dist/esm/valid-project.js +16 -0
- package/dist/esm/valid-project.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -568,6 +568,20 @@ esm, use the "Dialect Switching" trick, with the ESM code living
|
|
|
568
568
|
in `src/<whatever>.ts` and the CommonJS polyfill living in
|
|
569
569
|
`src/<whatever>-cjs.cts`.
|
|
570
570
|
|
|
571
|
+
## Excluding Files Entirely From All Builds
|
|
572
|
+
|
|
573
|
+
If you want to keep some files from being processed by tshy's
|
|
574
|
+
builds entirely, you can add an `exclude` `string[]` field to the
|
|
575
|
+
`tshy` object in `package.json`. For example:
|
|
576
|
+
|
|
577
|
+
```json
|
|
578
|
+
{
|
|
579
|
+
"tshy": {
|
|
580
|
+
"exclude": ["src/**/*.test.ts"]
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
```
|
|
584
|
+
|
|
571
585
|
## Other Targets: `browser`, `deno`, etc.
|
|
572
586
|
|
|
573
587
|
If you have any other dialects that you'd like to support, you
|
|
@@ -697,6 +711,26 @@ provided for you.
|
|
|
697
711
|
Then the `tsconfig.json` file will be used as the default project
|
|
698
712
|
for code hints in VSCode, neovim, tests, etc.
|
|
699
713
|
|
|
714
|
+
### Custom `project`
|
|
715
|
+
|
|
716
|
+
Configure `tshy.project` if you want tshy to extend from a custom
|
|
717
|
+
tsconfig file. This is often useful when you have multiple
|
|
718
|
+
`tsconfig` files for different tools:
|
|
719
|
+
|
|
720
|
+
- A default `tsconfig.json` for typechecking and type-aware
|
|
721
|
+
`typescript-eslint`, specifying `"noEmit": true` and
|
|
722
|
+
`"include": ["**/*.ts"]`
|
|
723
|
+
- A `tsconfig.build.json` for compilation, with `"noEmit":
|
|
724
|
+
false`. Note that the [caveats](#tsconfigs) above still apply.
|
|
725
|
+
|
|
726
|
+
```json
|
|
727
|
+
{
|
|
728
|
+
"tshy": {
|
|
729
|
+
"project": "./tsconfig.build.json"
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
```
|
|
733
|
+
|
|
700
734
|
## `src/package.json`
|
|
701
735
|
|
|
702
736
|
As of TypeScript 5.2, the only way to emit JavaScript to ESM or
|
package/dist/esm/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,UAAU,EAAE,MAAM,YAAY,CAAA;AA2DhD,QAAA,MAAM,MAAM,EAAE,UAAoC,CAAA;AAClD,eAAe,MAAM,CAAA"}
|
package/dist/esm/config.js
CHANGED
|
@@ -5,9 +5,11 @@ import fail from './fail.js';
|
|
|
5
5
|
import pkg from './package.js';
|
|
6
6
|
import sources from './sources.js';
|
|
7
7
|
import validDialects from './valid-dialects.js';
|
|
8
|
+
import validExclude from './valid-exclude.js';
|
|
8
9
|
import validExports from './valid-exports.js';
|
|
9
10
|
import validExtraDialects from './valid-extra-dialects.js';
|
|
10
11
|
import validImports from './valid-imports.js';
|
|
12
|
+
import validProject from './valid-project.js';
|
|
11
13
|
const validBoolean = (e, name) => {
|
|
12
14
|
const v = e[name];
|
|
13
15
|
if (v === undefined || typeof v === 'boolean')
|
|
@@ -19,6 +21,8 @@ const validConfig = (e) => !!e &&
|
|
|
19
21
|
typeof e === 'object' &&
|
|
20
22
|
(e.exports === undefined || validExports(e.exports)) &&
|
|
21
23
|
(e.dialects === undefined || validDialects(e.dialects)) &&
|
|
24
|
+
(e.project === undefined || validProject(e.project)) &&
|
|
25
|
+
(e.exclude === undefined || validExclude(e.exclude)) &&
|
|
22
26
|
validExtraDialects(e) &&
|
|
23
27
|
validBoolean(e, 'selfLink') &&
|
|
24
28
|
validBoolean(e, 'main');
|
|
@@ -35,6 +39,7 @@ const getConfig = (pkg, sources) => {
|
|
|
35
39
|
delete ti.imports;
|
|
36
40
|
}
|
|
37
41
|
validImports(pkg);
|
|
42
|
+
pkg.tshy = tshy;
|
|
38
43
|
if (tshy.exports)
|
|
39
44
|
return tshy;
|
|
40
45
|
const e = {
|
|
@@ -46,7 +51,6 @@ const getConfig = (pkg, sources) => {
|
|
|
46
51
|
break;
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
|
-
pkg.tshy = tshy;
|
|
50
54
|
tshy.exports = e;
|
|
51
55
|
return tshy;
|
|
52
56
|
};
|
package/dist/esm/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,GAAG,MAAM,cAAc,CAAA;AAC9B,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAC/C,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAC7C,OAAO,kBAAkB,MAAM,2BAA2B,CAAA;AAC1D,OAAO,YAAY,MAAM,oBAAoB,CAAA;AAE7C,MAAM,YAAY,GAAG,CAAC,CAAsB,EAAE,IAAY,EAAE,EAAE;IAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;IACjB,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC1D,IAAI,CAAC,QAAQ,IAAI,8CAA8C,GAAG,CAAC,CAAC,CAAA;IACpE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,CAAM,EAAmB,EAAE,CAC9C,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,QAAQ;IACrB,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvD,kBAAkB,CAAC,CAAC,CAAC;IACrB,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;IAC3B,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEzB,MAAM,SAAS,GAAG,CAChB,GAAY,EACZ,OAAoB,EACR,EAAE;IACd,MAAM,IAAI,GAAe,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9D,MAAM,EAAE,GAAG,IAAsC,CAAA;IACjD,IAAI,EAAE,CAAC,OAAO,EAAE;QACd,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YACvB,uCAAuC,CAC1C,CAAA;QACD,GAAG,CAAC,OAAO,GAAG;YACZ,GAAG,GAAG,CAAC,OAAO;YACd,GAAG,EAAE,CAAC,OAAO;SACd,CAAA;QACD,OAAO,EAAE,CAAC,OAAO,CAAA;KAClB;IACD,YAAY,CAAC,GAAG,CAAC,CAAA;IACjB,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAC7B,MAAM,CAAC,GAA8C;QACnD,gBAAgB,EAAE,gBAAgB;KACnC,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACtC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACV,MAAK;SACN;KACF;IACD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["// get the config and package and stuff\n\nimport chalk from 'chalk'\nimport * as console from './console.js'\nimport fail from './fail.js'\nimport pkg from './package.js'\nimport sources from './sources.js'\nimport { Package, TshyConfig } from './types.js'\nimport validDialects from './valid-dialects.js'\nimport validExclude from './valid-exclude.js'\nimport validExports from './valid-exports.js'\nimport validExtraDialects from './valid-extra-dialects.js'\nimport validImports from './valid-imports.js'\nimport validProject from './valid-project.js'\n\nconst validBoolean = (e: Record<string, any>, name: string) => {\n const v = e[name]\n if (v === undefined || typeof v === 'boolean') return true\n fail(`tshy.${name} must be a boolean value if specified, got: ` + v)\n return process.exit(1)\n}\n\nconst validConfig = (e: any): e is TshyConfig =>\n !!e &&\n typeof e === 'object' &&\n (e.exports === undefined || validExports(e.exports)) &&\n (e.dialects === undefined || validDialects(e.dialects)) &&\n (e.project === undefined || validProject(e.project)) &&\n (e.exclude === undefined || validExclude(e.exclude)) &&\n validExtraDialects(e) &&\n validBoolean(e, 'selfLink') &&\n validBoolean(e, 'main')\n\nconst getConfig = (\n pkg: Package,\n sources: Set<string>\n): TshyConfig => {\n const tshy: TshyConfig = validConfig(pkg.tshy) ? pkg.tshy : {}\n const ti = tshy as TshyConfig & { imports?: any }\n if (ti.imports) {\n console.debug(\n chalk.cyan.dim('imports') +\n ' moving from tshy config to top level'\n )\n pkg.imports = {\n ...pkg.imports,\n ...ti.imports,\n }\n delete ti.imports\n }\n validImports(pkg)\n pkg.tshy = tshy\n if (tshy.exports) return tshy\n const e: Exclude<TshyConfig['exports'], undefined> = {\n './package.json': './package.json',\n }\n for (const i of sources) {\n if (/^\\.\\/src\\/index\\.[^\\.]+$/.test(i)) {\n e['.'] = i\n break\n }\n }\n tshy.exports = e\n return tshy\n}\n\nconst config: TshyConfig = getConfig(pkg, sources)\nexport default config\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-typescript-config.d.ts","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"read-typescript-config.d.ts","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,YAAY,CAAA;;AAK3B,wBASC"}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
// are jsonc.
|
|
4
4
|
import { resolve } from 'path';
|
|
5
5
|
import ts from 'typescript';
|
|
6
|
+
import config from './config.js';
|
|
6
7
|
const { readFile } = ts.sys;
|
|
7
8
|
let parsedTsConfig = undefined;
|
|
8
9
|
export default () => {
|
|
9
10
|
if (parsedTsConfig)
|
|
10
11
|
return parsedTsConfig;
|
|
11
|
-
const configPath = resolve('tsconfig.json');
|
|
12
|
+
const configPath = config.project ?? resolve('tsconfig.json');
|
|
12
13
|
const readResult = ts.readConfigFile(configPath, readFile);
|
|
13
14
|
return (parsedTsConfig = ts.parseJsonConfigFileContent(readResult.config, ts.sys, process.cwd()));
|
|
14
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-typescript-config.js","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,4DAA4D;AAC5D,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAA;AAE3B,IAAI,cAAc,GAAqC,SAAS,CAAA;AAChE,eAAe,GAAG,EAAE;IAClB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"read-typescript-config.js","sourceRoot":"","sources":["../../src/read-typescript-config.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,4DAA4D;AAC5D,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAA;AAE3B,IAAI,cAAc,GAAqC,SAAS,CAAA;AAChE,eAAe,GAAG,EAAE;IAClB,IAAI,cAAc;QAAE,OAAO,cAAc,CAAA;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC1D,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC,0BAA0B,CACpD,UAAU,CAAC,MAAM,EACjB,EAAE,CAAC,GAAG,EACN,OAAO,CAAC,GAAG,EAAE,CACd,CAAC,CAAA;AACJ,CAAC,CAAA","sourcesContent":["// read the actual configuration that tsc is using\n// Note: cannot just use JSON.parse, because ts config files\n// are jsonc.\nimport { resolve } from 'path'\nimport ts from 'typescript'\nimport config from './config.js'\nconst { readFile } = ts.sys\n\nlet parsedTsConfig: ts.ParsedCommandLine | undefined = undefined\nexport default () => {\n if (parsedTsConfig) return parsedTsConfig\n const configPath = config.project ?? resolve('tsconfig.json')\n const readResult = ts.readConfigFile(configPath, readFile)\n return (parsedTsConfig = ts.parseJsonConfigFileContent(\n readResult.config,\n ts.sys,\n process.cwd()\n ))\n}\n"]}
|
package/dist/esm/tsconfig.js
CHANGED
|
@@ -8,7 +8,8 @@ import * as console from './console.js';
|
|
|
8
8
|
import config from './config.js';
|
|
9
9
|
import polyfills from './polyfills.js';
|
|
10
10
|
import preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js';
|
|
11
|
-
const { dialects = ['esm', 'commonjs'], esmDialects = [], commonjsDialects = [], } = config;
|
|
11
|
+
const { dialects = ['esm', 'commonjs'], esmDialects = [], commonjsDialects = [], exclude = [], } = config;
|
|
12
|
+
const relativeExclude = exclude.map(e => `../${e}`);
|
|
12
13
|
const recommended = {
|
|
13
14
|
compilerOptions: {
|
|
14
15
|
declaration: true,
|
|
@@ -28,7 +29,9 @@ const recommended = {
|
|
|
28
29
|
},
|
|
29
30
|
};
|
|
30
31
|
const build = {
|
|
31
|
-
extends:
|
|
32
|
+
extends: config.project === undefined
|
|
33
|
+
? '../tsconfig.json'
|
|
34
|
+
: join('..', config.project),
|
|
32
35
|
compilerOptions: {
|
|
33
36
|
rootDir: '../src',
|
|
34
37
|
target: 'es2022',
|
|
@@ -37,7 +40,7 @@ const build = {
|
|
|
37
40
|
},
|
|
38
41
|
};
|
|
39
42
|
const commonjs = (dialect) => {
|
|
40
|
-
const exclude = ['../src/**/*.mts'];
|
|
43
|
+
const exclude = [...relativeExclude, '../src/**/*.mts'];
|
|
41
44
|
for (const [d, pf] of polyfills) {
|
|
42
45
|
if (d === dialect)
|
|
43
46
|
continue;
|
|
@@ -56,7 +59,7 @@ const commonjs = (dialect) => {
|
|
|
56
59
|
};
|
|
57
60
|
};
|
|
58
61
|
const esm = (dialect) => {
|
|
59
|
-
const exclude = [];
|
|
62
|
+
const exclude = [...relativeExclude];
|
|
60
63
|
for (const [d, pf] of polyfills) {
|
|
61
64
|
if (d === dialect)
|
|
62
65
|
continue;
|
|
@@ -67,7 +70,7 @@ const esm = (dialect) => {
|
|
|
67
70
|
return {
|
|
68
71
|
extends: './build.json',
|
|
69
72
|
include: ['../src/**/*.ts', '../src/**/*.mts', '../src/**/*.tsx'],
|
|
70
|
-
exclude,
|
|
73
|
+
exclude: exclude,
|
|
71
74
|
compilerOptions: {
|
|
72
75
|
outDir: '../.tshy-build/' + dialect,
|
|
73
76
|
},
|
|
@@ -76,7 +79,7 @@ const esm = (dialect) => {
|
|
|
76
79
|
mkdirpSync('.tshy');
|
|
77
80
|
const writeConfig = (name, data) => writeFileSync(`.tshy/${name}.json`, JSON.stringify(data, null, 2) + '\n');
|
|
78
81
|
console.debug(chalk.cyan.dim('writing tsconfig files...'));
|
|
79
|
-
if (!existsSync('tsconfig.json')) {
|
|
82
|
+
if (config.project === undefined && !existsSync('tsconfig.json')) {
|
|
80
83
|
console.debug('using recommended tsconfig.json');
|
|
81
84
|
writeConfig('../tsconfig', recommended);
|
|
82
85
|
}
|
package/dist/esm/tsconfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,uEAAuE;AACvE,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,2BAA2B,MAAM,qCAAqC,CAAA;AAE7E,MAAM,EACJ,QAAQ,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,EAC9B,WAAW,GAAG,EAAE,EAChB,gBAAgB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../src/tsconfig.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk'\nimport { mkdirpSync } from 'mkdirp'\nimport {\n existsSync,\n readdirSync,\n unlinkSync,\n writeFileSync,\n} from 'node:fs'\nimport { resolve } from 'node:path'\nimport { join } from 'node:path/posix'\nimport * as console from './console.js'\n\n// the commonjs build needs to exclude anything that will be polyfilled\nimport config from './config.js'\nimport polyfills from './polyfills.js'\nimport preventVerbatimModuleSyntax from './prevent-verbatim-module-syntax.js'\n\nconst {\n dialects = ['esm', 'commonjs'],\n esmDialects = [],\n commonjsDialects = [],\n exclude = [],\n} = config\n\nconst relativeExclude = exclude.map(e => `../${e}`)\n\nconst recommended: Record<string, any> = {\n compilerOptions: {\n declaration: true,\n declarationMap: true,\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n inlineSources: true,\n jsx: 'react',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n noUncheckedIndexedAccess: true,\n resolveJsonModule: true,\n skipLibCheck: true,\n sourceMap: true,\n strict: true,\n target: 'es2022',\n },\n}\n\nconst build: Record<string, any> = {\n extends:\n config.project === undefined\n ? '../tsconfig.json'\n : join('..', config.project),\n compilerOptions: {\n rootDir: '../src',\n target: 'es2022',\n module: 'nodenext',\n moduleResolution: 'nodenext',\n },\n}\n\nconst commonjs = (dialect: string): Record<string, any> => {\n const exclude = [...relativeExclude, '../src/**/*.mts']\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${join(f)}`)\n }\n }\n return {\n extends: './build.json',\n include: ['../src/**/*.ts', '../src/**/*.cts', '../src/**/*.tsx'],\n exclude,\n compilerOptions: {\n outDir:\n '../.tshy-build/' +\n (dialect === 'cjs' ? 'commonjs' : dialect),\n },\n }\n}\n\nconst esm = (dialect: string): Record<string, any> => {\n const exclude: string[] = [...relativeExclude]\n for (const [d, pf] of polyfills) {\n if (d === dialect) continue\n for (const f of pf.map.keys()) {\n exclude.push(`../${f}`)\n }\n }\n return {\n extends: './build.json',\n include: ['../src/**/*.ts', '../src/**/*.mts', '../src/**/*.tsx'],\n exclude: exclude,\n compilerOptions: {\n outDir: '../.tshy-build/' + dialect,\n },\n }\n}\n\nmkdirpSync('.tshy')\nconst writeConfig = (name: string, data: Record<string, any>) =>\n writeFileSync(\n `.tshy/${name}.json`,\n JSON.stringify(data, null, 2) + '\\n'\n )\n\nconsole.debug(chalk.cyan.dim('writing tsconfig files...'))\nif (config.project === undefined && !existsSync('tsconfig.json')) {\n console.debug('using recommended tsconfig.json')\n writeConfig('../tsconfig', recommended)\n} else {\n if (dialects.length > 1) preventVerbatimModuleSyntax()\n console.debug('using existing tsconfig.json')\n}\nfor (const f of readdirSync('.tshy')) {\n unlinkSync(resolve('.tshy', f))\n}\nwriteConfig('build', build)\nif (dialects.includes('commonjs')) {\n writeConfig('commonjs', commonjs('cjs'))\n for (const d of commonjsDialects) {\n writeConfig(d, commonjs(d))\n }\n}\nif (dialects.includes('esm')) {\n writeConfig('esm', esm('esm'))\n for (const d of esmDialects) {\n writeConfig(d, esm(d))\n }\n}\n"]}
|
package/dist/esm/types.d.ts
CHANGED
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,gBAAgB,CAAA;AAEvB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,OAAO,EACR,MAAM,gBAAgB,CAAA;AAEvB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAEzC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA"}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfig = {\n exports?: Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfig\n imports?: Imports\n [k: string]: any\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n ConditionalValue,\n ExportsSubpaths,\n Imports,\n} from 'resolve-import'\n\nexport type TshyConfig = {\n exports?: Record<string, TshyExport>\n dialects?: Dialect[]\n selfLink?: boolean\n main?: boolean\n commonjsDialects?: string[]\n esmDialects?: string[]\n project?: string\n exclude?: string[]\n}\n\nexport type Dialect = 'commonjs' | 'esm'\n\nexport type ExportDetail = {\n default: string\n [k: string]: string\n}\n\nexport type TshyExport = ConditionalValue\n\nexport type Package = {\n name: string\n version: string\n main?: string\n types?: string\n type?: 'module'\n bin?: string | Record<string, string>\n exports?: ExportsSubpaths\n tshy?: TshyConfig\n imports?: Imports\n [k: string]: any\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-exclude.d.ts","sourceRoot":"","sources":["../../src/valid-exclude.ts"],"names":[],"mappings":"4BAGK,GAAG;AADR,wBAgBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import fail from './fail.js';
|
|
2
|
+
export default (d) => {
|
|
3
|
+
if (!!d &&
|
|
4
|
+
Array.isArray(d) &&
|
|
5
|
+
d.length &&
|
|
6
|
+
!d.some(d => typeof d !== 'string')) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
fail(`tshy.exclude must be an array of string glob patterns if defined, ` +
|
|
10
|
+
`got: ${JSON.stringify(d)}`);
|
|
11
|
+
return process.exit(1);
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=valid-exclude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-exclude.js","sourceRoot":"","sources":["../../src/valid-exclude.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,eAAe,CACb,CAAM,EAC0C,EAAE;IAClD,IACE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EACnC;QACA,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,CACF,oEAAoE;QAClE,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAA;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC,CAAA","sourcesContent":["import fail from './fail.js'\nimport { TshyConfig } from './types.js'\nexport default (\n d: any\n): d is Exclude<TshyConfig['exclude'], undefined> => {\n if (\n !!d &&\n Array.isArray(d) &&\n d.length &&\n !d.some(d => typeof d !== 'string')\n ) {\n return true\n }\n fail(\n `tshy.exclude must be an array of string glob patterns if defined, ` +\n `got: ${JSON.stringify(d)}`\n )\n return process.exit(1)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-project.d.ts","sourceRoot":"","sources":["../../src/valid-project.ts"],"names":[],"mappings":"4BAKmB,GAAG;AAAtB,wBAaC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import fail from './fail.js';
|
|
4
|
+
export default (p) => {
|
|
5
|
+
if (typeof p === 'string') {
|
|
6
|
+
try {
|
|
7
|
+
readFileSync(resolve(p), 'utf8');
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch (_) { }
|
|
11
|
+
}
|
|
12
|
+
fail(`tshy.project must point to a tsconfig file on disk, ` +
|
|
13
|
+
`got: ${JSON.stringify(p)}`);
|
|
14
|
+
return process.exit(1);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=valid-project.js.map
|
|
@@ -0,0 +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;QACzB,IAAI;YACF,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAChC,OAAO,IAAI,CAAA;SACZ;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;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"]}
|
package/package.json
CHANGED