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": { "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": { "+tasks": {
"test": { "test": {
"description": "🧪 Run tests and benchmarks. Print collected coverage", "description": "🧪 Run tests and benchmarks. Print collected coverage",
"task": [ "task": [
// Setup test environment
"mkdir -p .coverage &&",
"rm -rf .coverage &&", "rm -rf .coverage &&",
"(echo '' > tests/.env) &&",
"(echo '{}' > tests/.imports.json) &&",
// Run tests and print coverage
"deno test &&", "deno test &&",
"deno coverage .coverage &&", "deno coverage .coverage &&",
"rm -rf tests/.[!.]* tests/*.exe" // Cleanup test environment
"rm -rf .coverage tests/.[!.]* tests/*.exe"
], ],
"deno": { "deno": {
"test": { "test": {
@@ -33,8 +42,15 @@
"task": "deno lint && deno fmt" "task": "deno lint && deno fmt"
}, },
"code:check": { "code:check": {
"description": "🤖 Lint and check code fomatting", "description": "🫧 Lint and check code fomatting",
"task": "deno lint && deno fmt --check" "task": "deno lint && deno fmt --check"
},
"ci": {
"description": "🤖 CI checks",
"task": [
"deno task make code:check",
"deno task make test"
]
} }
}, },
"fmt": { "fmt": {

12
mod.ts
View File

@@ -8,7 +8,10 @@ import { bgBrightBlue, bold, gray, italic, underline, yellow } from "https://den
/** Common flags */ /** Common flags */
const common = is.object({ 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" : ""), quiet: is.boolean().optional().transform((v) => v ? "--quiet" : ""),
config: is.union([ config: is.union([
is.boolean().transform((v) => v === false ? "--no-config" : ""), is.boolean().transform((v) => v === false ? "--no-config" : ""),
@@ -26,6 +29,10 @@ const runnable = is.object({
certificateErrors: is.boolean().optional().transform((v) => certificateErrors: is.boolean().optional().transform((v) =>
v === false ? "--unsafely-ignore-certificate-errors" : "" 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 */ /** Lock file flags */
@@ -234,6 +241,9 @@ const doc = common.pick({ unstable: true, quiet: true, importMap: true })
modules: modules.doc, modules: modules.doc,
private: is.boolean().optional().transform((v) => v ? "--private" : ""), private: is.boolean().optional().transform((v) => v ? "--private" : ""),
json: is.boolean().optional().transform((v) => v ? "--json" : ""), 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(" ")) }).transform((v) => Object.values(v).filter(Boolean).join(" "))
const _eval = common.merge( const _eval = common.merge(

View File

@@ -11,11 +11,23 @@
"unstable": true, "unstable": true,
"quiet": true, "quiet": true,
"certificateErrors": false, "certificateErrors": false,
"importMap": "imports.json", "importMap": ".imports.json",
"cert": "/dev/null", "cert": "/dev/null",
"location": "https://deno.test", "location": "https://deno.test",
"seed": 0, "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 "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 @@
{}