couchset 0.2.7 → 0.4.0
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/CHANGELOG.md +41 -0
- package/README.md +292 -152
- package/dist/connection/connection.d.ts +68 -0
- package/dist/connection/connection.js +495 -0
- package/dist/connection/connection.js.map +1 -0
- package/dist/connection/env.d.ts +2 -0
- package/dist/connection/env.js +16 -0
- package/dist/connection/env.js.map +1 -0
- package/dist/connection/index.d.ts +3 -0
- package/dist/connection/index.js +25 -0
- package/dist/connection/index.js.map +1 -0
- package/dist/connection/types.d.ts +25 -0
- package/dist/connection/types.js +3 -0
- package/dist/connection/types.js.map +1 -0
- package/dist/database.d.ts +9 -0
- package/dist/database.js +196 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +20 -6
- package/dist/index.js +55 -8
- package/dist/index.js.map +1 -1
- package/dist/legacy/connection.d.ts +2 -0
- package/dist/legacy/connection.js +24 -0
- package/dist/legacy/connection.js.map +1 -0
- package/dist/legacy/index.d.ts +10 -0
- package/dist/legacy/index.js +93 -0
- package/dist/legacy/index.js.map +1 -0
- package/dist/legacy/model.d.ts +55 -0
- package/dist/legacy/model.js +282 -0
- package/dist/legacy/model.js.map +1 -0
- package/dist/legacy/pagination/index.d.ts +1 -0
- package/dist/legacy/pagination/index.js +18 -0
- package/dist/legacy/pagination/index.js.map +1 -0
- package/dist/legacy/pagination/pagination.d.ts +12 -0
- package/dist/legacy/pagination/pagination.js +85 -0
- package/dist/legacy/pagination/pagination.js.map +1 -0
- package/dist/legacy/search/customQuery.d.ts +13 -0
- package/dist/legacy/search/customQuery.js +73 -0
- package/dist/legacy/search/customQuery.js.map +1 -0
- package/dist/legacy/search/index.d.ts +1 -0
- package/dist/legacy/search/index.js +18 -0
- package/dist/legacy/search/index.js.map +1 -0
- package/dist/model/default-scope.d.ts +10 -0
- package/dist/model/default-scope.js +47 -0
- package/dist/model/default-scope.js.map +1 -0
- package/dist/model/hydrated-document.d.ts +30 -0
- package/dist/model/hydrated-document.js +118 -0
- package/dist/model/hydrated-document.js.map +1 -0
- package/dist/model/include.d.ts +33 -0
- package/dist/model/include.js +250 -0
- package/dist/model/include.js.map +1 -0
- package/dist/model/index.d.ts +192 -52
- package/dist/model/index.js +646 -172
- package/dist/model/index.js.map +1 -1
- package/dist/model/indexes.d.ts +18 -0
- package/dist/model/indexes.js +155 -0
- package/dist/model/indexes.js.map +1 -0
- package/dist/model/keyspace.d.ts +9 -0
- package/dist/model/keyspace.js +28 -0
- package/dist/model/keyspace.js.map +1 -0
- package/dist/model/read-helpers.d.ts +36 -0
- package/dist/model/read-helpers.js +275 -0
- package/dist/model/read-helpers.js.map +1 -0
- package/dist/model/safe-query.d.ts +23 -0
- package/dist/model/safe-query.js +138 -0
- package/dist/model/safe-query.js.map +1 -0
- package/dist/model/ttl.d.ts +9 -0
- package/dist/model/ttl.js +73 -0
- package/dist/model/ttl.js.map +1 -0
- package/dist/model/validation.d.ts +5 -0
- package/dist/model/validation.js +104 -0
- package/dist/model/validation.js.map +1 -0
- package/dist/model/write-helpers.d.ts +39 -0
- package/dist/model/write-helpers.js +245 -0
- package/dist/model/write-helpers.js.map +1 -0
- package/dist/next.d.ts +204 -0
- package/dist/next.js +1190 -0
- package/dist/next.js.map +1 -0
- package/dist/next.types.d.ts +1 -0
- package/dist/next.types.js +38 -0
- package/dist/next.types.js.map +1 -0
- package/dist/pagination/index.d.ts +1 -0
- package/dist/pagination/index.js +1 -0
- package/dist/pagination/index.js.map +1 -1
- package/dist/pagination/pagination.d.ts +1 -8
- package/dist/pagination/pagination.js +16 -29
- package/dist/pagination/pagination.js.map +1 -1
- package/dist/pagination/safe-pagination.d.ts +15 -0
- package/dist/pagination/safe-pagination.js +221 -0
- package/dist/pagination/safe-pagination.js.map +1 -0
- package/dist/pagination/types.d.ts +11 -0
- package/dist/pagination/types.js +3 -0
- package/dist/pagination/types.js.map +1 -0
- package/dist/search/customQuery.d.ts +10 -3
- package/dist/search/customQuery.js +17 -18
- package/dist/search/customQuery.js.map +1 -1
- package/dist/shared/common.model.js +2 -2
- package/dist/shared/common.model.js.map +1 -1
- package/dist/timeseries/index.d.ts +1 -0
- package/dist/timeseries/index.js +18 -0
- package/dist/timeseries/index.js.map +1 -0
- package/dist/timeseries/time-series-model.d.ts +60 -0
- package/dist/timeseries/time-series-model.js +267 -0
- package/dist/timeseries/time-series-model.js.map +1 -0
- package/dist/utils/awaitTo.d.ts +1 -1
- package/dist/utils/awaitTo.js +1 -1
- package/dist/utils/awaitTo.js.map +1 -1
- package/docs/beta-migration.md +175 -0
- package/docs/document-modeling.md +133 -0
- package/docs/next-primitives.md +81 -0
- package/legacy/index.js +1 -0
- package/legacy/package.json +4 -0
- package/next/index.js +1 -0
- package/next/package.json +4 -0
- package/package.json +18 -10
- package/dist/connection.d.ts +0 -42
- package/dist/connection.js +0 -156
- package/dist/connection.js.map +0 -1
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
50
|
+
var t = {};
|
|
51
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
52
|
+
t[p] = s[p];
|
|
53
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
54
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
55
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
56
|
+
t[p[i]] = s[p[i]];
|
|
57
|
+
}
|
|
58
|
+
return t;
|
|
59
|
+
};
|
|
60
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
61
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
62
|
+
};
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
exports.Model = void 0;
|
|
65
|
+
var utils_1 = require("../utils");
|
|
66
|
+
var uuid_1 = require("../uuid");
|
|
67
|
+
var connection_1 = __importDefault(require("./connection"));
|
|
68
|
+
var pagination_1 = require("./pagination");
|
|
69
|
+
var search_1 = require("./search");
|
|
70
|
+
var Model = /** @class */ (function () {
|
|
71
|
+
function Model(name, options) {
|
|
72
|
+
this.scope = '_default';
|
|
73
|
+
this.schema = {
|
|
74
|
+
createdAt: 'date',
|
|
75
|
+
updatedAt: 'date',
|
|
76
|
+
};
|
|
77
|
+
this.graphqlType = null;
|
|
78
|
+
this.collectionName = name;
|
|
79
|
+
if (options) {
|
|
80
|
+
this.graphqlType = (options && options.graphqlType) || null;
|
|
81
|
+
this.scope = (options && options.scope) || '_default';
|
|
82
|
+
this.schema = __assign(__assign({}, ((options && options.schema) || {})), { createdAt: 'date', updatedAt: 'date' });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
Model.prototype.setGraphqlType = function (gqlType) {
|
|
86
|
+
this.graphqlType = gqlType;
|
|
87
|
+
return this;
|
|
88
|
+
};
|
|
89
|
+
Model.prototype.fresh = function () {
|
|
90
|
+
if (connection_1.default.Instance.bucketName) {
|
|
91
|
+
this.collection = connection_1.default.Instance.getCollection();
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
Model.prototype.getBucketName = function () {
|
|
95
|
+
var _a;
|
|
96
|
+
return (_a = connection_1.default.Instance) === null || _a === void 0 ? void 0 : _a.getBucket();
|
|
97
|
+
};
|
|
98
|
+
Model.prototype.couchbaseConnection = function () {
|
|
99
|
+
return connection_1.default.Instance;
|
|
100
|
+
};
|
|
101
|
+
Model.prototype.getCollection = function () {
|
|
102
|
+
this.fresh();
|
|
103
|
+
return this.collection;
|
|
104
|
+
};
|
|
105
|
+
Model.prototype.create = function (data, options) {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
107
|
+
var id, createdData, error_1;
|
|
108
|
+
return __generator(this, function (_a) {
|
|
109
|
+
switch (_a.label) {
|
|
110
|
+
case 0:
|
|
111
|
+
this.fresh();
|
|
112
|
+
id = (0, uuid_1.generateUUID)();
|
|
113
|
+
createdData = __assign(__assign({ id: id }, data), { createdAt: new Date(), updatedAt: new Date(), _type: this.collectionName, _scope: this.scope });
|
|
114
|
+
_a.label = 1;
|
|
115
|
+
case 1:
|
|
116
|
+
_a.trys.push([1, 3, , 4]);
|
|
117
|
+
return [4 /*yield*/, this.collection.upsert(createdData.id, createdData, options)];
|
|
118
|
+
case 2:
|
|
119
|
+
_a.sent();
|
|
120
|
+
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, createdData)];
|
|
121
|
+
case 3:
|
|
122
|
+
error_1 = _a.sent();
|
|
123
|
+
throw error_1;
|
|
124
|
+
case 4: return [2 /*return*/];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
Model.prototype.findById = function (id, options) {
|
|
130
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
131
|
+
var data, error_2;
|
|
132
|
+
return __generator(this, function (_a) {
|
|
133
|
+
switch (_a.label) {
|
|
134
|
+
case 0:
|
|
135
|
+
this.fresh();
|
|
136
|
+
_a.label = 1;
|
|
137
|
+
case 1:
|
|
138
|
+
_a.trys.push([1, 3, , 4]);
|
|
139
|
+
return [4 /*yield*/, this.collection.get(id, options)];
|
|
140
|
+
case 2:
|
|
141
|
+
data = _a.sent();
|
|
142
|
+
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, data.content)];
|
|
143
|
+
case 3:
|
|
144
|
+
error_2 = _a.sent();
|
|
145
|
+
throw error_2;
|
|
146
|
+
case 4: return [2 /*return*/];
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
Model.prototype.updateById = function (id, data, opt) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
+
var _a, _b, silent, options, updatedDocument, error_3;
|
|
154
|
+
return __generator(this, function (_c) {
|
|
155
|
+
switch (_c.label) {
|
|
156
|
+
case 0:
|
|
157
|
+
this.fresh();
|
|
158
|
+
_a = opt || {}, _b = _a.silent, silent = _b === void 0 ? false : _b, options = __rest(_a, ["silent"]);
|
|
159
|
+
updatedDocument = __assign(__assign({}, data), { id: id, _type: this.collectionName, _scope: this.scope });
|
|
160
|
+
if (!silent) {
|
|
161
|
+
updatedDocument.updatedAt = new Date();
|
|
162
|
+
}
|
|
163
|
+
_c.label = 1;
|
|
164
|
+
case 1:
|
|
165
|
+
_c.trys.push([1, 3, , 4]);
|
|
166
|
+
return [4 /*yield*/, this.collection.replace(id, updatedDocument, options)];
|
|
167
|
+
case 2:
|
|
168
|
+
_c.sent();
|
|
169
|
+
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, updatedDocument)];
|
|
170
|
+
case 3:
|
|
171
|
+
error_3 = _c.sent();
|
|
172
|
+
throw error_3;
|
|
173
|
+
case 4: return [2 /*return*/];
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
Model.prototype.save = function (data, opt) {
|
|
179
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
180
|
+
var id, _a, _b, silent, options, updatedDocument, error_4;
|
|
181
|
+
return __generator(this, function (_c) {
|
|
182
|
+
switch (_c.label) {
|
|
183
|
+
case 0:
|
|
184
|
+
this.fresh();
|
|
185
|
+
id = data && data.id;
|
|
186
|
+
_a = opt || {}, _b = _a.silent, silent = _b === void 0 ? false : _b, options = __rest(_a, ["silent"]);
|
|
187
|
+
updatedDocument = __assign(__assign({}, data), { id: id, _type: this.collectionName, _scope: this.scope });
|
|
188
|
+
if (!silent) {
|
|
189
|
+
updatedDocument.updatedAt = new Date();
|
|
190
|
+
}
|
|
191
|
+
_c.label = 1;
|
|
192
|
+
case 1:
|
|
193
|
+
_c.trys.push([1, 3, , 4]);
|
|
194
|
+
if (!id) {
|
|
195
|
+
throw new Error('document must have id');
|
|
196
|
+
}
|
|
197
|
+
return [4 /*yield*/, this.collection.replace(id, updatedDocument, options)];
|
|
198
|
+
case 2:
|
|
199
|
+
_c.sent();
|
|
200
|
+
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, updatedDocument)];
|
|
201
|
+
case 3:
|
|
202
|
+
error_4 = _c.sent();
|
|
203
|
+
console.error(error_4);
|
|
204
|
+
throw error_4;
|
|
205
|
+
case 4: return [2 /*return*/];
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
Model.prototype.delete = function (id, options) {
|
|
211
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
212
|
+
var error_5;
|
|
213
|
+
return __generator(this, function (_a) {
|
|
214
|
+
switch (_a.label) {
|
|
215
|
+
case 0:
|
|
216
|
+
this.fresh();
|
|
217
|
+
_a.label = 1;
|
|
218
|
+
case 1:
|
|
219
|
+
_a.trys.push([1, 3, , 4]);
|
|
220
|
+
return [4 /*yield*/, this.collection.remove(id, options)];
|
|
221
|
+
case 2:
|
|
222
|
+
_a.sent();
|
|
223
|
+
return [2 /*return*/, true];
|
|
224
|
+
case 3:
|
|
225
|
+
error_5 = _a.sent();
|
|
226
|
+
throw error_5;
|
|
227
|
+
case 4: return [2 /*return*/];
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
};
|
|
232
|
+
Model.prototype.pagination = function (_a) {
|
|
233
|
+
return __awaiter(this, arguments, void 0, function (_b) {
|
|
234
|
+
var whereEx, bucketName, rows;
|
|
235
|
+
var _this = this;
|
|
236
|
+
var select = _b.select, where = _b.where, orderBy = _b.orderBy, limit = _b.limit, page = _b.page, _c = _b.customQuery, customQuery = _c === void 0 ? {} : _c;
|
|
237
|
+
return __generator(this, function (_d) {
|
|
238
|
+
switch (_d.label) {
|
|
239
|
+
case 0:
|
|
240
|
+
this.fresh();
|
|
241
|
+
whereEx = { _type: { $eq: this.collectionName } };
|
|
242
|
+
if (where) {
|
|
243
|
+
whereEx = __assign(__assign({}, whereEx), where);
|
|
244
|
+
}
|
|
245
|
+
bucketName = connection_1.default.Instance.bucketName;
|
|
246
|
+
return [4 /*yield*/, (0, pagination_1.Pagination)({
|
|
247
|
+
bucketName: bucketName,
|
|
248
|
+
select: select,
|
|
249
|
+
where: __assign({ where: whereEx }, customQuery),
|
|
250
|
+
limit: limit,
|
|
251
|
+
page: page,
|
|
252
|
+
orderBy: orderBy,
|
|
253
|
+
})];
|
|
254
|
+
case 1:
|
|
255
|
+
rows = _d.sent();
|
|
256
|
+
return [2 /*return*/, rows.map(function (r) { return (0, utils_1.parseSchema)(_this.schema, r); })];
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
};
|
|
261
|
+
Model.prototype.customQuery = function (_a) {
|
|
262
|
+
return __awaiter(this, arguments, void 0, function (_b) {
|
|
263
|
+
var params = _b.params, limit = _b.limit, query = _b.query;
|
|
264
|
+
return __generator(this, function (_c) {
|
|
265
|
+
this.fresh();
|
|
266
|
+
return [2 /*return*/, (0, search_1.CustomQuery)({
|
|
267
|
+
limit: limit,
|
|
268
|
+
params: params,
|
|
269
|
+
query: query,
|
|
270
|
+
})];
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
};
|
|
274
|
+
Model.prototype.parse = function (data) {
|
|
275
|
+
this.fresh();
|
|
276
|
+
return (0, utils_1.parseSchema)(this.schema, data);
|
|
277
|
+
};
|
|
278
|
+
return Model;
|
|
279
|
+
}());
|
|
280
|
+
exports.Model = Model;
|
|
281
|
+
exports.default = Model;
|
|
282
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/legacy/model.ts"],"names":[],"mappings":"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","sourcesContent":["import type {Collection, GetOptions, RemoveOptions, ReplaceOptions, UpsertOptions} from 'couchbase';\n\nimport {SchemaTypes, parseSchema} from '../utils';\nimport {generateUUID} from '../uuid';\n\nimport CouchbaseConnection from './connection';\nimport {Pagination} from './pagination';\nimport {CustomQuery, CustomQueryPagination} from './search';\n\nexport interface AutoModelFields {\n id: string;\n createdAt: Date;\n updatedAt?: Date;\n deleted?: Date;\n _type: string;\n _scope: string;\n}\n\nexport interface UpdateOptions extends ReplaceOptions {\n silent?: boolean;\n}\n\nexport interface ModalOptions {\n scope?: string;\n schema?: Record<string, SchemaTypes>;\n graphqlType?: unknown;\n}\n\nexport class Model {\n collection: Collection;\n collectionName: string;\n scope = '_default';\n schema: Record<string, SchemaTypes> = {\n createdAt: 'date',\n updatedAt: 'date',\n };\n graphqlType: unknown = null;\n\n constructor(name: string, options?: ModalOptions) {\n this.collectionName = name;\n if (options) {\n this.graphqlType = (options && options.graphqlType) || null;\n this.scope = (options && options.scope) || '_default';\n this.schema = {\n ...((options && options.schema) || {}),\n createdAt: 'date',\n updatedAt: 'date',\n };\n }\n }\n\n public setGraphqlType(gqlType: unknown): Model {\n this.graphqlType = gqlType;\n return this;\n }\n\n public fresh(): void {\n if (CouchbaseConnection.Instance.bucketName) {\n this.collection = CouchbaseConnection.Instance.getCollection();\n }\n }\n\n public getBucketName(): string {\n return CouchbaseConnection.Instance?.getBucket();\n }\n\n public couchbaseConnection(): CouchbaseConnection {\n return CouchbaseConnection.Instance;\n }\n\n public getCollection(): Collection {\n this.fresh();\n return this.collection;\n }\n\n public async create<T>(data: T, options?: UpsertOptions): Promise<T & AutoModelFields> {\n this.fresh();\n const id = generateUUID();\n const createdData = {\n id,\n ...data,\n createdAt: new Date(),\n updatedAt: new Date(),\n _type: this.collectionName,\n _scope: this.scope,\n };\n\n try {\n await this.collection.upsert(createdData.id, createdData, options);\n return parseSchema(this.schema, createdData);\n } catch (error) {\n throw error;\n }\n }\n\n public async findById(id: string, options?: GetOptions): Promise<any & AutoModelFields> {\n this.fresh();\n try {\n const data = await this.collection.get(id, options);\n return parseSchema(this.schema, data.content);\n } catch (error) {\n throw error;\n }\n }\n\n public async updateById<T>(id: string, data: T, opt?: UpdateOptions): Promise<T> {\n this.fresh();\n\n const {silent = false, ...options} = opt || {};\n\n const updatedDocument: any = {\n ...data,\n id,\n _type: this.collectionName,\n _scope: this.scope,\n };\n\n if (!silent) {\n updatedDocument.updatedAt = new Date();\n }\n\n try {\n await this.collection.replace(id, updatedDocument, options);\n return parseSchema(this.schema, updatedDocument);\n } catch (error) {\n throw error;\n }\n }\n\n public async save<T>(data: T & {id: string}, opt?: UpdateOptions): Promise<T> {\n this.fresh();\n\n const id = data && data.id;\n const {silent = false, ...options} = opt || {};\n\n const updatedDocument: any = {\n ...data,\n id,\n _type: this.collectionName,\n _scope: this.scope,\n };\n\n if (!silent) {\n updatedDocument.updatedAt = new Date();\n }\n\n try {\n if (!id) {\n throw new Error('document must have id');\n }\n await this.collection.replace(id, updatedDocument, options);\n return parseSchema(this.schema, updatedDocument);\n } catch (error) {\n console.error(error);\n throw error;\n }\n }\n\n public async delete(id: string, options?: RemoveOptions): Promise<boolean> {\n this.fresh();\n try {\n await this.collection.remove(id, options);\n return true;\n } catch (error) {\n throw error;\n }\n }\n\n public async pagination({\n select,\n where,\n orderBy,\n limit,\n page,\n customQuery = {},\n }: {\n select?: any[] | string;\n where?: any;\n orderBy?: any;\n limit?: number;\n page?: number;\n customQuery?: any;\n }): Promise<any[]> {\n this.fresh();\n\n let whereEx = {_type: {$eq: this.collectionName}};\n\n if (where) {\n whereEx = {\n ...whereEx,\n ...where,\n };\n }\n\n const bucketName = CouchbaseConnection.Instance.bucketName;\n\n const rows = await Pagination({\n bucketName,\n select,\n where: {where: whereEx, ...customQuery},\n limit,\n page,\n orderBy,\n });\n\n return rows.map((r) => parseSchema(this.schema, r));\n }\n\n public async customQuery<T>({\n params,\n limit,\n query,\n }: {\n params: any;\n limit: number;\n query: string;\n }): Promise<[T[], CustomQueryPagination]> {\n this.fresh();\n\n return CustomQuery<T>({\n limit,\n params,\n query,\n });\n }\n\n public parse<T>(data: T): T {\n this.fresh();\n return parseSchema(this.schema, data);\n }\n}\n\nexport default Model;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './pagination';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./pagination"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/pagination/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B","sourcesContent":["export * from './pagination';\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface PaginationArgs {
|
|
2
|
+
bucketName: string;
|
|
3
|
+
select?: any[] | string;
|
|
4
|
+
where: any;
|
|
5
|
+
page: number;
|
|
6
|
+
limit: number;
|
|
7
|
+
orderBy?: any;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Legacy pagination preserves the old string-built query and error-swallowing behavior.
|
|
11
|
+
*/
|
|
12
|
+
export declare const Pagination: (args: PaginationArgs) => Promise<any[]>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.Pagination = void 0;
|
|
43
|
+
var query_1 = require("../../query");
|
|
44
|
+
var connection_1 = __importDefault(require("../connection"));
|
|
45
|
+
/**
|
|
46
|
+
* Legacy pagination preserves the old string-built query and error-swallowing behavior.
|
|
47
|
+
*/
|
|
48
|
+
var Pagination = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
+
var _a, bucketName, _b, where, _c, page, _d, limit, _e, orderBy, cluster, select, offset, query, rows, error_1;
|
|
50
|
+
return __generator(this, function (_f) {
|
|
51
|
+
switch (_f.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
_a = args.bucketName, bucketName = _a === void 0 ? '_default' : _a, _b = args.where, where = _b === void 0 ? {} : _b, _c = args.page, page = _c === void 0 ? 0 : _c, _d = args.limit, limit = _d === void 0 ? 10 : _d, _e = args.orderBy, orderBy = _e === void 0 ? { createdAt: 'DESC' } : _e;
|
|
54
|
+
cluster = connection_1.default.Instance.cluster;
|
|
55
|
+
select = args.select || '*';
|
|
56
|
+
if (Array.isArray(select)) {
|
|
57
|
+
select = select.map(function (i) { return ({ $field: i }); });
|
|
58
|
+
}
|
|
59
|
+
offset = page * limit;
|
|
60
|
+
_f.label = 1;
|
|
61
|
+
case 1:
|
|
62
|
+
_f.trys.push([1, 3, , 4]);
|
|
63
|
+
query = new query_1.QueryBuilder(where, bucketName)
|
|
64
|
+
.select(select)
|
|
65
|
+
.limit(limit)
|
|
66
|
+
.offset(offset)
|
|
67
|
+
.orderBy(orderBy)
|
|
68
|
+
.build();
|
|
69
|
+
console.log('query', query);
|
|
70
|
+
return [4 /*yield*/, cluster.query(query)];
|
|
71
|
+
case 2:
|
|
72
|
+
rows = (_f.sent()).rows;
|
|
73
|
+
return [2 /*return*/, rows.map(function (r) {
|
|
74
|
+
return select === '*' ? r[bucketName] : r;
|
|
75
|
+
})];
|
|
76
|
+
case 3:
|
|
77
|
+
error_1 = _f.sent();
|
|
78
|
+
console.error('error running pagination', error_1);
|
|
79
|
+
return [2 /*return*/, []];
|
|
80
|
+
case 4: return [2 /*return*/];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}); };
|
|
84
|
+
exports.Pagination = Pagination;
|
|
85
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/legacy/pagination/pagination.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyC;AACzC,6DAAgD;AAWhD;;GAEG;AACI,IAAM,UAAU,GAAG,UAAO,IAAoB;;;;;gBAE7C,KAKA,IAAI,WALmB,EAAvB,UAAU,mBAAG,UAAU,KAAA,EACvB,KAIA,IAAI,MAJM,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,KAGA,IAAI,KAHI,EAAR,IAAI,mBAAG,CAAC,KAAA,EACR,KAEA,IAAI,MAFM,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,KACA,IAAI,QADyB,EAA7B,OAAO,mBAAG,EAAC,SAAS,EAAE,MAAM,EAAC,KAAA,CACxB;gBAEH,OAAO,GAAG,oBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAEjD,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;gBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAb,CAAa,CAAC,CAAC;gBAC9C,CAAC;gBAEK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;;;;gBAGlB,KAAK,GAAG,IAAI,oBAAY,CAAC,KAAK,EAAE,UAAU,CAAC;qBAC5C,MAAM,CAAC,MAAM,CAAC;qBACd,KAAK,CAAC,KAAK,CAAC;qBACZ,MAAM,CAAC,MAAM,CAAC;qBACd,OAAO,CAAC,OAAO,CAAC;qBAChB,KAAK,EAAE,CAAC;gBAEb,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAEb,qBAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAA;;gBAAlC,IAAI,GAAI,CAAA,SAA0B,CAAA,KAA9B;gBAEX,sBAAO,IAAI,CAAC,GAAG,CAAC,UAAC,CAAM;wBACnB,OAAO,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9C,CAAC,CAAC,EAAC;;;gBAEH,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,OAAK,CAAC,CAAC;gBACjD,sBAAO,EAAE,EAAC;;;;KAEjB,CAAC;AArCW,QAAA,UAAU,cAqCrB","sourcesContent":["import {QueryBuilder} from '../../query';\nimport CouchbaseConnection from '../connection';\n\nexport interface PaginationArgs {\n bucketName: string;\n select?: any[] | string;\n where: any;\n page: number;\n limit: number;\n orderBy?: any;\n}\n\n/**\n * Legacy pagination preserves the old string-built query and error-swallowing behavior.\n */\nexport const Pagination = async (args: PaginationArgs): Promise<any[]> => {\n const {\n bucketName = '_default',\n where = {},\n page = 0,\n limit = 10,\n orderBy = {createdAt: 'DESC'},\n } = args;\n\n const cluster = CouchbaseConnection.Instance.cluster;\n\n let select = args.select || '*';\n if (Array.isArray(select)) {\n select = select.map((i) => ({$field: i}));\n }\n\n const offset = page * limit;\n\n try {\n const query = new QueryBuilder(where, bucketName)\n .select(select)\n .limit(limit)\n .offset(offset)\n .orderBy(orderBy)\n .build();\n\n console.log('query', query);\n\n const {rows} = await cluster.query(query);\n\n return rows.map((r: any) => {\n return select === '*' ? r[bucketName] : r;\n });\n } catch (error) {\n console.error('error running pagination', error);\n return [];\n }\n};\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CustomQueryArgs {
|
|
2
|
+
query: any;
|
|
3
|
+
limit: number;
|
|
4
|
+
params: any;
|
|
5
|
+
}
|
|
6
|
+
export interface CustomQueryPagination {
|
|
7
|
+
hasNext: boolean;
|
|
8
|
+
params: any;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Legacy custom query preserves the old raw cluster.query(query) behavior.
|
|
12
|
+
*/
|
|
13
|
+
export declare const CustomQuery: <T>(args: CustomQueryArgs) => Promise<[T[], CustomQueryPagination]>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.CustomQuery = void 0;
|
|
43
|
+
var connection_1 = __importDefault(require("../connection"));
|
|
44
|
+
/**
|
|
45
|
+
* Legacy custom query preserves the old raw cluster.query(query) behavior.
|
|
46
|
+
*/
|
|
47
|
+
var CustomQuery = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
48
|
+
var query, limit, params, cluster, _a, rows, totalItems, hasNext, error_1;
|
|
49
|
+
return __generator(this, function (_b) {
|
|
50
|
+
switch (_b.label) {
|
|
51
|
+
case 0:
|
|
52
|
+
query = args.query, limit = args.limit, params = args.params;
|
|
53
|
+
cluster = connection_1.default.Instance.cluster;
|
|
54
|
+
_b.label = 1;
|
|
55
|
+
case 1:
|
|
56
|
+
_b.trys.push([1, 3, , 4]);
|
|
57
|
+
console.log('-> ', query);
|
|
58
|
+
return [4 /*yield*/, cluster.query(query)];
|
|
59
|
+
case 2:
|
|
60
|
+
_a = (_b.sent()).rows, rows = _a === void 0 ? [] : _a;
|
|
61
|
+
totalItems = rows.length;
|
|
62
|
+
hasNext = totalItems >= limit;
|
|
63
|
+
return [2 /*return*/, [rows, { params: params, hasNext: hasNext }]];
|
|
64
|
+
case 3:
|
|
65
|
+
error_1 = _b.sent();
|
|
66
|
+
console.error('error running CustomQuery', error_1);
|
|
67
|
+
return [2 /*return*/, [[], { params: params, hasNext: false }]];
|
|
68
|
+
case 4: return [2 /*return*/];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}); };
|
|
72
|
+
exports.CustomQuery = CustomQuery;
|
|
73
|
+
//# sourceMappingURL=customQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customQuery.js","sourceRoot":"","sources":["../../../src/legacy/search/customQuery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAAgD;AAahD;;GAEG;AACI,IAAM,WAAW,GAAG,UACvB,IAAqB;;;;;gBAEd,KAAK,GAAmB,IAAI,MAAvB,EAAE,KAAK,GAAY,IAAI,MAAhB,EAAE,MAAM,GAAI,IAAI,OAAR,CAAS;gBAE9B,OAAO,GAAG,oBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;;;;gBAGjD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAEN,qBAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAA;;gBAAvC,KAAa,CAAA,SAA0B,CAAA,KAA9B,EAAT,IAAI,mBAAG,EAAE,KAAA;gBAEV,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;gBACzB,OAAO,GAAG,UAAU,IAAI,KAAK,CAAC;gBAEpC,sBAAO,CAAC,IAAsB,EAAE,EAAC,MAAM,QAAA,EAAE,OAAO,SAAA,EAAC,CAAC,EAAC;;;gBAEnD,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAK,CAAC,CAAC;gBAClD,sBAAO,CAAC,EAAE,EAAE,EAAC,MAAM,QAAA,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC,EAAC;;;;KAE7C,CAAC;AApBW,QAAA,WAAW,eAoBtB","sourcesContent":["import CouchbaseConnection from '../connection';\n\nexport interface CustomQueryArgs {\n query: any;\n limit: number;\n params: any;\n}\n\nexport interface CustomQueryPagination {\n hasNext: boolean;\n params: any;\n}\n\n/**\n * Legacy custom query preserves the old raw cluster.query(query) behavior.\n */\nexport const CustomQuery = async <T>(\n args: CustomQueryArgs\n): Promise<[T[], CustomQueryPagination]> => {\n const {query, limit, params} = args;\n\n const cluster = CouchbaseConnection.Instance.cluster;\n\n try {\n console.log('-> ', query);\n\n const {rows = []} = await cluster.query(query);\n\n const totalItems = rows.length;\n const hasNext = totalItems >= limit;\n\n return [rows as unknown as T[], {params, hasNext}];\n } catch (error) {\n console.error('error running CustomQuery', error);\n return [[], {params, hasNext: false}];\n }\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './customQuery';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./customQuery"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/search/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B","sourcesContent":["export * from './customQuery';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ModelReadArgs } from './read-helpers';
|
|
2
|
+
export type DefaultWhereMode = 'default' | 'withDeleted' | 'onlyDeleted' | 'none';
|
|
3
|
+
export interface DefaultWhereConfig {
|
|
4
|
+
defaultWhere?: any;
|
|
5
|
+
mode?: DefaultWhereMode;
|
|
6
|
+
softDelete?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const softDeleteDefaultWhere: () => any;
|
|
9
|
+
export declare const defaultWhereForMode: ({ defaultWhere, mode, softDelete, }: DefaultWhereConfig) => any;
|
|
10
|
+
export declare const applyDefaultWhere: (args: ModelReadArgs, config: DefaultWhereConfig) => ModelReadArgs;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.applyDefaultWhere = exports.defaultWhereForMode = exports.softDeleteDefaultWhere = void 0;
|
|
15
|
+
var softDeleteDefaultWhere = function () { return ({ deleted: { $isMissing: true } }); };
|
|
16
|
+
exports.softDeleteDefaultWhere = softDeleteDefaultWhere;
|
|
17
|
+
var onlyDeletedWhere = function () { return ({ deleted: { $eq: true } }); };
|
|
18
|
+
var mergeWhere = function (first, second) {
|
|
19
|
+
if (!first) {
|
|
20
|
+
return second;
|
|
21
|
+
}
|
|
22
|
+
if (!second) {
|
|
23
|
+
return first;
|
|
24
|
+
}
|
|
25
|
+
return { $and: [first, second] };
|
|
26
|
+
};
|
|
27
|
+
var defaultWhereForMode = function (_a) {
|
|
28
|
+
var defaultWhere = _a.defaultWhere, _b = _a.mode, mode = _b === void 0 ? 'default' : _b, _c = _a.softDelete, softDelete = _c === void 0 ? false : _c;
|
|
29
|
+
if (mode === 'withDeleted' || mode === 'none') {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (mode === 'onlyDeleted') {
|
|
33
|
+
return onlyDeletedWhere();
|
|
34
|
+
}
|
|
35
|
+
return defaultWhere || (softDelete ? (0, exports.softDeleteDefaultWhere)() : undefined);
|
|
36
|
+
};
|
|
37
|
+
exports.defaultWhereForMode = defaultWhereForMode;
|
|
38
|
+
var applyDefaultWhere = function (args, config) {
|
|
39
|
+
if (args === void 0) { args = {}; }
|
|
40
|
+
var scopedWhere = (0, exports.defaultWhereForMode)(config);
|
|
41
|
+
if (!scopedWhere) {
|
|
42
|
+
return args;
|
|
43
|
+
}
|
|
44
|
+
return __assign(__assign({}, args), { where: mergeWhere(scopedWhere, args.where) });
|
|
45
|
+
};
|
|
46
|
+
exports.applyDefaultWhere = applyDefaultWhere;
|
|
47
|
+
//# sourceMappingURL=default-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-scope.js","sourceRoot":"","sources":["../../src/model/default-scope.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAUO,IAAM,sBAAsB,GAAG,cAAW,OAAA,CAAC,EAAC,OAAO,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,EAAC,CAAC,EAA/B,CAA+B,CAAC;AAApE,QAAA,sBAAsB,0BAA8C;AAEjF,IAAM,gBAAgB,GAAG,cAAW,OAAA,CAAC,EAAC,OAAO,EAAE,EAAC,GAAG,EAAE,IAAI,EAAC,EAAC,CAAC,EAAxB,CAAwB,CAAC;AAE7D,IAAM,UAAU,GAAG,UAAC,KAAW,EAAE,MAAY;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,EAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAC,CAAC;AACnC,CAAC,CAAC;AAEK,IAAM,mBAAmB,GAAG,UAAC,EAIf;QAHjB,YAAY,kBAAA,EACZ,YAAgB,EAAhB,IAAI,mBAAG,SAAS,KAAA,EAChB,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA;IAElB,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzB,OAAO,gBAAgB,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,8BAAsB,GAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/E,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAEK,IAAM,iBAAiB,GAAG,UAC7B,IAAwB,EACxB,MAA0B;IAD1B,qBAAA,EAAA,SAAwB;IAGxB,IAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC,MAAM,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6BACO,IAAI,KACP,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAC5C;AACN,CAAC,CAAC;AAdW,QAAA,iBAAiB,qBAc5B","sourcesContent":["import {ModelReadArgs} from './read-helpers';\n\nexport type DefaultWhereMode = 'default' | 'withDeleted' | 'onlyDeleted' | 'none';\n\nexport interface DefaultWhereConfig {\n defaultWhere?: any;\n mode?: DefaultWhereMode;\n softDelete?: boolean;\n}\n\nexport const softDeleteDefaultWhere = (): any => ({deleted: {$isMissing: true}});\n\nconst onlyDeletedWhere = (): any => ({deleted: {$eq: true}});\n\nconst mergeWhere = (first?: any, second?: any): any => {\n if (!first) {\n return second;\n }\n\n if (!second) {\n return first;\n }\n\n return {$and: [first, second]};\n};\n\nexport const defaultWhereForMode = ({\n defaultWhere,\n mode = 'default',\n softDelete = false,\n}: DefaultWhereConfig): any => {\n if (mode === 'withDeleted' || mode === 'none') {\n return undefined;\n }\n\n if (mode === 'onlyDeleted') {\n return onlyDeletedWhere();\n }\n\n return defaultWhere || (softDelete ? softDeleteDefaultWhere() : undefined);\n};\n\nexport const applyDefaultWhere = (\n args: ModelReadArgs = {},\n config: DefaultWhereConfig\n): ModelReadArgs => {\n const scopedWhere = defaultWhereForMode(config);\n\n if (!scopedWhere) {\n return args;\n }\n\n return {\n ...args,\n where: mergeWhere(scopedWhere, args.where),\n };\n};\n"]}
|