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