UNPKG

@rnaga/wp-node

Version:

👉 **[View Full Documentation at rnaga.github.io/wp-node →](https://rnaga.github.io/wp-node/)**

65 lines (64 loc) • 2.67 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var QueryBuilders_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.QueryBuilders = void 0; const knex_1 = require("knex"); const constants_1 = require("../constants"); const components_1 = require("../core/components"); const tables_1 = require("../core/tables"); const database_1 = __importDefault(require("../database")); const component_1 = require("../decorators/component"); knex_1.knex.QueryBuilder.extend("__ref", function (ref) { return ref; }); let QueryBuilders = QueryBuilders_1 = class QueryBuilders { database; components; tables; #refList = new Map(); constructor(database, components, tables) { this.database = database; this.components = components; this.tables = tables; this.#refList.set(QueryBuilders_1, this); this.#refList.set(tables_1.Tables, this.tables); } get queryBuilder() { return this.database.connection.queryBuilder(); } getTableName(table) { return this.tables.get(table); } raw(raw, args) { return this.database.connection.raw(raw, args ?? undefined); } get(target, builder, alias) { const instance = this.components.get(target, [], { refList: this.#refList, }); instance.builder = builder ?? this.queryBuilder; if (alias && instance?.alias) { alias.cloneIndex(instance.alias); } return instance; } }; exports.QueryBuilders = QueryBuilders; exports.QueryBuilders = QueryBuilders = QueryBuilders_1 = __decorate([ (0, component_1.component)({ scope: constants_1.Scope.Transient }), __metadata("design:paramtypes", [database_1.default, components_1.Components, tables_1.Tables]) ], QueryBuilders);