3 Commits
1.0.0 ... 1.0.1

Author SHA1 Message Date
Simon Lecoq
6bf3d3b5d1 chore: update deno.jsonc 2023-11-04 19:48:52 +00:00
Simon Lecoq
9ad8bf580d fix: --reload and --check from modules were not parsed correcly 2023-11-04 19:35:37 +00:00
Simon Lecoq
79c2610348 feat: add .devcontainer 2023-11-04 19:35:06 +00:00
5 changed files with 51 additions and 15 deletions

9
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,9 @@
FROM --platform=linux/amd64 mcr.microsoft.com/vscode/devcontainers/base:0-bullseye
ENV DENO_INSTALL=/deno
RUN mkdir -p /deno \
&& curl -fsSL https://deno.land/x/install/install.sh | sh \
&& chown -R vscode /deno
ENV PATH=${DENO_INSTALL}/bin:${PATH} \
DENO_DIR=${DENO_INSTALL}/.cache/deno

View File

@@ -0,0 +1,12 @@
{
"name": "Deno",
"build": {
"dockerfile": "Dockerfile"
},
"customizations": {
"vscode": {
"extensions": ["denoland.vscode-deno"]
}
},
"remoteUser": "vscode"
}

View File

@@ -71,9 +71,7 @@ for convenience.
}
```
<!-- deno-fmt-ignore -->
> [!NOTE]
> It is even possible to alias `deno task make <+task>` to `deno task <+task>` !
> ℹ️ It is even possible to alias `deno task make <+task>` to `deno task <+task>` !
>
> ```jsonc
> // deno.jsonc
@@ -91,9 +89,7 @@ for convenience.
deno task make <+task>
```
<!-- deno-fmt-ignore -->
> [!NOTE]
> If _deno_make_ was aliased back to `deno task`, just use the following instead:
> ℹ️ If _deno_make_ was aliased back to `deno task`, just use the following instead:
>
> ```bash
> deno task start

View File

@@ -3,6 +3,8 @@
"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",
"check": "deno task make check",
"cache": "deno task make cache",
"ci": "deno task make ci"
},
"+tasks": {
@@ -41,14 +43,31 @@
"description": "🧼 Lint and format code",
"task": "deno lint && deno fmt"
},
"code:check": {
"check": {
"description": "🫧 Lint and check code fomatting",
"task": "deno lint && deno fmt --check"
"task": "deno lint && deno fmt",
"deno": {
"fmt": {
"check": true
}
}
},
"cache": {
"description": "📦 Cache dependencies",
"task": "deno cache *.ts",
"deno": {
"cache": {
"modules": {
"reload": true,
"check": "all"
}
}
}
},
"ci": {
"description": "🤖 CI checks",
"task": [
"deno task make code:check &&",
"deno task make check &&",
"deno task make test"
]
}

12
mod.ts
View File

@@ -128,11 +128,11 @@ const _modules = is.object({
check: is.union([
is.boolean().transform((v) => v ? "--check=all" : "--no-check"),
is.string().min(1).transform((v) => `--check=${v}`),
]).optional().transform((v) => Object.values(v ?? {}).filter(Boolean).join(" ")),
]).optional(),
reload: is.union([
is.boolean().transform((v) => v ? "--reload" : ""),
is.array(is.string()).transform((v) => v.length ? `--reload=${v.join(",")}` : ""),
]).optional().transform((v) => Object.values(v ?? {}).filter(Boolean).join(" ")),
]).optional(),
node_modules: is.boolean().optional().transform((v) => typeof v === "boolean" ? `--node-modules-dir=${v}` : ""),
vendor: is.boolean().optional().transform((v) => typeof v === "boolean" ? `--vendor=${v}` : ""),
})
@@ -174,8 +174,8 @@ const inspect = is.union([
listen: is.string().min(1).optional().transform((v) => v ? `--inspect='${v}'` : ""),
break: is.string().min(1).optional().transform((v) => v ? `--inspect-brk='${v}'` : ""),
wait: is.string().min(1).optional().transform((v) => v ? `--inspect-wait='${v}'` : ""),
}),
]).optional().transform((v) => Object.values(v ?? {}).filter(Boolean).join(" "))
}).transform((v) => Object.values(v ?? {}).filter(Boolean).join(" ")),
]).optional()
/** Watch flags */
const watch = is.union([
@@ -184,8 +184,8 @@ const watch = is.union([
is.object({
files: is.array(is.string()).optional().transform((v) => v?.length ? `--watch='${v.join(",")}'` : ""),
clearScreen: is.boolean().optional().transform((v) => v === false ? "--no-clear-screen" : ""),
}),
]).optional().transform((v) => Object.values(v ?? {}).filter(Boolean).join(" "))
}).transform((v) => Object.values(v ?? {}).filter(Boolean).join(" ")),
]).optional()
// Deno flags =========================================================================================================