diff --git a/typescript-client/build.jsr.sh b/typescript-client/build.jsr.sh new file mode 100755 index 0000000000..e9c0bd9829 --- /dev/null +++ b/typescript-client/build.jsr.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -eou pipefail +script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +rm -rf "${script_dirpath}/src" + +npx --yes @hey-api/openapi-ts --input "${script_dirpath}/../backend/windmill-api/openapi.yaml" --output "${script_dirpath}/src" --useOptions --schemas false + +# Add explicit type as it's missing in the client source code. This will be unnecessary in newer openapi-ts versions +sed -i 's/get \[Symbol\.toStringTag\]() {/get \[Symbol\.toStringTag\]() : string {/g' "${script_dirpath}/src/core/CancelablePromise.ts" + +cp "${script_dirpath}/client.ts" "${script_dirpath}/src/" +cp "${script_dirpath}/s3Types.ts" "${script_dirpath}/src/" +echo "" >> "${script_dirpath}/src/index.ts" +echo 'export type { S3Object, DenoS3LightClientSettings } from "./s3Types";' >> "${script_dirpath}/src/index.ts" +echo "" >> "${script_dirpath}/src/index.ts" +echo 'export { type Base64, setClient, getVariable, setVariable, getResource, setResource, getResumeUrls, setState, getState, getIdToken, denoS3LightClientSettings, loadS3FileStream, loadS3File, writeS3File, task, runScript, runScriptAsync, waitJob, getRootJobId, setFlowUserState, getFlowUserState } from "./client";' >> "${script_dirpath}/src/index.ts" diff --git a/typescript-client/jsr.json b/typescript-client/jsr.json new file mode 100644 index 0000000000..4fd78d4b34 --- /dev/null +++ b/typescript-client/jsr.json @@ -0,0 +1,8 @@ +{ + "name": "@windmill-labs/windmill", + "version": "1.0.0", + "exports": "./src/index.ts", + "publish": { + "exclude": ["!src"] + } +} diff --git a/typescript-client/publish.jsr.sh b/typescript-client/publish.jsr.sh new file mode 100755 index 0000000000..8b71e8adf7 --- /dev/null +++ b/typescript-client/publish.jsr.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -eou pipefail +script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +args=${1:-} + +rm -rf "${script_dirpath}/dist" + +${script_dirpath}/build.jsr.sh +rm "${script_dirpath}/client.ts" +rm "${script_dirpath}/s3Types.ts" +npm install +tsc +cp "${script_dirpath}/src/client.ts" ${script_dirpath} +cp "${script_dirpath}/src/s3Types.ts" ${script_dirpath} +npx jsr publish ${args}