@speckle/shared
Version:
Shared code between various Speckle JS packages
36 lines • 1.11 kB
JavaScript
import z from 'zod';
import { TIME } from '../../core/index.js';
const job = z.object({
jobId: z.string()
});
export const jobPayload = job.merge(z.object({
serverUrl: z.string().url().describe('The url of the server'),
projectId: z.string(),
modelId: z.string(),
token: z.string(),
blobId: z.string(),
fileType: z.string(),
fileName: z.string(),
timeOutSeconds: z
.number()
.int()
.default(20 * TIME.minute)
}));
const baseFileImportResult = z.object({
durationSeconds: z.number().describe('Duration to import the file, in seconds')
});
const fileImportSuccessPayload = z.object({
status: z.literal('success'),
warnings: z.array(z.string()), //ok to be empty
result: baseFileImportResult.merge(z.object({ versionId: z.string() }))
});
const fileImportErrorPayload = z.object({
status: z.literal('error'),
reason: z.string(),
result: baseFileImportResult
});
export const fileImportResultPayload = z.discriminatedUnion('status', [
fileImportSuccessPayload,
fileImportErrorPayload
]);
//# sourceMappingURL=job.js.map