UNPKG

@deno/kv

Version:

A Deno KV client library optimized for Node.js.

84 lines (83 loc) 3.37 kB
"use strict"; // Copyright 2023 the Deno authors. All rights reserved. MIT license. Object.defineProperty(exports, "__esModule", { value: true }); exports.check = exports.checkOptionalObject = exports.checkOptionalFunction = exports.checkOptionalNumber = exports.checkOptionalBoolean = exports.checkRecord = exports.checkOptionalString = exports.checkString = exports.checkMatches = exports.checkExpireIn = exports.checkKeyNotEmpty = exports.isDateTime = exports.isRecord = void 0; function isRecord(obj) { return typeof obj === "object" && obj !== null && !Array.isArray(obj) && obj.constructor === Object; } exports.isRecord = isRecord; function isDateTime(value) { return typeof value === "string" && /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(\.\d+)?Z$/.test(value); } exports.isDateTime = isDateTime; function checkKeyNotEmpty(key) { if (key.length === 0) throw new TypeError(`Key cannot be empty`); } exports.checkKeyNotEmpty = checkKeyNotEmpty; function checkExpireIn(expireIn) { const valid = expireIn === undefined || typeof expireIn === "number" && expireIn > 0 && Number.isSafeInteger(expireIn); if (!valid) { throw new TypeError(`Bad 'expireIn', expected optional positive integer, found ${expireIn}`); } } exports.checkExpireIn = checkExpireIn; function checkMatches(name, value, pattern) { const m = pattern.exec(value); if (!m) throw new TypeError(`Bad '${name}': ${value}`); return m; } exports.checkMatches = checkMatches; function checkString(name, value) { if (typeof value !== "string") { throw new TypeError(`Bad '${name}': expected string, found ${value}`); } } exports.checkString = checkString; function checkOptionalString(name, value) { if (!(value === undefined || typeof value === "string")) { throw new TypeError(`Bad '${name}': expected optional string, found ${value}`); } } exports.checkOptionalString = checkOptionalString; function checkRecord(name, value) { if (!isRecord(value)) { throw new TypeError(`Bad '${name}': expected simple object, found ${value}`); } } exports.checkRecord = checkRecord; function checkOptionalBoolean(name, value) { if (!(value === undefined || typeof value === "boolean")) { throw new TypeError(`Bad '${name}': expected optional boolean, found ${value}`); } } exports.checkOptionalBoolean = checkOptionalBoolean; function checkOptionalNumber(name, value) { if (!(value === undefined || typeof value === "number")) { throw new TypeError(`Bad '${name}': expected optional number, found ${value}`); } } exports.checkOptionalNumber = checkOptionalNumber; // deno-lint-ignore ban-types function checkOptionalFunction(name, value) { if (!(value === undefined || typeof value === "function")) { throw new TypeError(`Bad '${name}': expected optional function, found ${value}`); } } exports.checkOptionalFunction = checkOptionalFunction; function checkOptionalObject(name, value) { if (!(value === undefined || typeof value === "object")) { throw new TypeError(`Bad '${name}': expected optional object, found ${value}`); } } exports.checkOptionalObject = checkOptionalObject; function check(name, value, valid) { if (!valid) throw new TypeError(`Bad '${name}': ${value}`); } exports.check = check;