@shapediver/sdk.sdtf-primitives
Version:
Extension containing sdTF primitive types
49 lines • 2.49 kB
JavaScript
;
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