-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathMakefile
More file actions
135 lines (104 loc) · 5 KB
/
Makefile
File metadata and controls
135 lines (104 loc) · 5 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
129
130
131
132
133
134
135
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
# Generate MDX for all APIs (main + auth proxy).
# Requires both swagger files to be present in the repo root — see README for copy commands.
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
npx ts-node scripts/openapi-gen/swagger-to-openapi.ts --service=auth-proxy
cd scripts/openapi-gen && npx ts-node openapi-gen.ts \
--file=proxy_api_openapi.json \
--generate-mdx \
--mdx-output-dir=api-reference/auth-proxy \
--nav-group="Auth Proxy" \
--auth-proxy
# 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 [email protected]: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
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 [email protected]: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