@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
31 lines (29 loc) • 4 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/errors/get-type-name.ts
var { toString } = Object.prototype;
var funcNameRegex = /^\s*function\s*([^\(\s]+)/i;
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
__name(capitalize, "capitalize");
function getFuncName(func) {
return func.name || funcNameRegex.exec(func.toString())?.[1] || "Function";
}
__name(getFuncName, "getFuncName");
function getConstructorName(obj) {
const name = toString.call(obj).slice(8, -1);
if ((name === "Object" || name === "Error") && typeof obj.constructor === "function") {
return getFuncName(obj.constructor);
}
return name;
}
__name(getConstructorName, "getConstructorName");
function getTypeName(x) {
return x == null ? String(x) : typeof x === "object" ? getConstructorName(x) : typeof x === "bigint" ? "BigInt" : typeof x === "function" ? getFuncName(x.constructor) : capitalize(typeof x);
}
__name(getTypeName, "getTypeName");
export {
getTypeName as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Vycm9ycy9nZXQtdHlwZS1uYW1lLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvLyBcdTUzQzJcdTgwMDM6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2FkYS90eXBlLW5hbWUvYmxvYi9tYXN0ZXIvaW5kZXguanNcblxuY29uc3QgeyB0b1N0cmluZyB9ID0gT2JqZWN0LnByb3RvdHlwZTtcbmNvbnN0IGZ1bmNOYW1lUmVnZXggPSAvXlxccypmdW5jdGlvblxccyooW15cXChcXHNdKykvaTtcblxuZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG59XG5cbmZ1bmN0aW9uIGdldEZ1bmNOYW1lKGZ1bmM6IEZ1bmN0aW9uKTogc3RyaW5nIHtcbiAgcmV0dXJuIChmdW5jLm5hbWUgfHwgZnVuY05hbWVSZWdleC5leGVjKGZ1bmMudG9TdHJpbmcoKSk/LlsxXSkgfHwgXCJGdW5jdGlvblwiO1xufVxuXG5mdW5jdGlvbiBnZXRDb25zdHJ1Y3Rvck5hbWUob2JqOiBvYmplY3QpOiBzdHJpbmcge1xuICBjb25zdCBuYW1lID0gdG9TdHJpbmcuY2FsbChvYmopLnNsaWNlKDgsIC0xKTtcblxuICBpZiAoXG4gICAgKG5hbWUgPT09IFwiT2JqZWN0XCIgfHwgbmFtZSA9PT0gXCJFcnJvclwiKVxuICAgICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IgPT09IFwiZnVuY3Rpb25cIlxuICApIHtcbiAgICByZXR1cm4gZ2V0RnVuY05hbWUob2JqLmNvbnN0cnVjdG9yKTtcbiAgfVxuXG4gIHJldHVybiBuYW1lO1xufVxuXG5leHBvcnQgdHlwZSBUeXBlTmFtZSA9XG4gIHwgXCJudWxsXCJcbiAgfCBcInVuZGVmaW5lZFwiXG4gIHwgXCJPYmplY3RcIlxuICB8IFwiUmVnRXhwXCJcbiAgfCBcIlVSTFwiXG4gIHwgXCJEYXRlXCJcbiAgfCBcIkFycmF5XCJcbiAgfCBcIk1hcFwiXG4gIHwgXCJTZXRcIlxuICB8IFwiUHJvbWlzZVwiXG4gIHwgXCJGdW5jdGlvblwiXG4gIHwgXCJHZW5lcmF0b3JGdW5jdGlvblwiXG4gIHwgXCJBc3luY0dlbmVyYXRvckZ1bmN0aW9uXCJcbiAgfCBcIkJpZ0ludFwiXG4gIHwgXCJCb29sZWFuXCJcbiAgfCBcIk51bWJlclwiXG4gIHwgXCJTdHJpbmdcIlxuICB8IFwiU3ltYm9sXCJcbiAgfCBcIlVpbnQ4QXJyYXlcIlxuICB8IFwiQXJyYXlCdWZmZXJcIlxuICB8IFwiQnVmZmVyXCJcbiAgfCAoc3RyaW5nICYge30pO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRUeXBlTmFtZSh4OiB1bmtub3duKTogVHlwZU5hbWUge1xuICByZXR1cm4geCA9PSBudWxsXG4gICAgPyBTdHJpbmcoeClcbiAgICA6IHR5cGVvZiB4ID09PSBcIm9iamVjdFwiXG4gICAgPyBnZXRDb25zdHJ1Y3Rvck5hbWUoeClcbiAgICA6IHR5cGVvZiB4ID09PSBcImJpZ2ludFwiXG4gICAgPyBcIkJpZ0ludFwiXG4gICAgOiB0eXBlb2YgeCA9PT0gXCJmdW5jdGlvblwiXG4gICAgPyBnZXRGdW5jTmFtZSh4LmNvbnN0cnVjdG9yKVxuICAgIDogY2FwaXRhbGl6ZSh0eXBlb2YgeCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7O0FBRUEsSUFBTSxFQUFFLFNBQVMsSUFBSSxPQUFPO0FBQzVCLElBQU0sZ0JBQWdCO0FBRXRCLFNBQVMsV0FBVyxLQUFxQjtBQUN2QyxTQUFPLElBQUksT0FBTyxDQUFDLEVBQUUsWUFBWSxJQUFJLElBQUksTUFBTSxDQUFDO0FBQ2xEO0FBRlM7QUFJVCxTQUFTLFlBQVksTUFBd0I7QUFDM0MsU0FBUSxLQUFLLFFBQVEsY0FBYyxLQUFLLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFNO0FBQ3BFO0FBRlM7QUFJVCxTQUFTLG1CQUFtQixLQUFxQjtBQUMvQyxRQUFNLE9BQU8sU0FBUyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRTtBQUUzQyxPQUNHLFNBQVMsWUFBWSxTQUFTLFlBQzVCLE9BQU8sSUFBSSxnQkFBZ0IsWUFDOUI7QUFDQSxXQUFPLFlBQVksSUFBSSxXQUFXO0FBQUEsRUFDcEM7QUFFQSxTQUFPO0FBQ1Q7QUFYUztBQXFDTSxTQUFSLFlBQTZCLEdBQXNCO0FBQ3hELFNBQU8sS0FBSyxPQUNSLE9BQU8sQ0FBQyxJQUNSLE9BQU8sTUFBTSxXQUNiLG1CQUFtQixDQUFDLElBQ3BCLE9BQU8sTUFBTSxXQUNiLFdBQ0EsT0FBTyxNQUFNLGFBQ2IsWUFBWSxFQUFFLFdBQVcsSUFDekIsV0FBVyxPQUFPLENBQUM7QUFDekI7QUFWd0I7IiwKICAibmFtZXMiOiBbXQp9Cg==