UNPKG

@shapediver/sdk.sdtf-primitives

Version:
84 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SdtfPrimitiveTypeGuard = void 0; const sdk_sdtf_core_1 = require("@shapediver/sdk.sdtf-core"); class SdtfPrimitiveTypeGuard { static assertBoolean(value) { if (!this.isBoolean(value)) throw new sdk_sdtf_core_1.SdtfError('Assertion error: Value is not a primitive boolean type.'); } static isBoolean(value) { return typeof value === 'boolean'; } static isBooleanType(typeHint) { return typeHint === sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.BOOLEAN; } static assertString(value) { if (!this.isString(value)) throw new sdk_sdtf_core_1.SdtfError('Assertion error: Value is not a primitive string type.'); } static isString(value) { return typeof value === 'string'; } static isStringType(typeHint) { return [ sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.CHAR, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.GUID, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.STRING, ].includes(typeHint); } static assertNumber(value) { if (!this.isNumber(value)) throw new sdk_sdtf_core_1.SdtfError('Assertion error: Value is not a primitive number type.'); } static isNumber(value) { return (0, sdk_sdtf_core_1.isNumber)(value); } static isNumberType(typeHint) { return [ sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.DECIMAL, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.DOUBLE, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.SINGLE, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT8, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT16, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT32, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.INT64, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT8, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT16, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT32, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.UINT64, ].includes(typeHint); } static assertColor(value) { if (!this.isColor(value)) throw new sdk_sdtf_core_1.SdtfError('Assertion error: Value is not a primitive color type.'); } static isColor(value) { return (0, sdk_sdtf_core_1.isNumberArray)(value) && value.length === 4; } static isColorType(typeHint) { return typeHint === sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.COLOR; } static assertDataView(value) { if (!this.isDataView(value)) throw new sdk_sdtf_core_1.SdtfError('Assertion error: Value is not a primitive data type.'); } static isDataView(value) { return ArrayBuffer.isView(value); } static isDataViewType(typeHint) { return [sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.DATA, sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.IMAGE].includes(typeHint); } static assertJson(value) { if (!this.isJson(value)) throw new sdk_sdtf_core_1.SdtfError('Assertion error: Value is not a primitive json type.'); } static isJson(value) { return (0, sdk_sdtf_core_1.isDataObject)(value) || Array.isArray(value); } static isJsonType(typeHint) { return typeHint === sdk_sdtf_core_1.SdtfPrimitiveTypeHintName.JSON; } } exports.SdtfPrimitiveTypeGuard = SdtfPrimitiveTypeGuard; //# sourceMappingURL=SdtfPrimitiveTypeGuard.js.map