123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- const query_1 = require("./commands/query");
- const logic_1 = require("./commands/logic");
- const update_1 = require("./commands/update");
- const type_1 = require("./utils/type");
- const aggregate_1 = require("./aggregate");
- exports.Command = {
- eq(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.EQ, [val]);
- },
- neq(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.NEQ, [val]);
- },
- lt(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.LT, [val]);
- },
- lte(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.LTE, [val]);
- },
- gt(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.GT, [val]);
- },
- gte(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.GTE, [val]);
- },
- in(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.IN, val);
- },
- nin(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.NIN, val);
- },
- all(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.ALL, val);
- },
- elemMatch(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.ELEM_MATCH, [val]);
- },
- exists(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.EXISTS, [val]);
- },
- size(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.SIZE, [val]);
- },
- mod(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.MOD, [val]);
- },
- geoNear(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.GEO_NEAR, [val]);
- },
- geoWithin(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.GEO_WITHIN, [val]);
- },
- geoIntersects(val) {
- return new query_1.QueryCommand(query_1.QUERY_COMMANDS_LITERAL.GEO_INTERSECTS, [val]);
- },
- and(...__expressions__) {
- const expressions = type_1.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);
- return new logic_1.LogicCommand(logic_1.LOGIC_COMMANDS_LITERAL.AND, expressions);
- },
- nor(...__expressions__) {
- const expressions = type_1.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);
- return new logic_1.LogicCommand(logic_1.LOGIC_COMMANDS_LITERAL.NOR, expressions);
- },
- or(...__expressions__) {
- const expressions = type_1.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);
- return new logic_1.LogicCommand(logic_1.LOGIC_COMMANDS_LITERAL.OR, expressions);
- },
- not(...__expressions__) {
- const expressions = type_1.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);
- return new logic_1.LogicCommand(logic_1.LOGIC_COMMANDS_LITERAL.NOT, expressions);
- },
- set(val) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.SET, [val]);
- },
- remove() {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.REMOVE, []);
- },
- inc(val) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.INC, [val]);
- },
- mul(val) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.MUL, [val]);
- },
- push(...args) {
- let values;
- if (type_1.isObject(args[0]) && args[0].hasOwnProperty('each')) {
- values = {};
- const options = args[0];
- if (options.each !== undefined) {
- values['$each'] = options.each;
- }
- if (options.position !== undefined) {
- values['$position'] = options.position;
- }
- if (options.sort !== undefined) {
- values['$sort'] = options.sort;
- }
- if (options.slice !== undefined) {
- values['$slice'] = options.slice;
- }
- }
- else if (type_1.isArray(args[0])) {
- values = args[0];
- }
- else {
- values = Array.from(args);
- }
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.PUSH, values);
- },
- pull(values) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.PULL, values);
- },
- pullAll(values) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.PULL_ALL, values);
- },
- pop() {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.POP, []);
- },
- shift() {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.SHIFT, []);
- },
- unshift(...__values__) {
- const values = type_1.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.UNSHIFT, values);
- },
- addToSet(values) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.ADD_TO_SET, values);
- },
- rename(values) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.RENAME, [values]);
- },
- bit(values) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.BIT, [values]);
- },
- max(values) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.MAX, [values]);
- },
- min(values) {
- return new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.MIN, [values]);
- },
- expr(values) {
- return {
- $expr: values
- };
- },
- jsonSchema(schema) {
- return {
- $jsonSchema: schema
- };
- },
- text(values) {
- if (type_1.isString(values)) {
- return {
- $search: values.search
- };
- }
- else {
- return {
- $search: values.search,
- $language: values.language,
- $caseSensitive: values.caseSensitive,
- $diacriticSensitive: values.diacriticSensitive
- };
- }
- },
- aggregate: {
- pipeline() {
- return new aggregate_1.default();
- },
- abs: param => new AggregationOperator('abs', param),
- add: param => new AggregationOperator('add', param),
- ceil: param => new AggregationOperator('ceil', param),
- divide: param => new AggregationOperator('divide', param),
- exp: param => new AggregationOperator('exp', param),
- floor: param => new AggregationOperator('floor', param),
- ln: param => new AggregationOperator('ln', param),
- log: param => new AggregationOperator('log', param),
- log10: param => new AggregationOperator('log10', param),
- mod: param => new AggregationOperator('mod', param),
- multiply: param => new AggregationOperator('multiply', param),
- pow: param => new AggregationOperator('pow', param),
- sqrt: param => new AggregationOperator('sqrt', param),
- subtract: param => new AggregationOperator('subtract', param),
- trunc: param => new AggregationOperator('trunc', param),
- arrayElemAt: param => new AggregationOperator('arrayElemAt', param),
- arrayToObject: param => new AggregationOperator('arrayToObject', param),
- concatArrays: param => new AggregationOperator('concatArrays', param),
- filter: param => new AggregationOperator('filter', param),
- in: param => new AggregationOperator('in', param),
- indexOfArray: param => new AggregationOperator('indexOfArray', param),
- isArray: param => new AggregationOperator('isArray', param),
- map: param => new AggregationOperator('map', param),
- range: param => new AggregationOperator('range', param),
- reduce: param => new AggregationOperator('reduce', param),
- reverseArray: param => new AggregationOperator('reverseArray', param),
- size: param => new AggregationOperator('size', param),
- slice: param => new AggregationOperator('slice', param),
- zip: param => new AggregationOperator('zip', param),
- and: param => new AggregationOperator('and', param),
- not: param => new AggregationOperator('not', param),
- or: param => new AggregationOperator('or', param),
- cmp: param => new AggregationOperator('cmp', param),
- eq: param => new AggregationOperator('eq', param),
- gt: param => new AggregationOperator('gt', param),
- gte: param => new AggregationOperator('gte', param),
- lt: param => new AggregationOperator('lt', param),
- lte: param => new AggregationOperator('lte', param),
- neq: param => new AggregationOperator('ne', param),
- cond: param => new AggregationOperator('cond', param),
- ifNull: param => new AggregationOperator('ifNull', param),
- switch: param => new AggregationOperator('switch', param),
- dateFromParts: param => new AggregationOperator('dateFromParts', param),
- dateFromString: param => new AggregationOperator('dateFromString', param),
- dayOfMonth: param => new AggregationOperator('dayOfMonth', param),
- dayOfWeek: param => new AggregationOperator('dayOfWeek', param),
- dayOfYear: param => new AggregationOperator('dayOfYear', param),
- isoDayOfWeek: param => new AggregationOperator('isoDayOfWeek', param),
- isoWeek: param => new AggregationOperator('isoWeek', param),
- isoWeekYear: param => new AggregationOperator('isoWeekYear', param),
- millisecond: param => new AggregationOperator('millisecond', param),
- minute: param => new AggregationOperator('minute', param),
- month: param => new AggregationOperator('month', param),
- second: param => new AggregationOperator('second', param),
- hour: param => new AggregationOperator('hour', param),
- week: param => new AggregationOperator('week', param),
- year: param => new AggregationOperator('year', param),
- literal: param => new AggregationOperator('literal', param),
- mergeObjects: param => new AggregationOperator('mergeObjects', param),
- objectToArray: param => new AggregationOperator('objectToArray', param),
- allElementsTrue: param => new AggregationOperator('allElementsTrue', param),
- anyElementTrue: param => new AggregationOperator('anyElementTrue', param),
- setDifference: param => new AggregationOperator('setDifference', param),
- setEquals: param => new AggregationOperator('setEquals', param),
- setIntersection: param => new AggregationOperator('setIntersection', param),
- setIsSubset: param => new AggregationOperator('setIsSubset', param),
- setUnion: param => new AggregationOperator('setUnion', param),
- concat: param => new AggregationOperator('concat', param),
- dateToString: param => new AggregationOperator('dateToString', param),
- indexOfBytes: param => new AggregationOperator('indexOfBytes', param),
- indexOfCP: param => new AggregationOperator('indexOfCP', param),
- split: param => new AggregationOperator('split', param),
- strLenBytes: param => new AggregationOperator('strLenBytes', param),
- strLenCP: param => new AggregationOperator('strLenCP', param),
- strcasecmp: param => new AggregationOperator('strcasecmp', param),
- substr: param => new AggregationOperator('substr', param),
- substrBytes: param => new AggregationOperator('substrBytes', param),
- substrCP: param => new AggregationOperator('substrCP', param),
- toLower: param => new AggregationOperator('toLower', param),
- toUpper: param => new AggregationOperator('toUpper', param),
- meta: param => new AggregationOperator('meta', param),
- addToSet: param => new AggregationOperator('addToSet', param),
- avg: param => new AggregationOperator('avg', param),
- first: param => new AggregationOperator('first', param),
- last: param => new AggregationOperator('last', param),
- max: param => new AggregationOperator('max', param),
- min: param => new AggregationOperator('min', param),
- push: param => new AggregationOperator('push', param),
- stdDevPop: param => new AggregationOperator('stdDevPop', param),
- stdDevSamp: param => new AggregationOperator('stdDevSamp', param),
- sum: param => new AggregationOperator('sum', param),
- let: param => new AggregationOperator('let', param)
- },
- project: {
- slice: param => new ProjectionOperator('slice', param),
- elemMatch: param => new ProjectionOperator('elemMatch', param)
- }
- };
- class AggregationOperator {
- constructor(name, param) {
- this['$' + name] = param;
- }
- }
- exports.AggregationOperator = AggregationOperator;
- class ProjectionOperator {
- constructor(name, param) {
- this['$' + name] = param;
- }
- }
- exports.ProjectionOperator = ProjectionOperator;
- exports.default = exports.Command;
|