Spaces:
Sleeping
Sleeping
| ; | |
| 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); | |
| var casing_exports = {}; | |
| __export(casing_exports, { | |
| CasingCache: () => CasingCache, | |
| toCamelCase: () => toCamelCase, | |
| toSnakeCase: () => toSnakeCase | |
| }); | |
| module.exports = __toCommonJS(casing_exports); | |
| var import_entity = require("./entity.cjs"); | |
| var import_table = require("./table.cjs"); | |
| function toSnakeCase(input) { | |
| const words = input.replace(/['\u2019]/g, "").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g) ?? []; | |
| return words.map((word) => word.toLowerCase()).join("_"); | |
| } | |
| function toCamelCase(input) { | |
| const words = input.replace(/['\u2019]/g, "").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g) ?? []; | |
| return words.reduce((acc, word, i) => { | |
| const formattedWord = i === 0 ? word.toLowerCase() : `${word[0].toUpperCase()}${word.slice(1)}`; | |
| return acc + formattedWord; | |
| }, ""); | |
| } | |
| function noopCase(input) { | |
| return input; | |
| } | |
| class CasingCache { | |
| static [import_entity.entityKind] = "CasingCache"; | |
| /** @internal */ | |
| cache = {}; | |
| cachedTables = {}; | |
| convert; | |
| constructor(casing) { | |
| this.convert = casing === "snake_case" ? toSnakeCase : casing === "camelCase" ? toCamelCase : noopCase; | |
| } | |
| getColumnCasing(column) { | |
| if (!column.keyAsName) return column.name; | |
| const schema = column.table[import_table.Table.Symbol.Schema] ?? "public"; | |
| const tableName = column.table[import_table.Table.Symbol.OriginalName]; | |
| const key = `${schema}.${tableName}.${column.name}`; | |
| if (!this.cache[key]) { | |
| this.cacheTable(column.table); | |
| } | |
| return this.cache[key]; | |
| } | |
| cacheTable(table) { | |
| const schema = table[import_table.Table.Symbol.Schema] ?? "public"; | |
| const tableName = table[import_table.Table.Symbol.OriginalName]; | |
| const tableKey = `${schema}.${tableName}`; | |
| if (!this.cachedTables[tableKey]) { | |
| for (const column of Object.values(table[import_table.Table.Symbol.Columns])) { | |
| const columnKey = `${tableKey}.${column.name}`; | |
| this.cache[columnKey] = this.convert(column.name); | |
| } | |
| this.cachedTables[tableKey] = true; | |
| } | |
| } | |
| clearCache() { | |
| this.cache = {}; | |
| this.cachedTables = {}; | |
| } | |
| } | |
| // Annotate the CommonJS export names for ESM import in node: | |
| 0 && (module.exports = { | |
| CasingCache, | |
| toCamelCase, | |
| toSnakeCase | |
| }); | |
| //# sourceMappingURL=casing.cjs.map |