UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

98 lines (97 loc) 3.17 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/underscore.ts var underscore_exports = {}; __export(underscore_exports, { camelToSnake: () => camelToSnake, deepCamelToSnake: () => deepCamelToSnake, deepSnakeToCamel: () => deepSnakeToCamel, isIPV4Address: () => isIPV4Address, snakeToCamel: () => snakeToCamel, titleize: () => titleize, toSentence: () => toSentence }); module.exports = __toCommonJS(underscore_exports); var toSentence = (items) => { if (items.length == 0) { return ""; } if (items.length == 1) { return items[0]; } let sentence = items.slice(0, -1).join(", "); sentence += `, or ${items.slice(-1)}`; return sentence; }; var IP_V4_ADDRESS_REGEX = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; function isIPV4Address(str) { return IP_V4_ADDRESS_REGEX.test(str || ""); } function titleize(str) { const s = str || ""; return s.charAt(0).toUpperCase() + s.slice(1); } function snakeToCamel(str) { return str ? str.replace(/([-_][a-z])/g, (match) => match.toUpperCase().replace(/-|_/, "")) : ""; } function camelToSnake(str) { return str ? str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`) : ""; } var createDeepObjectTransformer = (transform) => { const deepTransform = (obj) => { if (!obj) { return obj; } if (Array.isArray(obj)) { return obj.map((el) => { if (typeof el === "object" || Array.isArray(el)) { return deepTransform(el); } return el; }); } const copy = { ...obj }; const keys = Object.keys(copy); for (const oldName of keys) { const newName = transform(oldName.toString()); if (newName !== oldName) { copy[newName] = copy[oldName]; delete copy[oldName]; } if (typeof copy[newName] === "object") { copy[newName] = deepTransform(copy[newName]); } } return copy; }; return deepTransform; }; var deepCamelToSnake = createDeepObjectTransformer(camelToSnake); var deepSnakeToCamel = createDeepObjectTransformer(snakeToCamel); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { camelToSnake, deepCamelToSnake, deepSnakeToCamel, isIPV4Address, snakeToCamel, titleize, toSentence }); //# sourceMappingURL=underscore.js.map