UNPKG

@daiso-tech/core

Version:

The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.

50 lines 1.49 kB
/** * @module Utilities */ import { OperationNodeTransformer } from "kysely"; /** * @internal */ class TableNameTransformer extends OperationNodeTransformer { tableNameMap; constructor(tableNameMap) { super(); this.tableNameMap = tableNameMap; } transformTable(node) { const transformedNode = super.transformTable(node); return { ...transformedNode, table: { ...transformedNode.table, identifier: { ...transformedNode.table.identifier, name: (() => { const sqlTableName = transformedNode.table.identifier.name; const mapedTableName = this.tableNameMap[sqlTableName]; if (mapedTableName === undefined) { throw new Error(`Table does not exist "${sqlTableName}"`); } return mapedTableName; })(), }, }, }; } } /** * @internal */ export class KyselyTableNameTransformerPlugin { transformer; constructor(tableNameMap) { this.transformer = new TableNameTransformer(tableNameMap); } transformQuery(args) { return this.transformer.transformNode(args.node); } transformResult(args) { return Promise.resolve(args.result); } } //# sourceMappingURL=kysely-table-name-transformer-plugin.js.map