* feat: Add runScriptByPath and runScriptByHash methods to SDK clients - Add runScriptByPath and runScriptByHash methods to TypeScript client - Add run_script_by_path and run_script_by_hash methods to Python client - Split functionality from existing methods that took both path and hash parameters - Add deprecation warnings to existing run_script methods - Maintain backward compatibility while encouraging use of focused methods Closes #6251 Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com> * Refactor SDK methods to eliminate code duplication - Extract common logic into internal helper methods - Python client: _run_script_async_internal() and _run_script_internal() - TypeScript client: _runScriptAsyncInternal() and _runScriptInternal() - Eliminate duplicated parameter processing and HTTP setup - Maintain exact same public API surface and functionality - Reduce lines of code while preserving all existing behaviors Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com> * fix ts and dev.nu for python * trade warnings.warn for logging.warning Signed-off-by: pyranota <pyra@duck.com> --------- Signed-off-by: pyranota <pyra@duck.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com> Co-authored-by: pyranota <pyra@duck.com>
43 lines
2.2 KiB
Bash
Executable File
43 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eou pipefail
|
|
script_dirpath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
rm -rf "${script_dirpath}/src"
|
|
|
|
npx --yes @hey-api/openapi-ts@0.43.0 --input "${script_dirpath}/../backend/windmill-api/openapi.yaml" --output "${script_dirpath}/src" --useOptions --schemas false
|
|
cat <<EOF - src/core/OpenAPI.ts > temp_file && mv temp_file src/core/OpenAPI.ts
|
|
const getEnv = (key: string) => {
|
|
if (typeof window === "undefined") {
|
|
if (typeof process !== "undefined") {
|
|
return process?.env?.[key];
|
|
}
|
|
// node
|
|
return globalThis?.process?.env?.[key];
|
|
}
|
|
// browser
|
|
return window?.process?.env?.[key];
|
|
};
|
|
|
|
const baseUrl = getEnv("BASE_INTERNAL_URL") ?? getEnv("BASE_URL") ?? "http://localhost:8000";
|
|
const baseUrlApi = (baseUrl ?? '') + "/api";
|
|
|
|
EOF
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
sed -i '' 's/WITH_CREDENTIALS: false/WITH_CREDENTIALS: true/g' src/core/OpenAPI.ts
|
|
sed -i '' 's/TOKEN: undefined/TOKEN: getEnv("WM_TOKEN")/g' src/core/OpenAPI.ts
|
|
sed -i '' "s/BASE: '\/api'/BASE: baseUrlApi/g" src/core/OpenAPI.ts
|
|
else
|
|
sed -i 's/WITH_CREDENTIALS: false/WITH_CREDENTIALS: true/g' src/core/OpenAPI.ts
|
|
sed -i 's/TOKEN: undefined/TOKEN: getEnv("WM_TOKEN")/g' src/core/OpenAPI.ts
|
|
sed -i "s/BASE: '\/api'/BASE: baseUrlApi/g" src/core/OpenAPI.ts
|
|
fi
|
|
|
|
|
|
|
|
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, setProgress, getProgress, getState, getIdToken, denoS3LightClientSettings, loadS3FileStream, loadS3File, writeS3File, signS3Objects, signS3Object, task, runScript, runScriptAsync, runScriptByPath, runScriptByHash, runScriptByPathAsync, runScriptByHashAsync, runFlow, runFlowAsync, waitJob, getRootJobId, setFlowUserState, getFlowUserState, usernameToEmail, requestInteractiveSlackApproval, Sql, requestInteractiveTeamsApproval } from "./client";' >> "${script_dirpath}/src/index.ts"
|