mirror of
https://github.com/denoland/deno.git
synced 2025-02-01 12:16:11 -05:00
chore: Enforce ban-untagged-todo lint rule (#9135)
This commit is contained in:
parent
fc45a19801
commit
b26dcbc69d
31 changed files with 77 additions and 58 deletions
9
.dlint.json
Normal file
9
.dlint.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"tags": ["recommended"],
|
||||||
|
"include": [
|
||||||
|
"ban-untagged-todo"
|
||||||
|
],
|
||||||
|
"exclude": []
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
||||||
// Used for benchmarking Deno's networking.
|
// Used for benchmarking Deno's networking.
|
||||||
// TODO Replace this with a real HTTP server once
|
// TODO(bartlomieju): Replace this with a real HTTP server once
|
||||||
// https://github.com/denoland/deno/issues/726 is completed.
|
// https://github.com/denoland/deno/issues/726 is completed.
|
||||||
// Note: this is a keep-alive server.
|
// Note: this is a keep-alive server.
|
||||||
const addr = Deno.args[0] || "127.0.0.1:4500";
|
const addr = Deno.args[0] || "127.0.0.1:4500";
|
||||||
|
|
|
@ -128,8 +128,8 @@ unitTest(async function bufferBasicOperations(): Promise<void> {
|
||||||
await empty(buf, testString.slice(0, 20), new Uint8Array(5));
|
await empty(buf, testString.slice(0, 20), new Uint8Array(5));
|
||||||
await empty(buf, "", new Uint8Array(100));
|
await empty(buf, "", new Uint8Array(100));
|
||||||
|
|
||||||
// TODO buf.writeByte()
|
// TODO(bartlomieju): buf.writeByte()
|
||||||
// TODO buf.readByte()
|
// TODO(bartlomieju): buf.readByte()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ unitTest(
|
||||||
unitTest(
|
unitTest(
|
||||||
{ perms: { run: true, write: true }, ignore: Deno.build.os == "windows" },
|
{ perms: { run: true, write: true }, ignore: Deno.build.os == "windows" },
|
||||||
async function chownSyncSucceed(): Promise<void> {
|
async function chownSyncSucceed(): Promise<void> {
|
||||||
// TODO: when a file's owner is actually being changed,
|
// TODO(bartlomieju): when a file's owner is actually being changed,
|
||||||
// chown only succeeds if run under priviledged user (root)
|
// chown only succeeds if run under priviledged user (root)
|
||||||
// The test script has no such privilege, so need to find a better way to test this case
|
// The test script has no such privilege, so need to find a better way to test this case
|
||||||
const { uid, gid } = await getUidAndGid();
|
const { uid, gid } = await getUidAndGid();
|
||||||
|
@ -152,7 +152,7 @@ unitTest(
|
||||||
unitTest(
|
unitTest(
|
||||||
{ perms: { run: true, write: true }, ignore: Deno.build.os == "windows" },
|
{ perms: { run: true, write: true }, ignore: Deno.build.os == "windows" },
|
||||||
async function chownWithUrl(): Promise<void> {
|
async function chownWithUrl(): Promise<void> {
|
||||||
// TODO: same as chownSyncSucceed
|
// TODO(bartlomieju): same as chownSyncSucceed
|
||||||
const { uid, gid } = await getUidAndGid();
|
const { uid, gid } = await getUidAndGid();
|
||||||
|
|
||||||
const enc = new TextEncoder();
|
const enc = new TextEncoder();
|
||||||
|
|
|
@ -322,7 +322,7 @@ unitTest(
|
||||||
// deno-lint-ignore no-explicit-any
|
// deno-lint-ignore no-explicit-any
|
||||||
await file.write(null as any);
|
await file.write(null as any);
|
||||||
},
|
},
|
||||||
); // TODO: Check error kind when dispatch_minimal pipes errors properly
|
); // TODO(bartlomieju): Check error kind when dispatch_minimal pipes errors properly
|
||||||
file.close();
|
file.close();
|
||||||
await Deno.remove(tempDir, { recursive: true });
|
await Deno.remove(tempDir, { recursive: true });
|
||||||
},
|
},
|
||||||
|
@ -349,7 +349,7 @@ unitTest(
|
||||||
// deno-lint-ignore no-explicit-any
|
// deno-lint-ignore no-explicit-any
|
||||||
await file.read(null as any);
|
await file.read(null as any);
|
||||||
}, TypeError);
|
}, TypeError);
|
||||||
// TODO: Check error kind when dispatch_minimal pipes errors properly
|
// TODO(bartlomieju): Check error kind when dispatch_minimal pipes errors properly
|
||||||
|
|
||||||
file.close();
|
file.close();
|
||||||
await Deno.remove(tempDir, { recursive: true });
|
await Deno.remove(tempDir, { recursive: true });
|
||||||
|
@ -382,7 +382,7 @@ unitTest(
|
||||||
assert(fileInfo.size === 5);
|
assert(fileInfo.size === 5);
|
||||||
f.close();
|
f.close();
|
||||||
|
|
||||||
// TODO: test different modes
|
// TODO(bartlomieju): test different modes
|
||||||
await Deno.remove(tempDir, { recursive: true });
|
await Deno.remove(tempDir, { recursive: true });
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
@ -425,7 +425,7 @@ unitTest(
|
||||||
assert(fileInfo.size === 5);
|
assert(fileInfo.size === 5);
|
||||||
f.close();
|
f.close();
|
||||||
|
|
||||||
// TODO: test different modes
|
// TODO(bartlomieju): test different modes
|
||||||
await Deno.remove(tempDir, { recursive: true });
|
await Deno.remove(tempDir, { recursive: true });
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
const headersData = Symbol("headers data");
|
const headersData = Symbol("headers data");
|
||||||
|
|
||||||
// TODO: headerGuard? Investigate if it is needed
|
// TODO(bartlomieju): headerGuard? Investigate if it is needed
|
||||||
// node-fetch did not implement this but it is in the spec
|
// node-fetch did not implement this but it is in the spec
|
||||||
function normalizeParams(name, value) {
|
function normalizeParams(name, value) {
|
||||||
name = String(name).toLowerCase();
|
name = String(name).toLowerCase();
|
||||||
|
|
|
@ -283,7 +283,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function getStream(blobBytes) {
|
function getStream(blobBytes) {
|
||||||
// TODO: Align to spec https://fetch.spec.whatwg.org/#concept-construct-readablestream
|
// TODO(bartlomieju): Align to spec https://fetch.spec.whatwg.org/#concept-construct-readablestream
|
||||||
return new ReadableStream({
|
return new ReadableStream({
|
||||||
type: "bytes",
|
type: "bytes",
|
||||||
start: (controller) => {
|
start: (controller) => {
|
||||||
|
@ -1240,7 +1240,7 @@
|
||||||
let body;
|
let body;
|
||||||
let clientRid = null;
|
let clientRid = null;
|
||||||
let redirected = false;
|
let redirected = false;
|
||||||
let remRedirectCount = 20; // TODO: use a better way to handle
|
let remRedirectCount = 20; // TODO(bartlomieju): use a better way to handle
|
||||||
|
|
||||||
if (typeof input === "string" || input instanceof URL) {
|
if (typeof input === "string" || input instanceof URL) {
|
||||||
url = typeof input === "string" ? input : input.href;
|
url = typeof input === "string" ? input : input.href;
|
||||||
|
|
|
@ -668,7 +668,7 @@
|
||||||
setRelatedTarget(eventImpl, null);
|
setRelatedTarget(eventImpl, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: invoke activation targets if HTML nodes will be implemented
|
// TODO(bartlomieju): invoke activation targets if HTML nodes will be implemented
|
||||||
// if (activationTarget !== null) {
|
// if (activationTarget !== null) {
|
||||||
// if (!eventImpl.defaultPrevented) {
|
// if (!eventImpl.defaultPrevented) {
|
||||||
// activationTarget._activationBehavior();
|
// activationTarget._activationBehavior();
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
if (!chunk.done && chunk.value instanceof Uint8Array) {
|
if (!chunk.done && chunk.value instanceof Uint8Array) {
|
||||||
chunks.push(chunk.value);
|
chunks.push(chunk.value);
|
||||||
|
|
||||||
// TODO: (only) If roughly 50ms have passed since last progress
|
// TODO(bartlomieju): (only) If roughly 50ms have passed since last progress
|
||||||
{
|
{
|
||||||
const size = chunks.reduce((p, i) => p + i.byteLength, 0);
|
const size = chunks.reduce((p, i) => p + i.byteLength, 0);
|
||||||
const ev = new ProgressEvent("progress", {
|
const ev = new ProgressEvent("progress", {
|
||||||
|
|
|
@ -199,8 +199,8 @@ finishing test case.`;
|
||||||
|
|
||||||
exposeForTest("reportToConsole", reportToConsole);
|
exposeForTest("reportToConsole", reportToConsole);
|
||||||
|
|
||||||
// TODO: already implements AsyncGenerator<RunTestsMessage>, but add as "implements to class"
|
// TODO(bartlomieju): already implements AsyncGenerator<RunTestsMessage>, but add as "implements to class"
|
||||||
// TODO: implements PromiseLike<RunTestsEndResult>
|
// TODO(bartlomieju): implements PromiseLike<RunTestsEndResult>
|
||||||
class TestRunner {
|
class TestRunner {
|
||||||
#usedOnly = false;
|
#usedOnly = false;
|
||||||
|
|
||||||
|
|
|
@ -278,7 +278,7 @@ delete Object.prototype.__proto__;
|
||||||
self: util.readOnly(globalThis),
|
self: util.readOnly(globalThis),
|
||||||
onmessage: util.writable(onmessage),
|
onmessage: util.writable(onmessage),
|
||||||
onerror: util.writable(onerror),
|
onerror: util.writable(onerror),
|
||||||
// TODO: should be readonly?
|
// TODO(bartlomieju): should be readonly?
|
||||||
close: util.nonEnumerable(workerClose),
|
close: util.nonEnumerable(workerClose),
|
||||||
postMessage: util.writable(postMessage),
|
postMessage: util.writable(postMessage),
|
||||||
workerMessageRecvCallback: util.nonEnumerable(workerMessageRecvCallback),
|
workerMessageRecvCallback: util.nonEnumerable(workerMessageRecvCallback),
|
||||||
|
|
|
@ -667,7 +667,7 @@ function readDoubleQuotedScalar(
|
||||||
if (isEOL(ch)) {
|
if (isEOL(ch)) {
|
||||||
skipSeparationSpace(state, false, nodeIndent);
|
skipSeparationSpace(state, false, nodeIndent);
|
||||||
|
|
||||||
// TODO: rework to inline fn with no type cast?
|
// TODO(bartlomieju): rework to inline fn with no type cast?
|
||||||
} else if (ch < 256 && simpleEscapeCheck[ch]) {
|
} else if (ch < 256 && simpleEscapeCheck[ch]) {
|
||||||
state.result += simpleEscapeMap[ch];
|
state.result += simpleEscapeMap[ch];
|
||||||
state.position++;
|
state.position++;
|
||||||
|
|
|
@ -464,7 +464,7 @@ class Parser {
|
||||||
for (let i = 0; i < this.tomlLines.length; i++) {
|
for (let i = 0; i < this.tomlLines.length; i++) {
|
||||||
const line = this.tomlLines[i];
|
const line = this.tomlLines[i];
|
||||||
|
|
||||||
// TODO (zekth) Handle unflat of array of tables
|
// TODO(zekth): Handle unflat of array of tables
|
||||||
if (this._isGroup(line)) {
|
if (this._isGroup(line)) {
|
||||||
// if the current group is an array we push the
|
// if the current group is an array we push the
|
||||||
// parsed objects in it.
|
// parsed objects in it.
|
||||||
|
|
|
@ -151,7 +151,8 @@ class Printf {
|
||||||
}
|
}
|
||||||
} // switch c
|
} // switch c
|
||||||
break;
|
break;
|
||||||
case State.POSITIONAL: // either a verb or * only verb for now, TODO
|
case State.POSITIONAL:
|
||||||
|
// TODO(bartlomieju): either a verb or * only verb for now
|
||||||
if (c === "*") {
|
if (c === "*") {
|
||||||
const worp = this.flags.precision === -1
|
const worp = this.flags.precision === -1
|
||||||
? WorP.WIDTH
|
? WorP.WIDTH
|
||||||
|
@ -689,7 +690,7 @@ class Printf {
|
||||||
if (i !== 0 && this.flags.space) {
|
if (i !== 0 && this.flags.space) {
|
||||||
hex += sharp ? " 0x" : " ";
|
hex += sharp ? " 0x" : " ";
|
||||||
}
|
}
|
||||||
// TODO: for now only taking into account the
|
// TODO(bartlomieju): for now only taking into account the
|
||||||
// lower half of the codePoint, ie. as if a string
|
// lower half of the codePoint, ie. as if a string
|
||||||
// is a list of 8bit values instead of UCS2 runes
|
// is a list of 8bit values instead of UCS2 runes
|
||||||
const c = (val.charCodeAt(i) & 0xff).toString(16);
|
const c = (val.charCodeAt(i) & 0xff).toString(16);
|
||||||
|
|
|
@ -266,17 +266,18 @@ const tests: Array<[string, any, string]> = [
|
||||||
["%3c", "⌘".charCodeAt(0), " ⌘"],
|
["%3c", "⌘".charCodeAt(0), " ⌘"],
|
||||||
["%-3c", "⌘".charCodeAt(0), "⌘ "],
|
["%-3c", "⌘".charCodeAt(0), "⌘ "],
|
||||||
// Runes that are not printable.
|
// Runes that are not printable.
|
||||||
// {"%c", '\U00000e00', "\u0e00"}, // TODO check if \U escape exists in js
|
// {"%c", '\U00000e00', "\u0e00"},
|
||||||
|
// TODO(bartlomieju) check if \U escape exists in js
|
||||||
//["%c", '\U0010ffff'.codePointAt(0), "\U0010ffff"],
|
//["%c", '\U0010ffff'.codePointAt(0), "\U0010ffff"],
|
||||||
|
|
||||||
// Runes that are not valid.
|
// Runes that are not valid.
|
||||||
["%c", -1, "<22>"],
|
["%c", -1, "<22>"],
|
||||||
// TODO surrogate half, doesn't make sense in itself, how
|
// TODO(bartomieju): surrogate half, doesn't make sense in itself, how
|
||||||
// to determine in JS?
|
// to determine in JS?
|
||||||
// ["%c", 0xDC80, "<22>"],
|
// ["%c", 0xDC80, "<22>"],
|
||||||
["%c", 0x110000, "<22>"],
|
["%c", 0x110000, "<22>"],
|
||||||
["%c", 0xfffffffff, "<22>"],
|
["%c", 0xfffffffff, "<22>"],
|
||||||
// TODO
|
// TODO(bartlomieju):
|
||||||
// escaped characters
|
// escaped characters
|
||||||
// Runes that are not printable.
|
// Runes that are not printable.
|
||||||
// Runes that are not valid.
|
// Runes that are not valid.
|
||||||
|
@ -291,7 +292,8 @@ const tests: Array<[string, any, string]> = [
|
||||||
["%.0s", "日本語日本語", ""],
|
["%.0s", "日本語日本語", ""],
|
||||||
["%.5s", "日本語日本語", "日本語日本"],
|
["%.5s", "日本語日本語", "日本語日本"],
|
||||||
["%.10s", "日本語日本語", "日本語日本語"],
|
["%.10s", "日本語日本語", "日本語日本語"],
|
||||||
// ["%08q", "abc", `000"abc"`], // TODO verb q
|
// ["%08q", "abc", `000"abc"`],
|
||||||
|
// TODO(bartlomieju): verb q
|
||||||
// ["%-8q", "abc", `"abc" `],
|
// ["%-8q", "abc", `"abc" `],
|
||||||
//["%.5q", "abcdefghijklmnopqrstuvwxyz", `"abcde"`],
|
//["%.5q", "abcdefghijklmnopqrstuvwxyz", `"abcde"`],
|
||||||
["%.5x", "abcdefghijklmnopqrstuvwxyz", "6162636465"],
|
["%.5x", "abcdefghijklmnopqrstuvwxyz", "6162636465"],
|
||||||
|
@ -301,7 +303,8 @@ const tests: Array<[string, any, string]> = [
|
||||||
// our %x takes lower byte of string "%.1x", "日本語", "e6"],,
|
// our %x takes lower byte of string "%.1x", "日本語", "e6"],,
|
||||||
["%.1x", "日本語", "e5"],
|
["%.1x", "日本語", "e5"],
|
||||||
//["%10.1q", "日本語日本語", ` "日"`],
|
//["%10.1q", "日本語日本語", ` "日"`],
|
||||||
// ["%10v", null, " <nil>"], // TODO null, undefined ...
|
// ["%10v", null, " <nil>"],
|
||||||
|
// TODO(bartlomieju): null, undefined ...
|
||||||
// ["%-10v", null, "<nil> "],
|
// ["%-10v", null, "<nil> "],
|
||||||
|
|
||||||
// integers
|
// integers
|
||||||
|
@ -353,8 +356,10 @@ const tests: Array<[string, any, string]> = [
|
||||||
["%-#20.8x", 0x1234abc, "0x01234abc "],
|
["%-#20.8x", 0x1234abc, "0x01234abc "],
|
||||||
["%-#20.8X", 0x1234abc, "0X01234ABC "],
|
["%-#20.8X", 0x1234abc, "0X01234ABC "],
|
||||||
["%-#20.8o", parseInt("01234", 8), "00001234 "],
|
["%-#20.8o", parseInt("01234", 8), "00001234 "],
|
||||||
// Test correct f.intbuf overflow checks. // TODO, lazy
|
// Test correct f.intbuf overflow checks.
|
||||||
// unicode format // TODO, decide whether unicode verb makes sense %U
|
// TODO(bartlomieju): lazy
|
||||||
|
// unicode format
|
||||||
|
// TODO(bartlomieju): decide whether unicode verb makes sense %U
|
||||||
|
|
||||||
// floats
|
// floats
|
||||||
["%+.3e", 0.0, "+0.000e+00"],
|
["%+.3e", 0.0, "+0.000e+00"],
|
||||||
|
@ -490,10 +495,11 @@ const tests: Array<[string, any, string]> = [
|
||||||
["%g", 1.23456789e-3, "0.00123457"], // see above prec6 = precdef6 - (-3+1)
|
["%g", 1.23456789e-3, "0.00123457"], // see above prec6 = precdef6 - (-3+1)
|
||||||
//["%g", 1.23456789e20, "1.23456789e+20"],
|
//["%g", 1.23456789e20, "1.23456789e+20"],
|
||||||
["%g", 1.23456789e20, "1.23457e+20"],
|
["%g", 1.23456789e20, "1.23457e+20"],
|
||||||
// arrays // TODO
|
// arrays
|
||||||
|
// TODO(bartlomieju):
|
||||||
// slice : go specific
|
// slice : go specific
|
||||||
|
|
||||||
// TODO decide how to handle deeper types, arrays, objects
|
// TODO(bartlomieju): decide how to handle deeper types, arrays, objects
|
||||||
// byte arrays and slices with %b,%c,%d,%o,%U and %v
|
// byte arrays and slices with %b,%c,%d,%o,%U and %v
|
||||||
// f.space should and f.plus should not have an effect with %v.
|
// f.space should and f.plus should not have an effect with %v.
|
||||||
// f.space and f.plus should have an effect with %d.
|
// f.space and f.plus should have an effect with %d.
|
||||||
|
|
|
@ -327,7 +327,7 @@ testCopySync(
|
||||||
|
|
||||||
assert(destStatInfo.atime instanceof Date);
|
assert(destStatInfo.atime instanceof Date);
|
||||||
assert(destStatInfo.mtime instanceof Date);
|
assert(destStatInfo.mtime instanceof Date);
|
||||||
// TODO: Activate test when https://github.com/denoland/deno/issues/2411
|
// TODO(bartlomieju): Activate test when https://github.com/denoland/deno/issues/2411
|
||||||
// is fixed
|
// is fixed
|
||||||
// assertEquals(destStatInfo.atime, srcStatInfo.atime);
|
// assertEquals(destStatInfo.atime, srcStatInfo.atime);
|
||||||
// assertEquals(destStatInfo.mtime, srcStatInfo.mtime);
|
// assertEquals(destStatInfo.mtime, srcStatInfo.mtime);
|
||||||
|
|
|
@ -32,7 +32,6 @@ interface SplitPath {
|
||||||
winRoot?: string;
|
winRoot?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Maybe make this public somewhere.
|
|
||||||
function split(path: string): SplitPath {
|
function split(path: string): SplitPath {
|
||||||
const s = SEP_PATTERN.source;
|
const s = SEP_PATTERN.source;
|
||||||
const segments = path
|
const segments = path
|
||||||
|
|
|
@ -65,7 +65,7 @@ export function chunkedBodyReader(h: Headers, r: BufReader): Deno.Reader {
|
||||||
}
|
}
|
||||||
const line = await tp.readLine();
|
const line = await tp.readLine();
|
||||||
if (line === null) throw new Deno.errors.UnexpectedEof();
|
if (line === null) throw new Deno.errors.UnexpectedEof();
|
||||||
// TODO: handle chunk extension
|
// TODO(bartlomieju): handle chunk extension
|
||||||
const [chunkSizeString] = line.split(";");
|
const [chunkSizeString] = line.split(";");
|
||||||
const chunkSize = parseInt(chunkSizeString, 16);
|
const chunkSize = parseInt(chunkSizeString, 16);
|
||||||
if (Number.isNaN(chunkSize) || chunkSize < 0) {
|
if (Number.isNaN(chunkSize) || chunkSize < 0) {
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
||||||
|
|
||||||
// This program serves files in the current directory over HTTP.
|
// This program serves files in the current directory over HTTP.
|
||||||
// TODO Stream responses instead of reading them into memory.
|
// TODO(bartlomieju): Stream responses instead of reading them into memory.
|
||||||
// TODO Add tests like these:
|
// TODO(bartlomieju): Add tests like these:
|
||||||
// https://github.com/indexzero/http-server/blob/master/test/http-server-test.js
|
// https://github.com/indexzero/http-server/blob/master/test/http-server-test.js
|
||||||
|
|
||||||
import { extname, posix } from "../path/mod.ts";
|
import { extname, posix } from "../path/mod.ts";
|
||||||
|
@ -141,7 +141,7 @@ export async function serveFile(
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: simplify this after deno.stat and deno.readDir are fixed
|
// TODO(bartlomieju): simplify this after deno.stat and deno.readDir are fixed
|
||||||
async function serveDir(
|
async function serveDir(
|
||||||
req: ServerRequest,
|
req: ServerRequest,
|
||||||
dirPath: string,
|
dirPath: string,
|
||||||
|
|
|
@ -201,7 +201,7 @@ Deno.test("serveDirectory", async function (): Promise<void> {
|
||||||
assert(page.includes("README.md"));
|
assert(page.includes("README.md"));
|
||||||
|
|
||||||
// `Deno.FileInfo` is not completely compatible with Windows yet
|
// `Deno.FileInfo` is not completely compatible with Windows yet
|
||||||
// TODO: `mode` should work correctly in the future.
|
// TODO(bartlomieju): `mode` should work correctly in the future.
|
||||||
// Correct this test case accordingly.
|
// Correct this test case accordingly.
|
||||||
Deno.build.os !== "windows" &&
|
Deno.build.os !== "windows" &&
|
||||||
assert(/<td class="mode">(\s)*\([a-zA-Z-]{10}\)(\s)*<\/td>/.test(page));
|
assert(/<td class="mode">(\s)*\([a-zA-Z-]{10}\)(\s)*<\/td>/.test(page));
|
||||||
|
|
|
@ -55,7 +55,7 @@ const readMakers: ReadMaker[] = [
|
||||||
fn: (r): iotest.OneByteReader => new iotest.OneByteReader(r),
|
fn: (r): iotest.OneByteReader => new iotest.OneByteReader(r),
|
||||||
},
|
},
|
||||||
{ name: "half", fn: (r): iotest.HalfReader => new iotest.HalfReader(r) },
|
{ name: "half", fn: (r): iotest.HalfReader => new iotest.HalfReader(r) },
|
||||||
// TODO { name: "data+err", r => new iotest.DataErrReader(r) },
|
// TODO(bartlomieju): { name: "data+err", r => new iotest.DataErrReader(r) },
|
||||||
// { name: "timeout", fn: r => new iotest.TimeoutReader(r) },
|
// { name: "timeout", fn: r => new iotest.TimeoutReader(r) },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -236,7 +236,7 @@ Deno.test({
|
||||||
assert(file.tempfile != null);
|
assert(file.tempfile != null);
|
||||||
assertEquals(file.size, size);
|
assertEquals(file.size, size);
|
||||||
assertEquals(file.type, "application/octet-stream");
|
assertEquals(file.type, "application/octet-stream");
|
||||||
// TODO checksum of tmp & sampleFile
|
// TODO(bartlomieju): checksum of tmp & sampleFile
|
||||||
} finally {
|
} finally {
|
||||||
await Deno.remove(multipartFile);
|
await Deno.remove(multipartFile);
|
||||||
await Deno.remove(sampleFile);
|
await Deno.remove(sampleFile);
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { notImplemented } from "../_utils.ts";
|
||||||
|
|
||||||
/** Revist once https://github.com/denoland/deno/issues/4017 lands */
|
/** Revist once https://github.com/denoland/deno/issues/4017 lands */
|
||||||
|
|
||||||
//TODO - 'path' can also be a Buffer. Neither of these polyfills
|
// TODO(bartlomieju) 'path' can also be a Buffer. Neither of these polyfills
|
||||||
//is available yet. See https://github.com/denoland/deno/issues/3403
|
//is available yet. See https://github.com/denoland/deno/issues/3403
|
||||||
export function access(
|
export function access(
|
||||||
_path: string | URL,
|
_path: string | URL,
|
||||||
|
@ -14,7 +14,7 @@ export function access(
|
||||||
notImplemented("Not yet available");
|
notImplemented("Not yet available");
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO - 'path' can also be a Buffer. Neither of these polyfills
|
// TODO(bartlomieju) 'path' can also be a Buffer. Neither of these polyfills
|
||||||
// is available yet. See https://github.com/denoland/deno/issues/3403
|
// is available yet. See https://github.com/denoland/deno/issues/3403
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
export function accessSync(path: string | URL, mode?: number): void {
|
export function accessSync(path: string | URL, mode?: number): void {
|
||||||
|
|
|
@ -45,7 +45,7 @@ export function appendFile(
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
if (mode) {
|
if (mode) {
|
||||||
//TODO rework once https://github.com/denoland/deno/issues/4017 completes
|
// TODO(bartlomieju) rework once https://github.com/denoland/deno/issues/4017 completes
|
||||||
notImplemented("Deno does not yet support setting mode on create");
|
notImplemented("Deno does not yet support setting mode on create");
|
||||||
}
|
}
|
||||||
Deno.open(pathOrRid as string, getOpenOptions(flag))
|
Deno.open(pathOrRid as string, getOpenOptions(flag))
|
||||||
|
@ -100,7 +100,7 @@ export function appendFileSync(
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
if (mode) {
|
if (mode) {
|
||||||
// TODO rework once https://github.com/denoland/deno/issues/4017 completes
|
// TODO(bartlomieju) rework once https://github.com/denoland/deno/issues/4017 completes
|
||||||
notImplemented("Deno does not yet support setting mode on create");
|
notImplemented("Deno does not yet support setting mode on create");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import timers from "./timers.ts";
|
||||||
// Definitions for this are quite delicate
|
// Definitions for this are quite delicate
|
||||||
// This ensures modifications to the global namespace don't break on TypeScript
|
// This ensures modifications to the global namespace don't break on TypeScript
|
||||||
|
|
||||||
// TODO
|
// TODO(bartlomieju):
|
||||||
// Deno lint marks globals defined by this module as undefined
|
// Deno lint marks globals defined by this module as undefined
|
||||||
// probably gonna change in the future
|
// probably gonna change in the future
|
||||||
|
|
||||||
|
|
|
@ -389,7 +389,7 @@ class Module {
|
||||||
const module = new Module(filename, parent);
|
const module = new Module(filename, parent);
|
||||||
|
|
||||||
if (isMain) {
|
if (isMain) {
|
||||||
// TODO: set process info
|
// TODO(bartlomieju): set process info
|
||||||
// process.mainModule = module;
|
// process.mainModule = module;
|
||||||
module.id = ".";
|
module.id = ".";
|
||||||
}
|
}
|
||||||
|
@ -1052,7 +1052,7 @@ type RequireWrapper = (
|
||||||
) => void;
|
) => void;
|
||||||
|
|
||||||
function wrapSafe(filename: string, content: string): RequireWrapper {
|
function wrapSafe(filename: string, content: string): RequireWrapper {
|
||||||
// TODO: fix this
|
// TODO(bartlomieju): fix this
|
||||||
const wrapper = Module.wrap(content);
|
const wrapper = Module.wrap(content);
|
||||||
// deno-lint-ignore no-explicit-any
|
// deno-lint-ignore no-explicit-any
|
||||||
const [f, err] = (Deno as any).core.evalContext(wrapper, filename);
|
const [f, err] = (Deno as any).core.evalContext(wrapper, filename);
|
||||||
|
@ -1135,7 +1135,7 @@ function makeRequireFunction(mod: Module): RequireFunction {
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve.paths = paths;
|
resolve.paths = paths;
|
||||||
// TODO: set main
|
// TODO(bartlomieju): set main
|
||||||
// require.main = process.mainModule;
|
// require.main = process.mainModule;
|
||||||
|
|
||||||
// Enable support to add extra extension types.
|
// Enable support to add extra extension types.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
||||||
// TODO: implement the 'NodeJS.Timeout' and 'NodeJS.Immediate' versions of the timers.
|
// TODO(bartlomieju): implement the 'NodeJS.Timeout' and 'NodeJS.Immediate' versions of the timers.
|
||||||
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/1163ead296d84e7a3c80d71e7c81ecbd1a130e9a/types/node/v12/globals.d.ts#L1120-L1131
|
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/1163ead296d84e7a3c80d71e7c81ecbd1a130e9a/types/node/v12/globals.d.ts#L1120-L1131
|
||||||
export const setTimeout = window.setTimeout;
|
export const setTimeout = window.setTimeout;
|
||||||
export const clearTimeout = window.clearTimeout;
|
export const clearTimeout = window.clearTimeout;
|
||||||
|
|
|
@ -76,7 +76,7 @@ function getPathFromURLWin(url: URL): string {
|
||||||
pathname = pathname.replace(forwardSlashRegEx, "\\");
|
pathname = pathname.replace(forwardSlashRegEx, "\\");
|
||||||
pathname = decodeURIComponent(pathname);
|
pathname = decodeURIComponent(pathname);
|
||||||
if (hostname !== "") {
|
if (hostname !== "") {
|
||||||
//TODO add support for punycode encodings
|
// TODO(bartlomieju): add support for punycode encodings
|
||||||
return `\\\\${hostname}${pathname}`;
|
return `\\\\${hostname}${pathname}`;
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, it's a local path that requires a drive letter
|
// Otherwise, it's a local path that requires a drive letter
|
||||||
|
|
|
@ -590,8 +590,10 @@ export default class Context {
|
||||||
const memoryView = new DataView(this.#memory.buffer);
|
const memoryView = new DataView(this.#memory.buffer);
|
||||||
memoryView.setUint8(offset, entry.type!);
|
memoryView.setUint8(offset, entry.type!);
|
||||||
memoryView.setUint16(offset + 2, entry.flags!, true);
|
memoryView.setUint16(offset + 2, entry.flags!, true);
|
||||||
memoryView.setBigUint64(offset + 8, 0n, true); // TODO
|
// TODO(bartlomieju)
|
||||||
memoryView.setBigUint64(offset + 16, 0n, true); // TODO
|
memoryView.setBigUint64(offset + 8, 0n, true);
|
||||||
|
// TODO(bartlomieju)
|
||||||
|
memoryView.setBigUint64(offset + 16, 0n, true);
|
||||||
|
|
||||||
return ERRNO_SUCCESS;
|
return ERRNO_SUCCESS;
|
||||||
}),
|
}),
|
||||||
|
@ -1371,19 +1373,19 @@ export default class Context {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fdflags & FDFLAGS_DSYNC) != 0) {
|
if ((fdflags & FDFLAGS_DSYNC) != 0) {
|
||||||
// TODO (caspervonb) review if we can emulate this.
|
// TODO(caspervonb): review if we can emulate this.
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fdflags & FDFLAGS_NONBLOCK) != 0) {
|
if ((fdflags & FDFLAGS_NONBLOCK) != 0) {
|
||||||
// TODO (caspervonb) review if we can emulate this.
|
// TODO(caspervonb): review if we can emulate this.
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fdflags & FDFLAGS_RSYNC) != 0) {
|
if ((fdflags & FDFLAGS_RSYNC) != 0) {
|
||||||
// TODO (caspervonb) review if we can emulate this.
|
// TODO(caspervonb): review if we can emulate this.
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fdflags & FDFLAGS_SYNC) != 0) {
|
if ((fdflags & FDFLAGS_SYNC) != 0) {
|
||||||
// TODO (caspervonb) review if we can emulate this.
|
// TODO(caspervonb): review if we can emulate this.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!options.read && !options.write && !options.truncate) {
|
if (!options.read && !options.write && !options.truncate) {
|
||||||
|
|
|
@ -4,10 +4,12 @@ import {
|
||||||
buildMode,
|
buildMode,
|
||||||
getPrebuiltToolPath,
|
getPrebuiltToolPath,
|
||||||
getSources,
|
getSources,
|
||||||
|
join,
|
||||||
ROOT_PATH,
|
ROOT_PATH,
|
||||||
} from "./util.js";
|
} from "./util.js";
|
||||||
|
|
||||||
async function dlint() {
|
async function dlint() {
|
||||||
|
const configFile = join(ROOT_PATH, ".dlint.json");
|
||||||
const execPath = getPrebuiltToolPath("dlint");
|
const execPath = getPrebuiltToolPath("dlint");
|
||||||
console.log("dlint");
|
console.log("dlint");
|
||||||
|
|
||||||
|
@ -49,7 +51,7 @@ async function dlint() {
|
||||||
}
|
}
|
||||||
for (const chunk of chunks) {
|
for (const chunk of chunks) {
|
||||||
const p = Deno.run({
|
const p = Deno.run({
|
||||||
cmd: [execPath, "run", ...chunk],
|
cmd: [execPath, "run", "--config=" + configFile, ...chunk],
|
||||||
});
|
});
|
||||||
const { success } = await p.status();
|
const { success } = await p.status();
|
||||||
if (!success) {
|
if (!success) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue