From 547a634d60a015474b9f3134524365b7ef5fe713 Mon Sep 17 00:00:00 2001 From: Marco Ippolito Date: Mon, 16 Dec 2024 15:16:24 +0100 Subject: [PATCH 1/2] module: prune strip-types experimental warning calls --- lib/internal/modules/cjs/loader.js | 1 - lib/internal/modules/esm/translators.js | 3 --- lib/internal/modules/typescript.js | 1 + 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 0779190e1c9070..c453f2b403e89d 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -449,7 +449,6 @@ function initializeCJS() { const tsEnabled = getOptionValue('--experimental-strip-types'); if (tsEnabled) { - emitExperimentalWarning('Type Stripping'); Module._extensions['.cts'] = loadCTS; Module._extensions['.ts'] = loadTS; } diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index 5b2a865582e5cd..b24e20cb491a93 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -250,7 +250,6 @@ translators.set('require-commonjs', (url, source, isMain) => { // Handle CommonJS modules referenced by `require` calls. // This translator function must be sync, as `require` is sync. translators.set('require-commonjs-typescript', (url, source, isMain) => { - emitExperimentalWarning('Type Stripping'); assert(cjsParse); const code = stripTypeScriptModuleTypes(stringify(source), url); return createCJSModuleWrap(url, code, isMain, 'commonjs-typescript'); @@ -464,7 +463,6 @@ translators.set('wasm', async function(url, source) { // Strategy for loading a commonjs TypeScript module translators.set('commonjs-typescript', function(url, source) { - emitExperimentalWarning('Type Stripping'); assertBufferSource(source, true, 'load'); const code = stripTypeScriptModuleTypes(stringify(source), url); debug(`Translating TypeScript ${url}`); @@ -473,7 +471,6 @@ translators.set('commonjs-typescript', function(url, source) { // Strategy for loading an esm TypeScript module translators.set('module-typescript', function(url, source) { - emitExperimentalWarning('Type Stripping'); assertBufferSource(source, true, 'load'); const code = stripTypeScriptModuleTypes(stringify(source), url); debug(`Translating TypeScript ${url}`); diff --git a/lib/internal/modules/typescript.js b/lib/internal/modules/typescript.js index d1b58e86c72ee7..c203af663dde70 100644 --- a/lib/internal/modules/typescript.js +++ b/lib/internal/modules/typescript.js @@ -115,6 +115,7 @@ function processTypeScriptCode(code, options) { * @returns {TransformOutput} The stripped TypeScript code. */ function stripTypeScriptModuleTypes(source, filename) { + emitExperimentalWarning('Type Stripping'); assert(typeof source === 'string'); if (isUnderNodeModules(filename)) { throw new ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING(filename); From c5704d87cd20bd6ef47126f6db644a0bb9a9bc88 Mon Sep 17 00:00:00 2001 From: Marco Ippolito Date: Mon, 16 Dec 2024 16:58:31 +0100 Subject: [PATCH 2/2] module: add --experimental-strip-input-types --- doc/api/cli.md | 13 ++++++++++ doc/api/typescript.md | 3 ++- doc/node.1 | 3 +++ lib/internal/main/eval_string.js | 2 +- src/node_options.cc | 5 ++++ src/node_options.h | 1 + test/es-module/test-typescript-eval.mjs | 32 ++++++++++++++++++------- 7 files changed, 48 insertions(+), 11 deletions(-) diff --git a/doc/api/cli.md b/doc/api/cli.md index 9efcf3953ffddf..5e906db52348b2 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -995,6 +995,18 @@ added: Use this flag to enable [ShadowRealm][] support. +### `--experimental-strip-input-types` + + + +> Stability: 1.1 - Active development + +Enable experimental type-stripping for `--eval`. +Implies [`--experimental-strip-types`][]. +For more information, see the [TypeScript type-stripping][] documentation. + ### `--experimental-strip-types`