- Allow a custom dialect to exist in both
esmDialectsandcommonjsDialects - Support overriding for default
esmas well as other dialects, by using-esm.mtsas the suffix. - Support overrides for both the CommonJS and ESM forms of a
custom dialect at the same time, using the
-${name}.tsfilename suffix. - Change the arrangement of output in the
distfolder and configurations in the.tshyfolder, to facilitate dialect export conditions that have both CommonJS and ESM forms. - Support
nodeas a custom dialect, so that overrides can be created to target Node specifically.
- Start using TypeScript version 6. This is a breaking change
because it imposes new restrictions on configs and some
language features. If upgrading causes build failures, the
easiest fix is to remove your
tsconfig.jsonfile, so that tshy will generate a new one.
- Add
compileroption to opt intotsgoin preview beta
- Ship a minified bundle, so that the load time is significantly faster.
- Parse tsconfig files using a JSONC parser and some basic
extendslogic, rather than pulling in all of typescript.
- Improve resilience against file locking when removing
.tshy-buildtemp dir on Windows - Use the
tscbinary from the project-localtypescriptdependency, if present. (But still do not require it.)
- Drop support for nodes before 20
- No longer create a
sourceexport automatically - Limit custom
sourceDialectsexports to only those that match the package type. For example, do not export source under arequirecondition if the package.json is"type": "module". - Treat
compositeandincrementalthe same, sincecompositeimpliesincremental.
- Add
sourceDialects
- Add
modulefield if a top-levelesmexport exists for subpath".", andtshy.moduleis not set to false.
- Upgrade to TypeScript 5.5
- Add
liveDevoption - Add
"source"export condition
- Do not fail if sourcemaps are not generated
- Support glob patterns in
tshy.exports - Add support for TypeScript 5.4
- Take
targetfromtsconfig.jsonif present, rather than hard-coding in thebuild.jsonconfig. - Find
tscwhere pnpm hides it.
- Respect
package.jsontype field if set to"commonjs" - Ignore
package.jsonchanges intshy --watchif the data itself did not change.
- Add support for TypeScript 5.3
- Preserve indentation/newlines in
package.jsonfiles
- Exclude sources from all builds via the
excludeconfig setting.
- Set a custom tsconfig file via the
projectconfig setting.
- Support
"incremental": truetsconfig option, making the build directory persistent if there are*.tsbuildinfofiles present. - Rename build directory from '.tshy-build-tmp' to '.tshy-build', since it's not temporary if incremental builds are used.
- Make the
selfLinkbest-effort if not explicitly true or false.
- Prevent
verbatimModuleSyntaxts config if building for both ESM and CommonJS, as it's fundamentally incompatible - Add
--watchoption - Add
--helpoption
- put all imports in top-level imports field (2023-10-19)
- Add
tshy.importsconfig
- Add
tshy.esmDialectsandtshy.commonjsDialectsconfigs - Use more complete package/import/export types defined by the
resolve-importpackage
- Default
tshy.main = trueif a'.'CommonJS export is present
- Initial experimental support for
tshy.main - Add
tshy.selfLinkconfig to suppress the internal symlink
- Add support for local package imports/exports
- Initial version