UNPKG

@speckle/shared

Version:

Shared code between various Speckle JS packages

47 lines 1.66 kB
import z from 'zod'; import { TIME } from '../../core/index.js'; export const jobPayloadV1 = 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(30 * TIME.minute) .describe('The timeout for a single attempt of the job, in seconds.') }); const baseFileImportResult = z.object({ durationSeconds: z .number() .describe('Total duration to download & import the file, in seconds'), downloadDurationSeconds: z .number() .describe('Duration to download the file, in seconds. This is a sub-component of the total duration.'), parseDurationSeconds: z .number() .describe('Duration to parse the file, in seconds. This is a sub-component of the total duration.'), parser: z.string().describe('The parser used for the import') }); export const JobResultStatus = { Error: 'error', Success: 'success' }; const fileImportSuccessPayload = z.object({ status: z.literal(JobResultStatus.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(JobResultStatus.Error), reason: z.string(), result: baseFileImportResult }); export const fileImportResultPayload = z.discriminatedUnion('status', [ fileImportSuccessPayload, fileImportErrorPayload ]); //# sourceMappingURL=job.js.map