@speckle/shared
Version:
Shared code between various Speckle JS packages
50 lines • 1.91 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.previewResultPayload = exports.jobPayload = void 0;
const zod_1 = __importDefault(require("zod"));
const job = zod_1.default.object({
jobId: zod_1.default.string()
});
exports.jobPayload = job.merge(zod_1.default.object({
url: zod_1.default.string(),
token: zod_1.default.string(),
responseQueue: zod_1.default.string()
}));
const previewPageResult = zod_1.default.object({
durationSeconds: zod_1.default.number().describe('Duration to generate the preview, in seconds'),
screenshots: zod_1.default.record(zod_1.default.string(), zod_1.default.string())
});
const durationDetail = zod_1.default.object({
loadDurationSeconds: zod_1.default
.number()
.describe('Duration to load the object from the server in seconds')
.optional(),
renderDurationSeconds: zod_1.default
.number()
.describe('Duration to render the preview images in seconds')
.optional()
});
const previewJobResult = previewPageResult.merge(durationDetail);
const previewSuccessPayload = job.merge(zod_1.default.object({
status: zod_1.default.literal('success'),
result: previewJobResult
}));
const previewErrorPayload = job.merge(zod_1.default.object({
status: zod_1.default.literal('error'),
reason: zod_1.default.string(),
result: zod_1.default
.object({
durationSeconds: zod_1.default
.number()
.describe('Duration spent processing the job before erroring, in seconds')
})
.merge(durationDetail)
}));
exports.previewResultPayload = zod_1.default.discriminatedUnion('status', [
previewSuccessPayload,
previewErrorPayload
]);
//# sourceMappingURL=job.js.map