@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
JavaScript
;
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);