tsledge 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/db/mongodb.d.ts +4 -0
- package/dist/db/mongodb.d.ts.map +1 -1
- package/dist/db/mongodb.js +4 -0
- package/dist/db/mongodb.js.map +1 -1
- package/dist/fluent-interface/fluent-pattern-handler.d.ts +45 -0
- package/dist/fluent-interface/fluent-pattern-handler.d.ts.map +1 -0
- package/dist/fluent-interface/fluent-pattern-handler.js +166 -0
- package/dist/fluent-interface/fluent-pattern-handler.js.map +1 -0
- package/dist/fluent-interface/index.d.ts +1 -1
- package/dist/fluent-interface/index.d.ts.map +1 -1
- package/dist/fluent-interface/index.js +1 -1
- package/dist/fluent-interface/index.js.map +1 -1
- package/dist/fluent-interface/types.d.ts +6 -2
- package/dist/fluent-interface/types.d.ts.map +1 -1
- package/dist/fluent-interface/types.js +13 -0
- package/dist/fluent-interface/types.js.map +1 -1
- package/package.json +2 -2
package/dist/core/types.d.ts
CHANGED
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9D,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE,CAAC,EAAE,IAAI,GAAE,MAAY;IAK1C,YAAY,CAAC,GAAG,EAAE,GAAG;IAOrB,KAAK;IAGL,KAAK;IAGL,KAAK;IAGL,KAAK;CAGN;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEtE,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;IAC/B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;gBAEF,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,MAAM,GAAG,SAAqB;CAK9F;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5C;AAED,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IACX;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC9D,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;gBAEP,OAAO,EAAE,CAAC,EAAE,IAAI,GAAE,MAAY;IAK1C,YAAY,CAAC,GAAG,EAAE,GAAG;IAOrB,KAAK;IAGL,KAAK;IAGL,KAAK;IAGL,KAAK;CAGN;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEtE,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;IAC/B,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;gBAEF,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,MAAM,GAAG,SAAqB;CAK9F;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5C;AAED,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IACX;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG;CAAE,CAAC"}
|
package/dist/db/mongodb.d.ts
CHANGED
package/dist/db/mongodb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,iBAY/C"}
|
|
1
|
+
{"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,iBAY/C"}
|
package/dist/db/mongodb.js
CHANGED
|
@@ -7,6 +7,10 @@ exports.connectMongoDB = connectMongoDB;
|
|
|
7
7
|
const mongoose_1 = __importDefault(require("mongoose"));
|
|
8
8
|
const exitCodes_1 = require("../exitCodes");
|
|
9
9
|
const utils_1 = require("../utils");
|
|
10
|
+
/**
|
|
11
|
+
* Connects to MongoDB using Mongoose
|
|
12
|
+
* @param uri
|
|
13
|
+
*/
|
|
10
14
|
async function connectMongoDB(uri) {
|
|
11
15
|
if (uri == null || uri == undefined || uri.length == 0) {
|
|
12
16
|
console.error(`🛑 [${(0, utils_1.getCurrentDateString)()}] Error: MongoDB URI is not provided`);
|
package/dist/db/mongodb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/db/mongodb.ts"],"names":[],"mappings":";;;;;AAQA,wCAYC;AApBD,wDAAgC;AAChC,4CAAiF;AACjF,oCAAgD;AAEhD;;;GAGG;AACI,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,IAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,OAAO,IAAA,4BAAoB,GAAE,sCAAsC,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,oCAAwB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,kBAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,IAAA,4BAAoB,GAAE,qBAAqB,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,OAAO,IAAA,4BAAoB,GAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,mCAAuB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { FluentAPIPath, FluentExpressRequest } from './types';
|
|
2
|
+
import { PromiseDefaultCodec, QueryBuilder } from '../core/index';
|
|
3
|
+
export declare class FluentPatternHandler {
|
|
4
|
+
private static _singleton;
|
|
5
|
+
private _paths;
|
|
6
|
+
/**
|
|
7
|
+
* Constructor for QueryPatternExecutor.
|
|
8
|
+
* @param paths - Array of query pattern paths for filtering.
|
|
9
|
+
*/
|
|
10
|
+
constructor(paths?: FluentAPIPath[]);
|
|
11
|
+
static getInstance(): FluentPatternHandler;
|
|
12
|
+
/**
|
|
13
|
+
* Parses and validates query parameters from the request.
|
|
14
|
+
* @param query - The query object from the request.
|
|
15
|
+
* @returns Parsed query parameters.
|
|
16
|
+
*/
|
|
17
|
+
private _parseFluentRequestQuery;
|
|
18
|
+
/**
|
|
19
|
+
* Applies filters to the query builder based on parsed parameters and options.
|
|
20
|
+
* @param queryBuilder - The QueryBuilder instance.
|
|
21
|
+
* @param params - Parsed query parameters.
|
|
22
|
+
* @param config - Query request configuration.
|
|
23
|
+
*/
|
|
24
|
+
private _applyParameters;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves filter fields for the given model from the paths configuration.
|
|
27
|
+
* @param model - The Mongoose model.
|
|
28
|
+
* @returns Array of filter fields.
|
|
29
|
+
*/
|
|
30
|
+
private _getFilterFieldsForModel;
|
|
31
|
+
/**
|
|
32
|
+
* Builds execution parameters for the query builder.
|
|
33
|
+
* @param params - Parsed query parameters.
|
|
34
|
+
* @returns Execution parameters.
|
|
35
|
+
*/
|
|
36
|
+
private _buildExecutionConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Executes the query builder with the applied filters and execution parameters.
|
|
39
|
+
* @param req
|
|
40
|
+
* @param queryBuilder
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
exec<T = any>(req: FluentExpressRequest, queryBuilder: QueryBuilder): PromiseDefaultCodec;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=fluent-pattern-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fluent-pattern-handler.d.ts","sourceRoot":"","sources":["../../src/fluent-interface/fluent-pattern-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,oBAAoB,EAErB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAY9F,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAuB;IAChD,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;OAGG;gBACS,KAAK,GAAE,aAAa,EAAO;WAUzB,WAAW,IAAI,oBAAoB;IASjD;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAoCxB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAYhC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;;;;OAKG;IACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,oBAAoB,EACzB,YAAY,EAAE,YAAY,GACzB,mBAAmB;CAWvB"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FluentPatternHandler = void 0;
|
|
7
|
+
const mongoose_1 = __importDefault(require("mongoose"));
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
const index_1 = require("../core/index");
|
|
10
|
+
class FluentPatternHandler {
|
|
11
|
+
static _singleton;
|
|
12
|
+
_paths;
|
|
13
|
+
/**
|
|
14
|
+
* Constructor for QueryPatternExecutor.
|
|
15
|
+
* @param paths - Array of query pattern paths for filtering.
|
|
16
|
+
*/
|
|
17
|
+
constructor(paths = []) {
|
|
18
|
+
if (FluentPatternHandler._singleton) {
|
|
19
|
+
throw new Error('FluentPatternHandler is a singleton class. Use FluentPatternHandler.getInstance() to access the instance.');
|
|
20
|
+
}
|
|
21
|
+
this._paths = paths;
|
|
22
|
+
FluentPatternHandler._singleton = this;
|
|
23
|
+
}
|
|
24
|
+
static getInstance() {
|
|
25
|
+
if (FluentPatternHandler._singleton == undefined) {
|
|
26
|
+
throw new Error('FluentPatternHandler instance has not been created yet. Please create an instance before calling getInstance().');
|
|
27
|
+
}
|
|
28
|
+
return FluentPatternHandler._singleton;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parses and validates query parameters from the request.
|
|
32
|
+
* @param query - The query object from the request.
|
|
33
|
+
* @returns Parsed query parameters.
|
|
34
|
+
*/
|
|
35
|
+
_parseFluentRequestQuery(query) {
|
|
36
|
+
const { filter, limit = '5', offset = '0', id, excluded: excludedJSON, ids: idsJSON } = query;
|
|
37
|
+
const queryKeys = Object.keys(types_1.fluentRequestQueryAttributes);
|
|
38
|
+
let filterFields = {};
|
|
39
|
+
for (const [key, value] of Object.entries(query)) {
|
|
40
|
+
if (queryKeys.includes(key))
|
|
41
|
+
continue;
|
|
42
|
+
if (value == undefined)
|
|
43
|
+
continue;
|
|
44
|
+
try {
|
|
45
|
+
filterFields[key] = typeof value === 'string' ? value : JSON.stringify(value);
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
filterFields[key] = String(value);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
let excluded;
|
|
52
|
+
if (excludedJSON) {
|
|
53
|
+
try {
|
|
54
|
+
excluded = JSON.parse(excludedJSON);
|
|
55
|
+
if (!Array.isArray(excluded))
|
|
56
|
+
throw new Error('Excluded must be an array');
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
console.warn('[QueryPatternExecutor] Invalid excluded parameter:', error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
let ids;
|
|
63
|
+
if (idsJSON) {
|
|
64
|
+
try {
|
|
65
|
+
ids = JSON.parse(idsJSON);
|
|
66
|
+
if (!Array.isArray(ids))
|
|
67
|
+
throw new Error('Ids must be an array');
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.warn('[QueryPatternExecutor] Invalid ids parameter:', error);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return { filter, limit, offset, id, excluded, ids, filterFields };
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Applies filters to the query builder based on parsed parameters and options.
|
|
77
|
+
* @param queryBuilder - The QueryBuilder instance.
|
|
78
|
+
* @param params - Parsed query parameters.
|
|
79
|
+
* @param config - Query request configuration.
|
|
80
|
+
*/
|
|
81
|
+
_applyParameters(queryBuilder, params) {
|
|
82
|
+
const { id, ids, filter, excluded } = params;
|
|
83
|
+
if (id) {
|
|
84
|
+
queryBuilder.match({ _id: new mongoose_1.default.Types.ObjectId(id) });
|
|
85
|
+
}
|
|
86
|
+
else if (ids && ids.length > 0) {
|
|
87
|
+
const objectIds = ids.map((id) => new mongoose_1.default.Types.ObjectId(id));
|
|
88
|
+
queryBuilder.match({ _id: { $in: objectIds } });
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// get allowed filter fields
|
|
92
|
+
const modelFilterFields = this._getFilterFieldsForModel(queryBuilder.getConfig().model);
|
|
93
|
+
// possible fields filtered by parameter "?filter="
|
|
94
|
+
if (filter && modelFilterFields.length > 0) {
|
|
95
|
+
const ors = modelFilterFields.map((field) => ({
|
|
96
|
+
[field]: { $regex: filter, $options: 'i' },
|
|
97
|
+
}));
|
|
98
|
+
queryBuilder.match({ $or: ors });
|
|
99
|
+
}
|
|
100
|
+
// custom filter, but only for allowed fields specified via query parameters (e.g. '?username=')
|
|
101
|
+
if (params.filterFields && Object.keys(params.filterFields).length > 0) {
|
|
102
|
+
for (const [field, value] of Object.entries(params.filterFields)) {
|
|
103
|
+
if (!modelFilterFields.includes(field)) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const match = {};
|
|
107
|
+
match[field] = { $regex: value, $options: 'i' };
|
|
108
|
+
queryBuilder.match(match);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (excluded && excluded.length > 0) {
|
|
112
|
+
const objectIds = excluded.map((id) => new mongoose_1.default.Types.ObjectId(id));
|
|
113
|
+
queryBuilder.match({ _id: { $nin: objectIds } });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Retrieves filter fields for the given model from the paths configuration.
|
|
119
|
+
* @param model - The Mongoose model.
|
|
120
|
+
* @returns Array of filter fields.
|
|
121
|
+
*/
|
|
122
|
+
_getFilterFieldsForModel(model) {
|
|
123
|
+
for (const path of this._paths) {
|
|
124
|
+
if (path.model.collection.name === model.collection.name) {
|
|
125
|
+
if (path.filters) {
|
|
126
|
+
return path.filters;
|
|
127
|
+
}
|
|
128
|
+
return [];
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Builds execution parameters for the query builder.
|
|
135
|
+
* @param params - Parsed query parameters.
|
|
136
|
+
* @returns Execution parameters.
|
|
137
|
+
*/
|
|
138
|
+
_buildExecutionConfig(params) {
|
|
139
|
+
const { id, limit, offset } = params;
|
|
140
|
+
return {
|
|
141
|
+
isOne: Boolean(id),
|
|
142
|
+
limit: limit === 'full' ? undefined : parseInt(limit || '5', 10),
|
|
143
|
+
skip: parseInt(offset || '0', 10),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Executes the query builder with the applied filters and execution parameters.
|
|
148
|
+
* @param req
|
|
149
|
+
* @param queryBuilder
|
|
150
|
+
* @returns
|
|
151
|
+
*/
|
|
152
|
+
async exec(req, queryBuilder) {
|
|
153
|
+
try {
|
|
154
|
+
const queryParams = this._parseFluentRequestQuery(req.query);
|
|
155
|
+
this._applyParameters(queryBuilder, queryParams);
|
|
156
|
+
const execConfig = this._buildExecutionConfig(queryParams);
|
|
157
|
+
return await queryBuilder.exec(execConfig);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
console.error('[ERROR - QueryPatternExecutor]', err);
|
|
161
|
+
return new index_1.Codec({ data: [], meta: { total: 0 } }, 500);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.FluentPatternHandler = FluentPatternHandler;
|
|
166
|
+
//# sourceMappingURL=fluent-pattern-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fluent-pattern-handler.js","sourceRoot":"","sources":["../../src/fluent-interface/fluent-pattern-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fluent-interface/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fluent-interface/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
|
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./fluent-pattern-
|
|
17
|
+
__exportStar(require("./fluent-pattern-handler"), exports);
|
|
18
18
|
__exportStar(require("./types"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fluent-interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fluent-interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,0CAAwB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import mongoose from 'mongoose';
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
|
-
import { DefaultResponseBody } from '../core';
|
|
3
|
+
import { DefaultResponseBody, KeysEnum } from '../core/index';
|
|
4
4
|
export interface FluentRequestParams extends Record<string, string> {
|
|
5
5
|
collection: string;
|
|
6
6
|
}
|
|
@@ -15,9 +15,13 @@ export interface FluentRequestQuery {
|
|
|
15
15
|
order?: string;
|
|
16
16
|
excluded?: string;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Attributes of FluentRequestQuery used for validation and parsing.
|
|
20
|
+
*/
|
|
21
|
+
export declare const fluentRequestQueryAttributes: KeysEnum<FluentRequestQuery>;
|
|
18
22
|
export interface FluentAPIPath<T = any> {
|
|
19
23
|
model: mongoose.Model<T>;
|
|
20
|
-
filters?:
|
|
24
|
+
filters?: string[];
|
|
21
25
|
}
|
|
22
26
|
export type FluentExpressRequest = Request<FluentRequestParams, DefaultResponseBody, FluentRequestBody, FluentRequestQuery>;
|
|
23
27
|
export type FluentExpressResponse = Response<DefaultResponseBody>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fluent-interface/types.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fluent-interface/types.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;CAAG;AAErC,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,kBAAkB,CAQrE,CAAC;AAEF,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IAEpC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -1,3 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fluentRequestQueryAttributes = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Attributes of FluentRequestQuery used for validation and parsing.
|
|
6
|
+
*/
|
|
7
|
+
exports.fluentRequestQueryAttributes = {
|
|
8
|
+
id: '',
|
|
9
|
+
ids: '',
|
|
10
|
+
filter: '',
|
|
11
|
+
offset: '',
|
|
12
|
+
limit: '',
|
|
13
|
+
order: '',
|
|
14
|
+
excluded: '',
|
|
15
|
+
};
|
|
3
16
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fluent-interface/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fluent-interface/types.ts"],"names":[],"mappings":";;;AAoBA;;GAEG;AACU,QAAA,4BAA4B,GAAiC;IACxE,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"author": "Niklas Wockenfuß",
|
|
3
3
|
"homepage": "https://niklaswockenfuss.de/",
|
|
4
4
|
"name": "tsledge",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.4",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"description": "My playground and some helpful tools for web development ",
|
|
8
8
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"dev": "ts-node-dev --respawn tests/main.ts",
|
|
20
20
|
"repl": "ts-node --project tsconfig.json ./scripts/repl.ts",
|
|
21
21
|
"build": "tsc",
|
|
22
|
-
"
|
|
22
|
+
"npmjs": "tsc && npm publish"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"cors": "^2.8.6",
|