@speckle/shared
Version:
Shared code between various Speckle JS packages
53 lines • 2.3 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.fileImportResultPayload = exports.JobResultStatus = exports.jobPayloadV1 = void 0;
const zod_1 = __importDefault(require("zod"));
const index_js_1 = require("../../core/index.js");
exports.jobPayloadV1 = zod_1.default.object({
serverUrl: zod_1.default.string().url().describe('The url of the server'),
projectId: zod_1.default.string(),
modelId: zod_1.default.string(),
token: zod_1.default.string(),
blobId: zod_1.default.string(),
fileType: zod_1.default.string(),
fileName: zod_1.default.string(),
timeOutSeconds: zod_1.default
.number()
.int()
.default(30 * index_js_1.TIME.minute)
.describe('The timeout for a single attempt of the job, in seconds.')
});
const baseFileImportResult = zod_1.default.object({
durationSeconds: zod_1.default
.number()
.describe('Total duration to download & import the file, in seconds'),
downloadDurationSeconds: zod_1.default
.number()
.describe('Duration to download the file, in seconds. This is a sub-component of the total duration.'),
parseDurationSeconds: zod_1.default
.number()
.describe('Duration to parse the file, in seconds. This is a sub-component of the total duration.'),
parser: zod_1.default.string().describe('The parser used for the import')
});
exports.JobResultStatus = {
Error: 'error',
Success: 'success'
};
const fileImportSuccessPayload = zod_1.default.object({
status: zod_1.default.literal(exports.JobResultStatus.Success),
warnings: zod_1.default.array(zod_1.default.string()), //ok to be empty
result: baseFileImportResult.merge(zod_1.default.object({ versionId: zod_1.default.string() }))
});
const fileImportErrorPayload = zod_1.default.object({
status: zod_1.default.literal(exports.JobResultStatus.Error),
reason: zod_1.default.string(),
result: baseFileImportResult
});
exports.fileImportResultPayload = zod_1.default.discriminatedUnion('status', [
fileImportSuccessPayload,
fileImportErrorPayload
]);
//# sourceMappingURL=job.js.map