summaryrefslogtreecommitdiff
path: root/cli/js
diff options
context:
space:
mode:
authorRy Dahl <ry@tinyclouds.org>2019-11-14 15:05:36 -0500
committerGitHub <noreply@github.com>2019-11-14 15:05:36 -0500
commit4902a1cacb0348efde9ab342172f2706ac27e837 (patch)
treeabbc0dbdcc03b232d01274cea0940a377223a767 /cli/js
parent8b90b8e88325d28fe41d8312ea91417b6e66a12e (diff)
Turn on TS strict mode for deno_typescript (#3330)
Diffstat (limited to 'cli/js')
-rw-r--r--cli/js/body.ts3
-rw-r--r--cli/js/compiler.ts4
-rw-r--r--cli/js/lib.deno_runtime.d.ts8
-rw-r--r--cli/js/os.ts3
-rw-r--r--cli/js/streams/readable-internals.ts2
-rw-r--r--cli/js/url.ts2
6 files changed, 16 insertions, 6 deletions
diff --git a/cli/js/body.ts b/cli/js/body.ts
index fc12efa8a..ed21fa0ec 100644
--- a/cli/js/body.ts
+++ b/cli/js/body.ts
@@ -143,9 +143,10 @@ export class Body implements domTypes.Body {
this._stream = this._bodySource;
}
if (typeof this._bodySource === "string") {
+ const bodySource = this._bodySource;
this._stream = new ReadableStream({
start(controller: ReadableStreamController): void {
- controller.enqueue(this._bodySource);
+ controller.enqueue(bodySource);
controller.close();
}
});
diff --git a/cli/js/compiler.ts b/cli/js/compiler.ts
index 775277cdd..1779f76c3 100644
--- a/cli/js/compiler.ts
+++ b/cli/js/compiler.ts
@@ -285,7 +285,7 @@ async function processImports(
referrer = ""
): Promise<SourceFileJson[]> {
if (!specifiers.length) {
- return;
+ return [];
}
const sources = specifiers.map(([, moduleSpecifier]) => moduleSpecifier);
const sourceFiles = await fetchSourceFiles(sources, referrer);
@@ -385,6 +385,8 @@ class Host implements ts.CompilerHost {
private readonly _options: ts.CompilerOptions = {
allowJs: true,
allowNonTsExtensions: true,
+ // TODO(#3324) Enable strict mode for user code.
+ // strict: true,
checkJs: false,
esModuleInterop: true,
module: ts.ModuleKind.ESNext,
diff --git a/cli/js/lib.deno_runtime.d.ts b/cli/js/lib.deno_runtime.d.ts
index 87be1c3a0..c7c403987 100644
--- a/cli/js/lib.deno_runtime.d.ts
+++ b/cli/js/lib.deno_runtime.d.ts
@@ -2858,4 +2858,10 @@ declare namespace WebAssembly {
}
}
-/* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */
+// Catch-all for JSX elements.
+// See https://www.typescriptlang.org/docs/handbook/jsx.html#intrinsic-elements
+declare namespace JSX {
+ interface IntrinsicElements {
+ [elemName: string]: any;
+ }
+}
diff --git a/cli/js/os.ts b/cli/js/os.ts
index 89e5652cb..4e17e2030 100644
--- a/cli/js/os.ts
+++ b/cli/js/os.ts
@@ -95,7 +95,8 @@ export function start(preserveDenoNamespace = true, source?: string): Start {
for (const [name, opId] of Object.entries(ops)) {
const opName = `OP_${name.toUpperCase()}`;
// Assign op ids to actual variables
- dispatch[opName] = opId;
+ // TODO(ry) This type casting is gross and should be fixed.
+ ((dispatch as unknown) as { [key: string]: number })[opName] = opId;
}
// First we send an empty `Start` message to let the privileged side know we
// are ready. The response should be a `StartRes` message containing the CLI
diff --git a/cli/js/streams/readable-internals.ts b/cli/js/streams/readable-internals.ts
index 36f4223d7..67f5a69b1 100644
--- a/cli/js/streams/readable-internals.ts
+++ b/cli/js/streams/readable-internals.ts
@@ -259,7 +259,7 @@ export function isReadableStreamLocked<OutputType>(
export function readableStreamGetNumReadIntoRequests<OutputType>(
stream: SDReadableStream<OutputType>
-): number | undefined {
+): number {
// TODO remove the "as unknown" cast
// This is in to workaround a compiler error
// error TS2352: Conversion of type 'SDReadableStreamReader<OutputType>' to type 'SDReadableStreamBYOBReader' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
diff --git a/cli/js/url.ts b/cli/js/url.ts
index 2017bb40b..489d8d045 100644
--- a/cli/js/url.ts
+++ b/cli/js/url.ts
@@ -156,7 +156,7 @@ export class URL {
"search"
];
const objectString = keys
- .map((key: string) => `${key}: "${this[key] || ""}"`)
+ .map((key: string) => `${key}: "${this[key as keyof this] || ""}"`)
.join(", ");
return `URL { ${objectString} }`;
}