1 | SHELL := /usr/bin/env bash
|
2 | TYPESCRIPT_SOURCE_FILES = $(shell find src test -type f -name "*.ts" -o -name "*.tsx")
|
3 | PRIVATE = $(shell node -e "console.log(require('./package.json').private)")
|
4 |
|
5 | default: .linted .tested .built
|
6 | .PHONY: default
|
7 |
|
8 | .deps: package-lock.json
|
9 | ifndef NEW_VERSION
|
10 | if [ -f ".internal-dependencies" ]; then cat .internal-dependencies | xargs -n 1 scripts/npm-link; fi
|
11 | endif
|
12 | touch $@
|
13 |
|
14 | .codegen: .deps
|
15 | touch $@
|
16 |
|
17 | .built: .codegen $(TYPESCRIPT_SOURCE_FILES)
|
18 | npm run build
|
19 | touch $@
|
20 |
|
21 | .tested: .built $(TYPESCRIPT_SOURCE_FILES)
|
22 | TS_NODE_TRANSPILE_ONLY=1 npm run test
|
23 | touch $@
|
24 |
|
25 | .linted: $(TYPESCRIPT_SOURCE_FILES) package-lock.json
|
26 | npm run lint-fix
|
27 | touch $@
|
28 |
|
29 | package-lock.json: package.json
|
30 | npm install
|
31 | touch $@
|
32 |
|
33 | update-dependencies:
|
34 | npx npm-check-updates --upgrade
|
35 | .PHONY: update-dependencies
|
36 |
|
37 | pre-release: update-dependencies clean default
|
38 | .PHONY: pre-release
|
39 |
|
40 | update-version:
|
41 | ifdef NEW_VERSION
|
42 | npm --no-git-tag-version --allow-same-version version "$(NEW_VERSION)"
|
43 | else
|
44 | @echo -e "\033[0;31mNEW_VERSION is not defined. Can't update version :-(\033[0m"
|
45 | exit 1
|
46 | endif
|
47 | .PHONY: update-version
|
48 |
|
49 | publish: .codegen
|
50 | ifneq (true,$(PRIVATE))
|
51 | npm publish
|
52 | else
|
53 | @echo "Not publishing private npm module"
|
54 | endif
|
55 | .PHONY: publish
|
56 |
|
57 | post-release:
|
58 | @echo "No post-release needed for javascript"
|
59 | .PHONY: post-release
|
60 |
|
61 | clean: clean-javascript
|
62 | .PHONY: clean
|
63 |
|
64 | clean-javascript:
|
65 | rm -rf .deps .codegen .built .tested* .linted package-lock.json node_modules coverage dist acceptance
|
66 | .PHONY: clean-javascript
|
67 |
|
\ | No newline at end of file |