Comparing version 1.8.2 to 1.9.0
@@ -11,2 +11,3 @@ // get the config and package and stuff | ||
import validImports from './valid-imports.js'; | ||
import validProject from './valid-project.js'; | ||
const validBoolean = (e, name) => { | ||
@@ -23,2 +24,3 @@ const v = e[name]; | ||
(e.dialects === undefined || validDialects(e.dialects)) && | ||
(e.project === undefined || validProject(e.project)) && | ||
validExtraDialects(e) && | ||
@@ -25,0 +27,0 @@ validBoolean(e, 'selfLink') && |
@@ -6,2 +6,3 @@ // read the actual configuration that tsc is using | ||
import ts from 'typescript'; | ||
import config from './config.js'; | ||
const { readFile } = ts.sys; | ||
@@ -12,3 +13,3 @@ let parsedTsConfig = undefined; | ||
return parsedTsConfig; | ||
const configPath = resolve('tsconfig.json'); | ||
const configPath = config.project ?? resolve('tsconfig.json'); | ||
const readResult = ts.readConfigFile(configPath, readFile); | ||
@@ -15,0 +16,0 @@ return (parsedTsConfig = ts.parseJsonConfigFileContent(readResult.config, ts.sys, process.cwd())); |
@@ -31,3 +31,5 @@ import chalk from 'chalk'; | ||
const build = { | ||
extends: '../tsconfig.json', | ||
extends: config.project === undefined | ||
? '../tsconfig.json' | ||
: join('..', config.project), | ||
compilerOptions: { | ||
@@ -80,3 +82,3 @@ rootDir: '../src', | ||
console.debug(chalk.cyan.dim('writing tsconfig files...')); | ||
if (!existsSync('tsconfig.json')) { | ||
if (config.project === undefined && !existsSync('tsconfig.json')) { | ||
console.debug('using recommended tsconfig.json'); | ||
@@ -83,0 +85,0 @@ writeConfig('../tsconfig', recommended); |
@@ -9,2 +9,3 @@ import type { ConditionalValue, ExportsSubpaths, Imports } from 'resolve-import'; | ||
esmDialects?: string[]; | ||
project?: string; | ||
}; | ||
@@ -11,0 +12,0 @@ export type Dialect = 'commonjs' | 'esm'; |
{ | ||
"name": "tshy", | ||
"version": "1.8.2", | ||
"version": "1.9.0", | ||
"description": "TypeScript HYbridizer - Hybrid (CommonJS/ESM) TypeScript node package builder", | ||
@@ -5,0 +5,0 @@ "author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)", |
@@ -700,2 +700,22 @@ # tshy - TypeScript HYbridizer | ||
### Custom `project` | ||
Configure `tshy.project` if you want tshy to extend from a custom | ||
tsconfig file. This is often useful when you have multiple | ||
`tsconfig` files for different tools: | ||
- A default `tsconfig.json` for typechecking and type-aware | ||
`typescript-eslint`, specifying `"noEmit": true` and | ||
`"include": ["**/*.ts"]` | ||
- A `tsconfig.build.json` for compilation, with `"noEmit": | ||
false`. Note that the [caveats](#tsconfigs) above still apply. | ||
```json | ||
{ | ||
"tshy": { | ||
"project": "./tsconfig.build.json" | ||
} | ||
} | ||
``` | ||
## `src/package.json` | ||
@@ -702,0 +722,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
171114
139
1335
822