mirror of
https://github.com/denoland/deno.git
synced 2025-09-27 12:49:10 +00:00
fix(cli): allow setting of importsNotUsedAsValues in Deno.compile() (#8306)
Fixes #6663
This commit is contained in:
parent
5375bf2e3f
commit
b402b75c1d
2 changed files with 35 additions and 0 deletions
14
cli/dts/lib.deno.unstable.d.ts
vendored
14
cli/dts/lib.deno.unstable.d.ts
vendored
|
@ -318,6 +318,20 @@ declare namespace Deno {
|
||||||
/** Import emit helpers (e.g. `__extends`, `__rest`, etc..) from
|
/** Import emit helpers (e.g. `__extends`, `__rest`, etc..) from
|
||||||
* [tslib](https://www.npmjs.com/package/tslib). */
|
* [tslib](https://www.npmjs.com/package/tslib). */
|
||||||
importHelpers?: boolean;
|
importHelpers?: boolean;
|
||||||
|
/** This flag controls how `import` works, there are 3 different options:
|
||||||
|
*
|
||||||
|
* - `remove`: The default behavior of dropping import statements which only
|
||||||
|
* reference types.
|
||||||
|
* - `preserve`: Preserves all `import` statements whose values or types are
|
||||||
|
* never used. This can cause imports/side-effects to be preserved.
|
||||||
|
* - `error`: This preserves all imports (the same as the preserve option),
|
||||||
|
* but will error when a value import is only used as a type. This might
|
||||||
|
* be useful if you want to ensure no values are being accidentally
|
||||||
|
* imported, but still make side-effect imports explicit.
|
||||||
|
*
|
||||||
|
* This flag works because you can use `import type` to explicitly create an
|
||||||
|
* `import` statement which should never be emitted into JavaScript. */
|
||||||
|
importsNotUsedAsValues?: "remove" | "preserve" | "error";
|
||||||
/** Emit a single file with source maps instead of having a separate file.
|
/** Emit a single file with source maps instead of having a separate file.
|
||||||
* Defaults to `false`. */
|
* Defaults to `false`. */
|
||||||
inlineSourceMap?: boolean;
|
inlineSourceMap?: boolean;
|
||||||
|
|
|
@ -199,3 +199,24 @@ Deno.test({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Deno.test({
|
||||||
|
name: `Deno.compile() - Allows setting of "importsNotUsedAsValues"`,
|
||||||
|
async fn() {
|
||||||
|
const [diagnostics] = await Deno.compile("/a.ts", {
|
||||||
|
"/a.ts": `import { B } from "./b.ts";
|
||||||
|
const b: B = { b: "b" };
|
||||||
|
`,
|
||||||
|
"/b.ts": `export interface B {
|
||||||
|
b: string;
|
||||||
|
};
|
||||||
|
`,
|
||||||
|
}, {
|
||||||
|
importsNotUsedAsValues: "error",
|
||||||
|
});
|
||||||
|
assert(diagnostics);
|
||||||
|
assertEquals(diagnostics.length, 1);
|
||||||
|
assert(diagnostics[0].messageText);
|
||||||
|
assert(diagnostics[0].messageText.includes("This import is never used"));
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue