UNPKG

longcelot-sheet-db

Version:

Google Sheets-backed staging database adapter for Node.js with schema-first design

79 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ColumnBuilder = void 0; exports.string = string; exports.number = number; exports.boolean = boolean; exports.date = date; exports.json = json; class ColumnBuilder { constructor(type, initial = {}) { this.definition = { type, ...initial }; } required() { this.definition.required = true; return this; } unique() { this.definition.unique = true; return this; } default(value) { this.definition.default = value; return this; } min(value) { this.definition.min = value; return this; } max(value) { this.definition.max = value; return this; } enum(values) { this.definition.enum = values; return this; } pattern(regex) { this.definition.pattern = regex; return this; } readonly() { this.definition.readonly = true; return this; } primary() { this.definition.primary = true; this.definition.unique = true; this.definition.required = true; return this; } ref(tableDotColumn) { this.definition.ref = tableDotColumn; return this; } index() { this.definition.index = true; return this; } build() { return this.definition; } } exports.ColumnBuilder = ColumnBuilder; function string() { return new ColumnBuilder('string'); } function number() { return new ColumnBuilder('number'); } function boolean(options) { return new ColumnBuilder('boolean', options?.format ? { booleanFormat: options.format } : {}); } function date() { return new ColumnBuilder('date'); } function json() { return new ColumnBuilder('json'); } //# sourceMappingURL=columnBuilder.js.map