feat: support 1.38 flags

This commit is contained in:
Simon Lecoq
2023-11-02 21:55:45 -04:00
parent 18bdf2b271
commit 49351f4506
5 changed files with 58 additions and 7 deletions

View File

@@ -1,15 +1,24 @@
{
"tasks": {
"make": "deno run --allow-env --allow-read --allow-write=.deno-make.json --allow-run=deno ./mod.ts $0"
"make": "deno run --allow-env --allow-read --allow-write=.deno-make.json --allow-run=deno ./mod.ts $0",
"test": "deno task make test",
"code": "deno task make code",
"ci": "deno task make ci"
},
"+tasks": {
"test": {
"description": "🧪 Run tests and benchmarks. Print collected coverage",
"task": [
// Setup test environment
"mkdir -p .coverage &&",
"rm -rf .coverage &&",
"(echo '' > tests/.env) &&",
"(echo '{}' > tests/.imports.json) &&",
// Run tests and print coverage
"deno test &&",
"deno coverage .coverage &&",
"rm -rf tests/.[!.]* tests/*.exe"
// Cleanup test environment
"rm -rf .coverage tests/.[!.]* tests/*.exe"
],
"deno": {
"test": {
@@ -33,8 +42,15 @@
"task": "deno lint && deno fmt"
},
"code:check": {
"description": "🤖 Lint and check code fomatting",
"description": "🫧 Lint and check code fomatting",
"task": "deno lint && deno fmt --check"
},
"ci": {
"description": "🤖 CI checks",
"task": [
"deno task make code:check",
"deno task make test"
]
}
},
"fmt": {

12
mod.ts
View File

@@ -8,7 +8,10 @@ import { bgBrightBlue, bold, gray, italic, underline, yellow } from "https://den
/** Common flags */
const common = is.object({
unstable: is.boolean().optional().transform((v) => v ? "--unstable" : ""),
unstable: is.union([
is.boolean().transform((v) => v ? "--unstable" : ""),
is.array(is.string()).transform((v) => v.length ? v.map((w) => `--unstable-${w}`) : ""),
]).optional(),
quiet: is.boolean().optional().transform((v) => v ? "--quiet" : ""),
config: is.union([
is.boolean().transform((v) => v === false ? "--no-config" : ""),
@@ -26,6 +29,10 @@ const runnable = is.object({
certificateErrors: is.boolean().optional().transform((v) =>
v === false ? "--unsafely-ignore-certificate-errors" : ""
),
env: is.union([
is.boolean().transform((v) => v ? "--env" : ""),
is.string().min(1).transform((v) => `--env='${v}'`),
]).optional(),
})
/** Lock file flags */
@@ -234,6 +241,9 @@ const doc = common.pick({ unstable: true, quiet: true, importMap: true })
modules: modules.doc,
private: is.boolean().optional().transform((v) => v ? "--private" : ""),
json: is.boolean().optional().transform((v) => v ? "--json" : ""),
html: is.boolean().optional().transform((v) => v ? "--html" : ""),
name: is.string().optional().transform((v) => v ? `--name='${v}'` : ""),
output: is.string().optional().transform((v) => v ? `--output='${v}'` : ""),
}).transform((v) => Object.values(v).filter(Boolean).join(" "))
const _eval = common.merge(

View File

@@ -11,11 +11,23 @@
"unstable": true,
"quiet": true,
"certificateErrors": false,
"importMap": "imports.json",
"importMap": ".imports.json",
"cert": "/dev/null",
"location": "https://deno.test",
"seed": 0,
"v8Flags": ["--print-code"]
"v8Flags": ["--print-code"],
"env": true
},
"test": {
"env": ".env",
"unstable": ["kv", "bare-node-builtins"]
},
"bench": {
"env": false,
"unstable": []
},
"lint": {
"unstable": false
}
}
},

View File

@@ -19,6 +19,20 @@
"json": true
}
}
},
"flags:doc_alt": {
"task": [
"deno doc mod.ts;",
"rm -rf .docs"
],
"cwd": "tests",
"deno": {
"doc": {
"html": true,
"name": "test",
"output": ".docs"
}
}
}
}
}

View File

@@ -1 +0,0 @@
{}