UNPKG

lambdaorm-base

Version:
226 lines 8.15 kB
"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