UNPKG

nukak

Version:

flexible and efficient ORM, with declarative JSON syntax and smart type-safety

28 lines 3.15 kB
/** * Base abstract class for all database dialects (SQL and NoSQL). */ export class AbstractDialect { namingStrategy; constructor(namingStrategy) { this.namingStrategy = namingStrategy; } /** * Resolve the table name for an entity, applying naming strategy if necessary. */ resolveTableName(entity, meta) { if (meta.name !== entity.name || !this.namingStrategy) { return meta.name; } return this.namingStrategy.tableName(meta.name); } /** * Resolve the column/field name for a property, applying naming strategy if necessary. */ resolveColumnName(key, field) { if (!field || field.name !== key || !this.namingStrategy) { return field?.name ?? key; } return this.namingStrategy.columnName(field.name); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3REaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvYWJzdHJhY3REaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixlQUFlO0lBQ2Q7SUFBckIsWUFBcUIsY0FBK0I7UUFBL0IsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBQUcsQ0FBQztJQUV4RDs7T0FFRztJQUNILGdCQUFnQixDQUFJLE1BQWUsRUFBRSxJQUFtQjtRQUN0RCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLEdBQVcsRUFBRSxLQUFtQjtRQUNoRCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pELE9BQU8sS0FBSyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5TWV0YSwgRmllbGRPcHRpb25zLCBOYW1pbmdTdHJhdGVneSwgVHlwZSB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG4vKipcbiAqIEJhc2UgYWJzdHJhY3QgY2xhc3MgZm9yIGFsbCBkYXRhYmFzZSBkaWFsZWN0cyAoU1FMIGFuZCBOb1NRTCkuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdERpYWxlY3Qge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBuYW1pbmdTdHJhdGVneT86IE5hbWluZ1N0cmF0ZWd5KSB7fVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSB0YWJsZSBuYW1lIGZvciBhbiBlbnRpdHksIGFwcGx5aW5nIG5hbWluZyBzdHJhdGVneSBpZiBuZWNlc3NhcnkuXG4gICAqL1xuICByZXNvbHZlVGFibGVOYW1lPEU+KGVudGl0eTogVHlwZTxFPiwgbWV0YTogRW50aXR5TWV0YTxFPik6IHN0cmluZyB7XG4gICAgaWYgKG1ldGEubmFtZSAhPT0gZW50aXR5Lm5hbWUgfHwgIXRoaXMubmFtaW5nU3RyYXRlZ3kpIHtcbiAgICAgIHJldHVybiBtZXRhLm5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm5hbWluZ1N0cmF0ZWd5LnRhYmxlTmFtZShtZXRhLm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIGNvbHVtbi9maWVsZCBuYW1lIGZvciBhIHByb3BlcnR5LCBhcHBseWluZyBuYW1pbmcgc3RyYXRlZ3kgaWYgbmVjZXNzYXJ5LlxuICAgKi9cbiAgcmVzb2x2ZUNvbHVtbk5hbWUoa2V5OiBzdHJpbmcsIGZpZWxkOiBGaWVsZE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICghZmllbGQgfHwgZmllbGQubmFtZSAhPT0ga2V5IHx8ICF0aGlzLm5hbWluZ1N0cmF0ZWd5KSB7XG4gICAgICByZXR1cm4gZmllbGQ/Lm5hbWUgPz8ga2V5O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5uYW1pbmdTdHJhdGVneS5jb2x1bW5OYW1lKGZpZWxkLm5hbWUpO1xuICB9XG59XG4iXX0=