kysely-codegen
Version:
`kysely-codegen` generates Kysely type definitions from your database. That's it.
67 lines • 1.77 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.toWords = exports.toScreamingSnakeCase = exports.toPascalCase = exports.toKyselyPascalCase = exports.toKyselyCamelCase = void 0;
const kysely_1 = require("kysely");
class CaseConverter extends kysely_1.CamelCasePlugin {
toCamelCase(string) {
return this.camelCase(string);
}
}
/**
* @example
* toUpperFirst('fooBar')
* // => 'FooBar'
*/
const toUpperFirst = (string) => {
return `${string.slice(0, 1).toUpperCase()}${string.slice(1)}`;
};
/**
* @example
* toKyselyCamelCase('foo_bar')
* // => 'fooBar'
*/
const toKyselyCamelCase = (string) => {
return new CaseConverter().toCamelCase(string);
};
exports.toKyselyCamelCase = toKyselyCamelCase;
/**
* @example
* toKyselyPascalCase('foo_bar')
* // => 'FooBar'
*/
const toKyselyPascalCase = (string) => {
return toUpperFirst((0, exports.toKyselyCamelCase)(string));
};
exports.toKyselyPascalCase = toKyselyPascalCase;
/**
* @example
* toPascalCase('foo_bar')
* // => 'FooBar'
*/
const toPascalCase = (string) => {
return (0, exports.toWords)(string)
.map((w) => toUpperFirst(w.toLowerCase()))
.join('');
};
exports.toPascalCase = toPascalCase;
/**
* @example
* pascalCase('foo_bar')
* // => 'FOO_BAR'
*/
const toScreamingSnakeCase = (string) => {
return (0, exports.toWords)(string)
.map((w, i) => `${i ? '_' : ''}${w.toUpperCase()}`)
.join('');
};
exports.toScreamingSnakeCase = toScreamingSnakeCase;
/**
* @example
* toWords('FooBar')
* // => ['Foo', 'Bar']
*/
const toWords = (string) => {
return (string.match(/(?:\p{Lu}(?!\p{Ll}))+|\p{L}\p{Ll}*|\d+/gu)?.slice() ?? []);
};
exports.toWords = toWords;
//# sourceMappingURL=case-converter.js.map
;