-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
68 lines (57 loc) · 1.26 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
SRC = $(wildcard src/*.ts) $(wildcard src/*.tsx)
LIB0 = $(SRC:src/%.ts=lib/%.js)
LIB = $(LIB0:src/%.tsx=lib/%.js)
DTS = $(LIB:%.js=%.d.ts)
DTS0 = $(DTS:lib/%=node_modules/.cache/tsbuild/src/%)
.PHONY: build
build: api.js main.js $(LIB) $(DTS)
.PHONY: check
check $(DTS0):
@pnpm tsc -b .
.PHONY: test
test:
@pnpm playwright test -j1
.PHONY: clean
clean:
rm -rf lib main.js api.js
.PHONY: fmt
fmt:
@pnpm prettier --write .
.envrc:
echo 'layout nodenv 16.13.2' > $@
echo 'export PROJECT__ROOT="$$PWD"' >> $@
echo 'PATH_add "$$PROJECT__ROOT/.bin"' >> $@
main.js: $(wildcard bin/*) pnpm-lock.yaml
@mkdir -p $(@D)
@pnpm esbuild \
--bundle \
--sourcemap=inline \
--platform=node \
--external:esbuild \
--external:fb-watchman \
--log-level=error \
--outfile=$@ ./bin/main.ts
@chmod +x $@
api.js: $(wildcard src/*)
@mkdir -p $(@D)
@pnpm esbuild \
--bundle \
--sourcemap=inline \
--platform=node \
--log-level=error \
--outfile=$@ src/api.ts
lib/%.js: src/%.ts
@mkdir -p $(@D)
@pnpm esbuild \
--platform=browser \
--log-level=error \
--outfile=$@ $<
lib/%.js: src/%.tsx
@mkdir -p $(@D)
@pnpm esbuild \
--platform=browser \
--log-level=error \
--outfile=$@ $<
lib/%.d.ts: node_modules/.cache/tsbuild/src/%.d.ts
@mkdir -p $(@D)
@cp $< $@