fix: import migration via web api body
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-04-27 16:46:01 +08:00
parent 3178c26095
commit 9aae7afb2e
3 changed files with 124 additions and 18 deletions

View File

@@ -133,6 +133,42 @@ export async function callSpacetimeProcedure(options, procedureName, input) {
return parseProcedureResult(text);
}
export async function createSpacetimeWebIdentity(options) {
const serverUrl = resolveServerUrl(options).replace(/\/+$/u, '');
const url = `${serverUrl}/v1/identity`;
let response;
try {
response = await fetch(url, { method: 'POST' });
} catch (error) {
throw new Error(
`SpacetimeDB identity 请求失败: ${url}; ${error instanceof Error ? error.message : String(error)}`,
);
}
const text = await response.text();
if (!response.ok) {
throw new Error(`SpacetimeDB identity HTTP ${response.status}: ${trimPreview(text)}`);
}
let payload;
try {
payload = JSON.parse(text);
} catch (error) {
throw new Error(
`SpacetimeDB identity 响应不是合法 JSON: ${error instanceof Error ? error.message : String(error)}`,
);
}
const identity =
payload.identity ?? payload.Identity ?? payload.identity_hex ?? payload.identityHex;
const token = payload.token ?? payload.Token;
if (typeof identity !== 'string' || typeof token !== 'string') {
throw new Error(`SpacetimeDB identity 响应缺少 identity/token: ${trimPreview(text)}`);
}
return { identity, token };
}
export async function callSpacetimeProcedureAuto(options, procedureName, input) {
if (options.useHttp) {
return callSpacetimeProcedure(options, procedureName, input);
@@ -266,7 +302,7 @@ function normalizeTableStats(value) {
});
}
function resolveServerUrl(options) {
export function resolveServerUrl(options) {
if (options.serverUrl) {
return options.serverUrl;
}