Files
Dorod-Sky/scripts/fern_build_ts_sdk.sh

36 lines
1.6 KiB
Bash
Raw Normal View History

2025-10-23 20:14:59 -06:00
#!/usr/bin/env bash
2025-12-10 11:12:47 -07:00
#CURRENT_VERSION=$(grep '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/')
fern generate --group ts-sdk --log-level debug --version "$CURRENT_VERSION" --preview
2025-11-07 12:30:43 -07:00
mkdir -p skyvern-ts/client
2025-12-10 11:12:47 -07:00
mv skyvern-ts/client/src/library skyvern-ts/library
rm -rf skyvern-ts/client
mkdir -p skyvern-ts/client/src/library
mv skyvern-ts/library skyvern-ts/client/src/
cp -rf fern/.preview/fern-typescript-sdk/* skyvern-ts/client/
# Post-processing: Update repository references the monorepo
sed -i.bak 's|Skyvern-AI/skyvern-typescript|Skyvern-AI/skyvern|g' skyvern-ts/client/package.json
sed -i.bak 's|https://github.com/Skyvern-AI/skyvern-typescript/blob/HEAD/./reference.md|https://www.skyvern.com/docs/api-reference/api-reference|g' skyvern-ts/client/README.md
2025-12-10 11:12:47 -07:00
rm -f skyvern-ts/client/package.json.bak skyvern-ts/client/README.md.bak
# Export library classes from main index
cat >> skyvern-ts/client/src/index.ts << 'EOF'
export { Skyvern, SkyvernBrowser, SkyvernBrowserPageAgent, SkyvernBrowserPageAi } from "./library/index.js";
export type { SkyvernOptions, SkyvernBrowserPage } from "./library/index.js";
EOF
# Rename the API namespace to avoid conflict with Skyvern class
sed -i.bak 's/export \* as Skyvern from/export * as SkyvernApi from/g' skyvern-ts/client/src/index.ts
rm -f skyvern-ts/client/src/index.ts.bak
(cd skyvern-ts/client \
&& rm -rf node_modules package-lock.json \
&& npm install \
&& npx tsc --project ./tsconfig.cjs.json \
&& npx tsc --project ./tsconfig.esm.json \
&& node scripts/rename-to-esm-files.js dist/esm)
pre-commit run --all-files