-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathMakefile
More file actions
128 lines (97 loc) · 4.66 KB
/
Makefile
File metadata and controls
128 lines (97 loc) · 4.66 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
ROOT := $(shell git rev-parse --show-toplevel)
JS_SDK_ROOT := $(ROOT)/../sdk
.PHONY: openapi-gen gen tags mintlify-check
# Convenience method to start dev server
dev:
mintlify dev
# Install deps for OpenAPI
install:
cd scripts/openapi-gen && npm install
# Default MDX generation target
gen: mintlify-check
npx ts-node scripts/openapi-gen/swagger-to-openapi.ts
cd scripts/openapi-gen && npx ts-node openapi-gen.ts --file=openapi.json --generate-mdx
# Run the OpenAPI generator (allows custom ARGS)
openapi-gen: mintlify-check
cd scripts/openapi-gen && npx ts-node openapi-gen.ts $(ARGS)
tags: mintlify-check
cd scripts/openapi-gen && npx ts-node openapi-gen.ts --file=openapi.json --list-endpoints-tags ../../snippets/data/endpoint-tags.mdx
mintlify-check:
@current=$$(mintlify --version 2>/dev/null || echo "not installed"); \
latest=$$(npm view mintlify version 2>/dev/null || echo "unknown"); \
if [ "$$current" != "$$latest" ]; then \
echo "⬆️ Updating Mintlify CLI: $$current → $$latest..."; \
npm install -g mintlify@latest; \
echo "✅ Mintlify CLI updated to $$(mintlify --version)"; \
else \
echo "✅ Mintlify CLI is up to date ($$current)"; \
fi
.PHONY: sync-sdk-gen-docs
sync-sdk-gen-docs:
@if [ ! -d $(JS_SDK_ROOT) ]; then git clone git@github.com:tkhq/sdk.git $(JS_SDK_ROOT); fi
cd $(JS_SDK_ROOT) && \
SDK_TAG=$$(curl -sI https://github.com/tkhq/sdk/releases/latest | grep -i '^location:' | sed 's|.*/tag/||' | tr -d '\r\n') && \
echo "Checking out latest SDK release: $$SDK_TAG" && \
git fetch --tags && \
git checkout $$SDK_TAG && \
pnpm run clean-all && \
pnpm run build-all
cp docs.json $(JS_SDK_ROOT)/generated-docs
@mkdir -p ./generated-docs
@echo Generating docs and formatting output into mdx...
cd $(JS_SDK_ROOT) && \
SDK_TAG=$$(git describe --tags --exact-match) && \
sed -i.bak "s/\"gitRevision\": \"[^\"]*\"/\"gitRevision\": \"$$SDK_TAG\"/" typedoc.json && \
rm -f typedoc.json.bak && \
pnpm exec typedoc --options typedoc.json && \
git restore typedoc.json
cd $(JS_SDK_ROOT) && pnpm exec typedoc --options typedoc.json
(cd $(JS_SDK_ROOT) && node $(JS_SDK_ROOT)/typedoc-theme/format-json-output.js \
--packages react-wallet-kit core react-native-wallet-kit \
--groups React "TypeScript | Frontend" "React Native")
@echo Running prettier...
(cd $(JS_SDK_ROOT) && pnpm run prettier-all:write)
@echo Copying synced docs.json to root...
cp $(JS_SDK_ROOT)/generated-docs/docs.json docs.json
@echo Copying formatted docs to ./generated-docs...
cp -R $(JS_SDK_ROOT)/generated-docs/react-wallet-kit ./generated-docs
cp -R $(JS_SDK_ROOT)/generated-docs/core ./generated-docs
cp -R $(JS_SDK_ROOT)/generated-docs/react-native-wallet-kit ./generated-docs
@echo Copying formatted changelogs to ./changelogs...
cp -R $(JS_SDK_ROOT)/generated-docs/changelogs .
@echo Deleting temporary files...
find $(JS_SDK_ROOT)/generated-docs -mindepth 1 \
! -name 'docs.json' \
! -name 'sdk-docs.json' \
-exec rm -rf {} +
@echo Sync complete! Checking back out main branch in SDK repo...
cd $(JS_SDK_ROOT) && git checkout main
# Convenience method to sync docs without checking out latest release (e.g. for testing/instant syncing)
# If you want the references to reflect the latest release, update the "packageOptions" in the repo level typedoc.json to have "gitRevision": "<TAG>" and then run this target
.PHONY: sync-sdk-gen-docs-off-main
sync-sdk-gen-docs-off-main:
@if [ ! -d $(JS_SDK_ROOT) ]; then git clone git@github.com:tkhq/sdk.git $(JS_SDK_ROOT); fi
cp docs.json $(JS_SDK_ROOT)/generated-docs
@mkdir -p ./generated-docs
@echo Generating docs and formatting output into mdx...
cd $(JS_SDK_ROOT) && pnpm exec typedoc --options typedoc.json
(cd $(JS_SDK_ROOT) && node $(JS_SDK_ROOT)/typedoc-theme/format-json-output.js \
--packages react-wallet-kit core react-native-wallet-kit \
--groups React "TypeScript | Frontend" "React Native")
@echo Running prettier...
(cd $(JS_SDK_ROOT) && pnpm run prettier-all:write)
@echo Copying synced docs.json to root...
cp $(JS_SDK_ROOT)/generated-docs/docs.json docs.json
@echo Copying formatted docs to ./generated-docs...
cp -R $(JS_SDK_ROOT)/generated-docs/react-wallet-kit ./generated-docs
cp -R $(JS_SDK_ROOT)/generated-docs/core ./generated-docs
cp -R $(JS_SDK_ROOT)/generated-docs/react-native-wallet-kit ./generated-docs
@echo Copying formatted changelogs to ./changelogs...
cp -R $(JS_SDK_ROOT)/generated-docs/changelogs .
@echo Deleting temporary files...
find $(JS_SDK_ROOT)/generated-docs -mindepth 1 \
! -name 'docs.json' \
! -name 'sdk-docs.json' \
-exec rm -rf {} +
@echo Sync complete! Checking back out main branch in SDK repo...
cd $(JS_SDK_ROOT) && git checkout main