Skip to content

Commit

Permalink
deps: bump Rollup peerDep to 3.7.5+, remove tech debt
Browse files Browse the repository at this point in the history
- 3.7.5 includes rollup/rollup@ffab4cd
  - which fixes the duplicate error logging upstream and allows us to remove the `buildEnd` workaround
- 2.60.0 includes `this.load`, so can remove the `satisfies` check
- 2.14.0 includes `this.meta.watchMode`, so can remove the env check

- remove deprecated `rollupCommonJSResolveHack`
  - it hasn't done anything since 6fb0e75 in late 2020 (~2.5 years ago)
  - and has been formally deprecated since 74f6761 over a year ago
- remove `objectHashIgnoreUnknownHack` warning
  - hasn't been needed for async functions since 9afc8df in early 2020 (~3.5 years ago)
    - so I think that's a long enough window to now remove the warning
  - also add a link in the docs to `object-hash`
    - noticed there wasn't one, despite all the links I added to the docs!
  • Loading branch information
agilgur5 committed Jul 14, 2023
1 parent 68017ae commit ebbf16b
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 40 deletions.
14 changes: 3 additions & 11 deletions README.md
Expand Up @@ -65,10 +65,6 @@ This also allows for passing in different `tsconfig` files depending on your bui

Must be before `rollup-plugin-typescript2` in the plugin list, especially when the `browser: true` option is used (see [#66](https://github.com/ezolenko/rollup-plugin-typescript2/issues/66)).

#### @rollup/plugin-commonjs

See the explanation for `rollupCommonJSResolveHack` option below.

#### @rollup/plugin-babel

This plugin transpiles code, but doesn't change file extensions. `@rollup/plugin-babel` only looks at code with these extensions [by default](https://github.com/rollup/plugins/tree/master/packages/babel#extensions): `.js,.jsx,.es6,.es,.mjs`. To workaround this, add `.ts` and `.tsx` to its list of extensions.
Expand Down Expand Up @@ -165,14 +161,10 @@ See [#108](https://github.com/ezolenko/rollup-plugin-typescript2/issues/108)
Bail out on first syntactic or semantic error.
In some cases, setting this to false will result in an exception in Rollup itself (for example, unresolvable imports).

* `rollupCommonJSResolveHack`: false

_Deprecated_. OS native paths are now _always_ used since [`0.30.0`](https://github.com/ezolenko/rollup-plugin-typescript2/releases/0.30.0) (see [#251](https://github.com/ezolenko/rollup-plugin-typescript2/pull/251)), so this no longer has any effect -- as if it is always `true`.

* `objectHashIgnoreUnknownHack`: false

The plugin uses your Rollup config as part of its cache key.
`object-hash` is used to generate a hash, but it can have trouble with some uncommon types of elements.
[`object-hash`](https://github.com/puleos/object-hash) is used to generate a hash, but it can have trouble with some uncommon types of elements.
Setting this option to true will make `object-hash` ignore unknowns, at the cost of not invalidating the cache if ignored elements are changed.

Only enable this option if you need it (e.g. if you get `Error: Unknown object type "xxx"`) and make sure to run with `clean: true` once in a while and definitely before a release.
Expand Down Expand Up @@ -238,8 +230,8 @@ Otherwise the plugin should work in watch mode. Make sure to run a normal build
### Requirements

* TypeScript `2.4+`
* Rollup `1.26.3+`
* Node `6.4.0+` (basic ES6 support)
* Rollup `3.7.5+`
* Node `14.18.0+` (Rollup [requirement](https://github.com/rollup/rollup/blob/096ae92972a920dc53c3bbe9b1001ea82a15e86a/package.json#L133))

### Reporting bugs and Contributing

Expand Down
1 change: 0 additions & 1 deletion __tests__/fixtures/options.ts
Expand Up @@ -15,7 +15,6 @@ export function makeOptions(cacheDir: string, cwd: string): IOptions {
cacheRoot: cacheDir,
cwd,
abortOnError: false,
rollupCommonJSResolveHack: false,
typescript: ts,
objectHashIgnoreUnknownHack: false,
tsconfigOverride: null,
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -39,7 +39,7 @@
"tslib": "^2.4.0"
},
"peerDependencies": {
"rollup": ">=1.26.3",
"rollup": ">=3.7.5",
"typescript": ">=2.4.0"
},
"devDependencies": {
Expand Down
28 changes: 3 additions & 25 deletions src/index.ts
Expand Up @@ -98,7 +98,6 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
include: ["*.ts+(|x)", "**/*.ts+(|x)", "**/*.cts", "**/*.mts"],
exclude: ["*.d.ts", "**/*.d.ts", "**/*.d.cts", "**/*.d.mts"],
abortOnError: true,
rollupCommonJSResolveHack: false,
tsconfig: undefined,
useTsconfigDeclarationDir: false,
tsconfigOverride: {},
Expand Down Expand Up @@ -128,7 +127,7 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
{
context = new RollupContext(pluginOptions.verbosity, pluginOptions.abortOnError, this, "rpt2: ");

watchMode = process.env.ROLLUP_WATCH === "true" || !!this.meta.watchMode; // meta.watchMode was added in 2.14.0 to capture watch via Rollup API (i.e. no env var) (c.f. https://github.com/rollup/rollup/blob/master/CHANGELOG.md#2140)
watchMode = !!this.meta.watchMode;
({ parsedTsConfig: parsedConfig, fileName: tsConfigPath } = parseTsConfig(context, pluginOptions));

// print out all versions and configurations
Expand All @@ -142,21 +141,11 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
if (!satisfies(this.meta.rollupVersion, ROLLUP_VERSION_RANGE, { includePrerelease: true }))
context.error(`Installed Rollup version '${this.meta.rollupVersion}' is outside of supported range '${ROLLUP_VERSION_RANGE}'`);

supportsThisLoad = satisfies(this.meta.rollupVersion, ">=2.60.0", { includePrerelease : true }); // this.load is 2.60.0+ only (c.f. https://github.com/rollup/rollup/blob/master/CHANGELOG.md#2600)
if (!supportsThisLoad)
context.warn(() => `${yellow("You are using a Rollup version '<2.60.0'")}. This may result in type-only files being ignored.`);

context.info(`rollup-plugin-typescript2 version: ${RPT2_VERSION}`);
context.debug(() => `plugin options:\n${JSON.stringify(pluginOptions, (key, value) => key === "typescript" ? `version ${(value as typeof tsModule).version}` : value, 4)}`);
context.debug(() => `rollup config:\n${JSON.stringify(rollupOptions, undefined, 4)}`);
context.debug(() => `tsconfig path: ${tsConfigPath}`);

if (pluginOptions.objectHashIgnoreUnknownHack)
context.warn(() => `${yellow("You are using 'objectHashIgnoreUnknownHack' option")}. If you enabled it because of async functions, try disabling it now.`);

if (pluginOptions.rollupCommonJSResolveHack)
context.warn(() => `${yellow("You are using 'rollupCommonJSResolveHack' option")}. This is no longer needed, try disabling it now.`);

if (watchMode)
context.info(`running in watch mode`);

Expand Down Expand Up @@ -312,19 +301,8 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
{
generateRound = 0; // in watch mode, buildEnd resets generate count just before generateBundle for each output

if (err)
{
buildDone();
// workaround: err.stack contains err.message and Rollup prints both, causing duplication, so split out the stack itself if it exists (c.f. https://github.com/ezolenko/rollup-plugin-typescript2/issues/103#issuecomment-1172820658)
const stackOnly = err.stack?.split(err.message)[1];
if (stackOnly)
this.error({ ...err, message: err.message, stack: stackOnly });
else
this.error(err);
}

if (!pluginOptions.check)
return buildDone();
if (err || !pluginOptions.check)
return buildDone();

// walkTree once on each cycle when in watch mode
if (watchMode)
Expand Down
1 change: 0 additions & 1 deletion src/ioptions.ts
Expand Up @@ -21,7 +21,6 @@ export interface IOptions
clean: boolean;
cacheRoot: string;
abortOnError: boolean;
rollupCommonJSResolveHack: boolean;
tsconfig?: string;
useTsconfigDeclarationDir: boolean;
typescript: typeof tsModule;
Expand Down

0 comments on commit ebbf16b

Please sign in to comment.