UNPKG

@softchef/cdk-iot-device-management

Version:

IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.

191 lines (190 loc) 6.14 kB
import { __read } from "tslib"; export var parseBoolean = function (value) { switch (value) { case "true": return true; case "false": return false; default: throw new Error("Unable to parse boolean value \"" + value + "\""); } }; export var expectBoolean = function (value) { if (value === null || value === undefined) { return undefined; } if (typeof value === "boolean") { return value; } throw new TypeError("Expected boolean, got " + typeof value); }; export var expectNumber = function (value) { if (value === null || value === undefined) { return undefined; } if (typeof value === "number") { return value; } throw new TypeError("Expected number, got " + typeof value); }; var MAX_FLOAT = Math.ceil(Math.pow(2, 127) * (2 - Math.pow(2, -23))); export var expectFloat32 = function (value) { var expected = expectNumber(value); if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) { if (Math.abs(expected) > MAX_FLOAT) { throw new TypeError("Expected 32-bit float, got " + value); } } return expected; }; export var expectLong = function (value) { if (value === null || value === undefined) { return undefined; } if (Number.isInteger(value) && !Number.isNaN(value)) { return value; } throw new TypeError("Expected integer, got " + typeof value); }; export var expectInt = expectLong; export var expectInt32 = function (value) { return expectSizedInt(value, 32); }; export var expectShort = function (value) { return expectSizedInt(value, 16); }; export var expectByte = function (value) { return expectSizedInt(value, 8); }; var expectSizedInt = function (value, size) { var expected = expectLong(value); if (expected !== undefined && castInt(expected, size) !== expected) { throw new TypeError("Expected " + size + "-bit integer, got " + value); } return expected; }; var castInt = function (value, size) { switch (size) { case 32: return Int32Array.of(value)[0]; case 16: return Int16Array.of(value)[0]; case 8: return Int8Array.of(value)[0]; } }; export var expectNonNull = function (value, location) { if (value === null || value === undefined) { if (location) { throw new TypeError("Expected a non-null value for " + location); } throw new TypeError("Expected a non-null value"); } return value; }; export var expectObject = function (value) { if (value === null || value === undefined) { return undefined; } if (typeof value === "object" && !Array.isArray(value)) { return value; } throw new TypeError("Expected object, got " + typeof value); }; export var expectString = function (value) { if (value === null || value === undefined) { return undefined; } if (typeof value === "string") { return value; } throw new TypeError("Expected string, got " + typeof value); }; export var expectUnion = function (value) { if (value === null || value === undefined) { return undefined; } var asObject = expectObject(value); var setKeys = Object.entries(asObject) .filter(function (_a) { var _b = __read(_a, 2), _ = _b[0], v = _b[1]; return v !== null && v !== undefined; }) .map(function (_a) { var _b = __read(_a, 2), k = _b[0], _ = _b[1]; return k; }); if (setKeys.length === 0) { throw new TypeError("Unions must have exactly one non-null member"); } if (setKeys.length > 1) { throw new TypeError("Unions must have exactly one non-null member. Keys " + setKeys + " were not null."); } return asObject; }; export var strictParseDouble = function (value) { if (typeof value == "string") { return expectNumber(parseNumber(value)); } return expectNumber(value); }; export var strictParseFloat = strictParseDouble; export var strictParseFloat32 = function (value) { if (typeof value == "string") { return expectFloat32(parseNumber(value)); } return expectFloat32(value); }; var NUMBER_REGEX = /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g; var parseNumber = function (value) { var matches = value.match(NUMBER_REGEX); if (matches === null || matches[0].length !== value.length) { throw new TypeError("Expected real number, got implicit NaN"); } return parseFloat(value); }; export var limitedParseDouble = function (value) { if (typeof value == "string") { return parseFloatString(value); } return expectNumber(value); }; export var handleFloat = limitedParseDouble; export var limitedParseFloat = limitedParseDouble; export var limitedParseFloat32 = function (value) { if (typeof value == "string") { return parseFloatString(value); } return expectFloat32(value); }; var parseFloatString = function (value) { switch (value) { case "NaN": return NaN; case "Infinity": return Infinity; case "-Infinity": return -Infinity; default: throw new Error("Unable to parse float value: " + value); } }; export var strictParseLong = function (value) { if (typeof value === "string") { return expectLong(parseNumber(value)); } return expectLong(value); }; export var strictParseInt = strictParseLong; export var strictParseInt32 = function (value) { if (typeof value === "string") { return expectInt32(parseNumber(value)); } return expectInt32(value); }; export var strictParseShort = function (value) { if (typeof value === "string") { return expectShort(parseNumber(value)); } return expectShort(value); }; export var strictParseByte = function (value) { if (typeof value === "string") { return expectByte(parseNumber(value)); } return expectByte(value); };