Skip to content

Commit 4d62b85

Browse files
committed
build: publish to node
blocked by denoland/node_shims#110
1 parent 02949d6 commit 4d62b85

File tree

3 files changed

+63
-1
lines changed

3 files changed

+63
-1
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
.DS_Store
66
.DS_Store?
77
dist
8+
npm
89
testing/__snapshots__/snapshot_test_fixture.ts.snap
910
testing/__snapshots__/snapshot_test_fixture_2.ts.snap
1011
__snapshots_test__

_utils/build_npm.ts

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { build, emptyDir } from "https://deno.land/x/[email protected]/mod.ts";
2+
import { parse } from "https://deno.land/[email protected]/yaml/mod.ts";
3+
import { z } from "https://deno.land/x/[email protected]/mod.ts";
4+
5+
const getManager = async (manager: "npm" | "yarn" | "pnpm") => {
6+
try {
7+
await new Deno.Command(manager, { args: ["--version"] }).output();
8+
return manager;
9+
} catch {
10+
return "npm";
11+
}
12+
};
13+
14+
const outDir = "./npm";
15+
16+
const eggSchema = z.object({
17+
version: z.string(),
18+
description: z.string(),
19+
});
20+
21+
const egg = parse(await Deno.readTextFile("./egg.yaml"));
22+
23+
await emptyDir(outDir);
24+
25+
await build({
26+
entryPoints: ["./mod.ts"],
27+
outDir,
28+
shims: {
29+
deno: true,
30+
timers: true,
31+
undici: true,
32+
},
33+
packageManager: await getManager("pnpm"),
34+
typeCheck: "both",
35+
declaration: "separate",
36+
esModule: true,
37+
scriptModule: false,
38+
package: {
39+
...eggSchema.parse(egg),
40+
41+
name: "deno-cliffy",
42+
license: "MIT",
43+
44+
repository: {
45+
type: "git",
46+
url: "git+https://github.com/c4spar/deno-cliffy.git",
47+
},
48+
bugs: {
49+
url: "https://github.com/c4spar/deno-cliffy/issues",
50+
},
51+
compilerOptions: {
52+
target: "ESNext",
53+
sourceMap: true,
54+
},
55+
},
56+
postBuild: async () => {
57+
await Deno.copyFile("LICENSE", "npm/LICENSE");
58+
await Deno.copyFile("README.md", "npm/README.md");
59+
},
60+
});

deno.jsonc

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"exclude": ["dist"],
2+
"exclude": ["dist", "npm"],
33
"tasks": {
44
"lint": "deno lint && deno fmt --check",
55
"fmt": "deno fmt",
@@ -14,6 +14,7 @@
1414
"coverage:prompt": "deno task test prompt --coverage=./dist/coverage/prompt/result && deno coverage --lcov ./dist/coverage/prompt/result > ./dist/coverage/prompt/cov.lcov",
1515
"coverage:table": "deno task test table --coverage=./dist/coverage/table/result && deno coverage --lcov ./dist/coverage/table/result > ./dist/coverage/table/cov.lcov",
1616
"eggs": "deno run -A https://x.nest.land/[email protected]/eggs.ts",
17+
"npm": "deno run -A _utils/build_npm.ts",
1718
"update": "deno run --allow-read=./ --allow-net --allow-write=./ https://deno.land/x/[email protected]/cli.ts --ignore README.md CHANGELOG.md CONTRIBUTING.md"
1819
// "update": "deno run --allow-read=./ --allow-write=./ https://deno.land/x/[email protected]/main.ts" globs are a bit weird in tasks: https://github.com/denoland/deno/discussions/15625
1920
}

0 commit comments

Comments
 (0)