UNPKG

@shapediver/sdk.sdtf-primitives

Version:
49 lines 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SdtfPrimitiveTypeWriter = void 0; const sdk_sdtf_core_1 = require("@shapediver/sdk.sdtf-core"); const SdtfPrimitiveTypeValidator_1 = require("./SdtfPrimitiveTypeValidator"); class SdtfPrimitiveTypeWriter { constructor(factory) { this.factory = factory; this.validator = new SdtfPrimitiveTypeValidator_1.SdtfPrimitiveTypeValidator(); } writeComponent(component) { var _a; const typeHint = (_a = component.typeHint) === null || _a === void 0 ? void 0 : _a.name; switch (typeHint) { case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.BOOLEAN: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.CHAR: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.COLOR: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.DECIMAL: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.DOUBLE: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.GUID: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT8: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT16: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT32: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT64: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.JSON: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.SINGLE: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.STRING: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT8: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT16: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT32: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT64: delete component.accessor; break; case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.DATA: case sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.IMAGE: delete component.value; break; default: (0, sdk_sdtf_core_1.sdAssertUnreachable)(typeHint); } if (!this.validator.validateComponent(typeHint, component.value, component.accessor)) { throw new sdk_sdtf_core_1.SdtfError(`Cannot write component of type '${typeHint}': Invalid component.`); } } postProcessComponents(components) { } } exports.SdtfPrimitiveTypeWriter = SdtfPrimitiveTypeWriter; //# sourceMappingURL=SdtfPrimitiveTypeWriter.js.map