lambdaorm-base
Version:
226 lines • 8.15 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Queryable = exports.ModificableClauses = exports.IncludeAction = exports.FilterAction = exports.FilterClauses = exports.IncludeClauses = exports.FilterIncludeClauses = exports.HavingClauses = exports.Map2Clauses = exports.MapClauses = exports.PageClauses = exports.QueryAction = void 0;
class QueryAction {
constructor(actions, query) {
this.actions = actions;
this.query = query;
}
execute(data) {
return __awaiter(this, void 0, void 0, function* () {
return this.actions.execute(this.query, data);
});
}
normalize() {
return this.actions.normalize(this.query);
}
model() {
return __awaiter(this, void 0, void 0, function* () {
return this.actions.model(this.query);
});
}
constraints() {
return __awaiter(this, void 0, void 0, function* () {
return this.actions.constraints(this.query);
});
}
parameters() {
return __awaiter(this, void 0, void 0, function* () {
return this.actions.parameters(this.query);
});
}
sentence() {
return __awaiter(this, void 0, void 0, function* () {
return this.actions.plan(this.query);
});
}
metadata() {
return __awaiter(this, void 0, void 0, function* () {
return this.actions.metadata(this.query);
});
}
}
exports.QueryAction = QueryAction;
class PageClauses extends QueryAction {
/** */
page(page, records) {
return new QueryAction(this.actions, `${this.query}.page(${page},${records})`);
}
}
exports.PageClauses = PageClauses;
class MapClauses extends PageClauses {
/** */
sort(predicate) {
return new PageClauses(this.actions, `${this.query}.sort(${predicate.toString()})`);
}
}
exports.MapClauses = MapClauses;
class Map2Clauses extends QueryAction {
/** */
sort(predicate) {
return new PageClauses(this.actions, `${this.query}.sort(${predicate.toString()})`);
}
}
exports.Map2Clauses = Map2Clauses;
class HavingClauses extends MapClauses {
/** */
map(predicate) {
return new MapClauses(this.actions, `${this.query}.map(${predicate.toString()})`);
}
/** */
first(predicate) {
return new Map2Clauses(this.actions, `${this.query}.first(${predicate.toString()})`);
}
/** */
last(predicate) {
return new Map2Clauses(this.actions, `${this.query}.last(${predicate.toString()})`);
}
/** */
distinct(predicate) {
return new MapClauses(this.actions, `${this.query}.distinct(${predicate.toString()})`);
}
}
exports.HavingClauses = HavingClauses;
class FilterIncludeClauses extends HavingClauses {
/** */
having(predicate) {
return new HavingClauses(this.actions, `${this.query}.having(${predicate.toString()})`);
}
}
exports.FilterIncludeClauses = FilterIncludeClauses;
class IncludeClauses extends HavingClauses {
/** */
filter(predicate) {
return new FilterIncludeClauses(this.actions, `${this.query}.filter(${predicate.toString()})`);
}
/** */
having(predicate) {
return new HavingClauses(this.actions, `${this.query}.having(${predicate.toString()})`);
}
}
exports.IncludeClauses = IncludeClauses;
class FilterClauses extends HavingClauses {
/** */
include(predicate) {
return new IncludeClauses(this.actions, `${this.query}.include(${predicate.toString()})`);
}
/** */
having(predicate) {
return new HavingClauses(this.actions, `${this.query}.having(${predicate.toString()})`);
}
}
exports.FilterClauses = FilterClauses;
class FilterAction extends QueryAction {
/** */
filter(predicate) {
return new QueryAction(this.actions, `${this.query}.filter(${predicate.toString()})`);
}
}
exports.FilterAction = FilterAction;
class IncludeAction extends QueryAction {
/** */
include(predicate) {
return new QueryAction(this.actions, `${this.query}.include(${predicate.toString()})`);
}
}
exports.IncludeAction = IncludeAction;
class ModificableClauses extends QueryAction {
/** */
filter(predicate) {
return new FilterClauses(this.actions, `${this.query}.filter(${predicate.toString()})`);
}
/** */
include(predicate) {
return new IncludeClauses(this.actions, `${this.query}.include(${predicate.toString()})`);
}
}
exports.ModificableClauses = ModificableClauses;
class Queryable extends HavingClauses {
/** */
filter(predicate) {
return new FilterClauses(this.actions, `${this.query}.filter(${predicate.toString()})`);
}
/** */
include(predicate) {
return new IncludeClauses(this.actions, `${this.query}.include(${predicate.toString()})`);
}
/** */
having(predicate) {
return new HavingClauses(this.actions, `${this.query}.having(${predicate.toString()})`);
}
/** */
// insert (predicate?: T): ModificableClauses<T>
insert(predicate) {
if (predicate) {
return new ModificableClauses(this.actions, `${this.query}.insert(${predicate !== undefined ? JSON.stringify(predicate) : ''})`);
}
else {
return new ModificableClauses(this.actions, `${this.query}.insert()`);
}
}
upsert(predicate) {
if (predicate) {
return new ModificableClauses(this.actions, `${this.query}.upsert(${predicate !== undefined ? JSON.stringify(predicate) : ''})`);
}
else {
return new ModificableClauses(this.actions, `${this.query}.upsert()`);
}
}
/** */
bulkInsert(value) {
return new ModificableClauses(this.actions, `${this.query}.bulkInsert(${value !== undefined ? JSON.stringify(value) : ''})`);
}
/** */
update(predicate) {
if (predicate) {
return new ModificableClauses(this.actions, `${this.query}.update(${predicate.toString()})`);
}
else {
return new ModificableClauses(this.actions, `${this.query}.update()`);
}
}
/** */
updateAll(predicate) {
return new IncludeAction(this.actions, `${this.query}.updateAll(${predicate.toString()})`);
}
merge(predicate) {
if (predicate) {
return new ModificableClauses(this.actions, `${this.query}.merge(${predicate !== undefined ? JSON.stringify(predicate) : ''})`);
}
else {
return new ModificableClauses(this.actions, `${this.query}.merge()`);
}
}
/** */
bulkMerge(value) {
return new ModificableClauses(this.actions, `${this.query}.bulkMerge(${value !== undefined ? JSON.stringify(value) : ''})`);
}
/** */
bulkDelete(value) {
return new ModificableClauses(this.actions, `${this.query}.bulkDelete(${value !== undefined ? JSON.stringify(value) : ''})`);
}
/** */
delete(predicate) {
if (predicate) {
return new ModificableClauses(this.actions, `${this.query}.delete(${predicate.toString()})`);
}
else {
return new ModificableClauses(this.actions, `${this.query}.delete()`);
}
}
/** */
deleteAll() {
return new IncludeAction(this.actions, `${this.query}.deleteAll()`);
}
}
exports.Queryable = Queryable;
//# sourceMappingURL=queryable.js.map