couchset 0.0.9 → 0.0.14
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/README.md +5 -0
- package/dist/automate/model/client.js +1 -1
- package/dist/automate/model/client.js.map +1 -1
- package/dist/automate/model/index.d.ts +1 -0
- package/dist/automate/model/index.js +38 -23
- package/dist/automate/model/index.js.map +1 -1
- package/dist/automate/morpheus/index.js +9 -9
- package/dist/automate/morpheus/index.js.map +1 -1
- package/dist/automate/writer/index.js +2 -2
- package/dist/automate/writer/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model/index.d.ts +9 -9
- package/dist/model/index.js +13 -13
- package/dist/model/index.js.map +1 -1
- package/dist/query/exceptions.js +4 -4
- package/dist/query/exceptions.js.map +1 -1
- package/dist/query/helpers/builders.js +51 -51
- package/dist/query/helpers/builders.js.map +1 -1
- package/dist/query/utils.js +3 -3
- package/dist/query/utils.js.map +1 -1
- package/dist/shared/common.model.js +2 -2
- package/dist/shared/common.model.js.map +1 -1
- package/dist/utils/log.js +2 -2
- package/dist/utils/log.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
|
|
22
22
|
CouchSet is a Couchbase ORM & Automatic GraphQL API code generator (Resolver/Queries) tool
|
|
23
23
|
|
|
24
|
+
- [Install](#install)
|
|
25
|
+
- [License](#license)
|
|
24
26
|
|
|
25
27
|
## 1. Install
|
|
26
28
|
```bash
|
|
@@ -229,3 +231,6 @@ TODO
|
|
|
229
231
|
<p align="center">
|
|
230
232
|
<h1 align="center"> Algo Inc </h1>
|
|
231
233
|
</p>
|
|
234
|
+
|
|
235
|
+
## License
|
|
236
|
+
Couchset is [MIT licensed](./LICENSE).
|
|
@@ -17,7 +17,7 @@ var generateClient = function (props) {
|
|
|
17
17
|
// TODO fields mapping
|
|
18
18
|
var name = props.name, fields = props.fields;
|
|
19
19
|
var nameCamel = (0, camelCase_1.default)(name);
|
|
20
|
-
var fragmentName = name
|
|
20
|
+
var fragmentName = "".concat(name, "Fragment");
|
|
21
21
|
var fieldsJoined = (fields || []).join(',');
|
|
22
22
|
var FRAGMENT = (0, lodash_1.isEmpty)(fields)
|
|
23
23
|
? null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/automate/model/client.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,+DAAyC;AACzC,4DAA8B;AAC9B,iCAA+B;AAE/B,uCAA6C;AAOtC,IAAM,cAAc,GAAG,UAAC,KAAY;IACvC,uBAAuB;IACvB,sBAAsB;IACf,IAAA,IAAI,GAAY,KAAK,KAAjB,EAAE,MAAM,GAAI,KAAK,OAAT,CAAU;IAE7B,IAAM,SAAS,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IAClC,IAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/automate/model/client.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,+DAAyC;AACzC,4DAA8B;AAC9B,iCAA+B;AAE/B,uCAA6C;AAOtC,IAAM,cAAc,GAAG,UAAC,KAAY;IACvC,uBAAuB;IACvB,sBAAsB;IACf,IAAA,IAAI,GAAY,KAAK,KAAjB,EAAE,MAAM,GAAI,KAAK,OAAT,CAAU;IAE7B,IAAM,SAAS,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IAClC,IAAM,YAAY,GAAG,UAAG,IAAI,aAAU,CAAC;IAEvC,IAAM,YAAY,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAM,QAAQ,GAAG,IAAA,gBAAO,EAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,IAAI;QACN,CAAC,KAAC,qBAAG,4HAAA,iBACE,EAAY,MAAO,EAAI,cAC5B,EAAY,aAEnB,KAHY,YAAY,EAAO,IAAI,EAC5B,YAAY,CAEnB,CAAC;IAEA,IAAM,IAAI,OAAG,qBAAG,wMAAA,kBACJ,EAAI,kCACJ,EAAS,wCACR,EAAY,0BAGvB,EAAQ,MACX,KANa,IAAI,EACJ,SAAS,EACR,YAAY,EAGvB,QAAQ,CACX,CAAC;IAEA,IAAM,GAAG,OAAG,qBAAG,wLAAA,iBACJ,EAAI,gCACL,EAAS,6BACV,EAAY,wBAGnB,EAAQ,MACX,KANY,IAAI,EACL,SAAS,EACV,YAAY,EAGnB,QAAQ,CACX,CAAC;IAEA,IAAM,MAAM,OAAG,qBAAG,uNAAA,wBACA,EAAI,kCACV,EAAS,4EAInB,EAAe,OACjB,KANkB,IAAI,EACV,SAAS,EAInB,wBAAe,CACjB,CAAC;IAED,IAAM,MAAM,OAAG,qBAAG,8NAAA,uBACD,EAAI,UAAW,EAAI,2BACxB,EAAS,+EAInB,EAAe,OACjB,KANiB,IAAI,EAAW,IAAI,EACxB,SAAS,EAInB,wBAAe,CACjB,CAAC;IAED,OAAO,EAAC,QAAQ,UAAA,EAAE,GAAG,KAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,IAAI,MAAA,EAAC,CAAC;AACjD,CAAC,CAAC;AAvDW,QAAA,cAAc,kBAuDzB","sourcesContent":["import camelCase from 'lodash/camelCase';\nimport gql from 'graphql-tag';\nimport {isEmpty} from 'lodash';\n\nimport {ResTypeFragment} from '../../shared';\n\ninterface Props {\n name: string;\n fields: string[];\n}\n\nexport const generateClient = (props: Props) => {\n // TODO inner fragments\n // TODO fields mapping\n const {name, fields} = props;\n\n const nameCamel = camelCase(name);\n const fragmentName = `${name}Fragment`;\n\n const fieldsJoined = (fields || []).join(',');\n\n const FRAGMENT = isEmpty(fields)\n ? null\n : gql`\n fragment ${fragmentName} on ${name} {\n ${fieldsJoined}\n }\n `;\n\n const PAGE = gql`\n query Page${name}($id: String!) {\n data: ${nameCamel}Pagination(id: $id) {\n ...${fragmentName}\n }\n }\n ${FRAGMENT}\n `;\n\n const GET = gql`\n query Get${name}($id: String!) {\n data: ${nameCamel}Get(id: $id) {\n ...${fragmentName}\n }\n }\n ${FRAGMENT}\n `;\n\n const DELETE = gql`\n mutation Delete${name}($id: String!) {\n data: ${nameCamel}Delete(id: $id) {\n ...ResTypeFragment\n }\n }\n ${ResTypeFragment}\n `;\n\n const CREATE = gql`\n mutation Create${name}($args: ${name}Input!) {\n data: ${nameCamel}Create(args: $args) {\n ...ResTypeFragment\n }\n }\n ${ResTypeFragment}\n `;\n\n return {FRAGMENT, GET, DELETE, CREATE, PAGE};\n};\n"]}
|
|
@@ -113,6 +113,23 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
113
113
|
var modelKeys = Object.getOwnPropertyNames(new ClassModelType());
|
|
114
114
|
var authMiddleware = options.authMiddleware || middlewares_1.isAuth;
|
|
115
115
|
var blankMiddleware = [];
|
|
116
|
+
var ClassResType = /** @class */ (function () {
|
|
117
|
+
function ClassResType() {
|
|
118
|
+
}
|
|
119
|
+
__decorate([
|
|
120
|
+
(0, type_graphql_1.Field)(function () { return Boolean; })
|
|
121
|
+
], ClassResType.prototype, "success", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
(0, type_graphql_1.Field)(function () { return String; }, { nullable: true })
|
|
124
|
+
], ClassResType.prototype, "message", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
(0, type_graphql_1.Field)(function (type) { return graphql_type_json_1.default; }, { nullable: true })
|
|
127
|
+
], ClassResType.prototype, "data", void 0);
|
|
128
|
+
ClassResType = __decorate([
|
|
129
|
+
(0, type_graphql_1.ObjectType)("".concat(nameCamel, "ResType"))
|
|
130
|
+
], ClassResType);
|
|
131
|
+
return ClassResType;
|
|
132
|
+
}());
|
|
116
133
|
var PaginationClass = /** @class */ (function () {
|
|
117
134
|
function PaginationClass() {
|
|
118
135
|
}
|
|
@@ -126,8 +143,8 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
126
143
|
(0, type_graphql_1.Field)(function (type) { return graphql_type_json_1.default; }, { nullable: true })
|
|
127
144
|
], PaginationClass.prototype, "params", void 0);
|
|
128
145
|
PaginationClass = __decorate([
|
|
129
|
-
(0, type_graphql_1.InputType)(nameCamel
|
|
130
|
-
(0, type_graphql_1.ObjectType)(nameCamel
|
|
146
|
+
(0, type_graphql_1.InputType)("".concat(nameCamel, "PaginationInput")),
|
|
147
|
+
(0, type_graphql_1.ObjectType)("".concat(nameCamel, "Pagination"))
|
|
131
148
|
], PaginationClass);
|
|
132
149
|
return PaginationClass;
|
|
133
150
|
}());
|
|
@@ -135,7 +152,7 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
135
152
|
var ResolverClass = /** @class */ (function () {
|
|
136
153
|
function ResolverClass() {
|
|
137
154
|
}
|
|
138
|
-
ResolverClass.prototype[_e = nameCamel
|
|
155
|
+
ResolverClass.prototype[_e = "".concat(nameCamel, "Pagination")] = function (filter, sort, before, after, limitArg) {
|
|
139
156
|
return __awaiter(this, void 0, void 0, function () {
|
|
140
157
|
var limit, copyParams, bucket, query, _a, errorFetching, _b, data, _c, _d, rows, _j, options_1, dataToSend, error_1;
|
|
141
158
|
return __generator(this, function (_k) {
|
|
@@ -149,7 +166,7 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
149
166
|
after: after,
|
|
150
167
|
limit: limit,
|
|
151
168
|
}, lodash_1.identity);
|
|
152
|
-
(0, utils_1.log)(nameCamel
|
|
169
|
+
(0, utils_1.log)("".concat(nameCamel, "Pagination -->"), copyParams);
|
|
153
170
|
_k.label = 1;
|
|
154
171
|
case 1:
|
|
155
172
|
_k.trys.push([1, 5, , 6]);
|
|
@@ -158,7 +175,7 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
158
175
|
case 2: return [2 /*return*/, _k.sent()];
|
|
159
176
|
case 3:
|
|
160
177
|
bucket = ClassModel.getBucketName();
|
|
161
|
-
query = "\n SELECT "
|
|
178
|
+
query = "\n SELECT ".concat(modelKeys.join(','), "\n FROM `").concat(bucket, "` ").concat(nameCamel, "\n WHERE ").concat(nameCamel, "._type = \"").concat(_type, "\"\n LIMIT ").concat(limit, ";\n ");
|
|
162
179
|
return [4 /*yield*/, (0, utils_1.awaitTo)(ClassModel.customQuery({
|
|
163
180
|
limit: limit,
|
|
164
181
|
query: query,
|
|
@@ -170,28 +187,25 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
170
187
|
throw errorFetching;
|
|
171
188
|
}
|
|
172
189
|
_c = __read(data, 2), _d = _c[0], rows = _d === void 0 ? [] : _d, _j = _c[1], options_1 = _j === void 0 ? { hasNext: false, params: copyParams } : _j;
|
|
173
|
-
dataToSend = rows.map(function (d) {
|
|
174
|
-
var chat = d.chat, attachments = d.attachments, owner = d.owner;
|
|
175
|
-
return ClassModel.parse(__assign(__assign({}, chat), { attachments: attachments, owner: owner[0] || null }));
|
|
176
|
-
});
|
|
190
|
+
dataToSend = rows.map(function (d) { return ClassModel.parse(d); });
|
|
177
191
|
return [2 /*return*/, __assign({ items: dataToSend }, options_1)];
|
|
178
192
|
case 5:
|
|
179
193
|
error_1 = _k.sent();
|
|
180
|
-
(0, utils_1.log)("error paginating "
|
|
194
|
+
(0, utils_1.log)("error paginating ".concat(nameCamel), error_1);
|
|
181
195
|
return [2 /*return*/, { items: [], hasNext: false, params: copyParams }];
|
|
182
196
|
case 6: return [2 /*return*/];
|
|
183
197
|
}
|
|
184
198
|
});
|
|
185
199
|
});
|
|
186
200
|
};
|
|
187
|
-
ResolverClass.prototype[_f = nameCamel
|
|
201
|
+
ResolverClass.prototype[_f = "".concat(nameCamel, "Get")] = function (id, owner) {
|
|
188
202
|
return __awaiter(this, void 0, void 0, function () {
|
|
189
203
|
var foundDocument, error_2;
|
|
190
204
|
return __generator(this, function (_a) {
|
|
191
205
|
switch (_a.label) {
|
|
192
206
|
case 0:
|
|
193
207
|
_a.trys.push([0, 4, , 5]);
|
|
194
|
-
(0, utils_1.log)(nameCamel
|
|
208
|
+
(0, utils_1.log)("".concat(nameCamel, "Get -->"), { id: id, owner: owner });
|
|
195
209
|
if (!(getByIdOptions && getByIdOptions.method)) return [3 /*break*/, 2];
|
|
196
210
|
return [4 /*yield*/, getByIdOptions.method({ id: id, owner: owner })];
|
|
197
211
|
case 1: return [2 /*return*/, _a.sent()];
|
|
@@ -199,25 +213,25 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
199
213
|
case 3:
|
|
200
214
|
foundDocument = _a.sent();
|
|
201
215
|
if (!foundDocument) {
|
|
202
|
-
throw new Error(nameCamel
|
|
216
|
+
throw new Error("".concat(nameCamel, " not found"));
|
|
203
217
|
}
|
|
204
218
|
return [2 /*return*/, foundDocument];
|
|
205
219
|
case 4:
|
|
206
220
|
error_2 = _a.sent();
|
|
207
|
-
(0, utils_1.log)("error finding "
|
|
221
|
+
(0, utils_1.log)("error finding ".concat(nameCamel), error_2);
|
|
208
222
|
return [2 /*return*/, null];
|
|
209
223
|
case 5: return [2 /*return*/];
|
|
210
224
|
}
|
|
211
225
|
});
|
|
212
226
|
});
|
|
213
227
|
};
|
|
214
|
-
ResolverClass.prototype[_g = nameCamel
|
|
228
|
+
ResolverClass.prototype[_g = "".concat(nameCamel, "Delete")] = function (id, owner) {
|
|
215
229
|
return __awaiter(this, void 0, void 0, function () {
|
|
216
230
|
var deleted, error_3;
|
|
217
231
|
return __generator(this, function (_a) {
|
|
218
232
|
switch (_a.label) {
|
|
219
233
|
case 0:
|
|
220
|
-
(0, utils_1.log)(nameCamel
|
|
234
|
+
(0, utils_1.log)("".concat(nameCamel, "Delete -->"), { id: id, owner: owner });
|
|
221
235
|
_a.label = 1;
|
|
222
236
|
case 1:
|
|
223
237
|
_a.trys.push([1, 5, , 6]);
|
|
@@ -228,21 +242,21 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
228
242
|
case 4:
|
|
229
243
|
deleted = _a.sent();
|
|
230
244
|
if (!deleted) {
|
|
231
|
-
throw new Error(nameCamel
|
|
245
|
+
throw new Error("".concat(nameCamel, " not deleted"));
|
|
232
246
|
}
|
|
233
247
|
return [2 /*return*/, {
|
|
234
248
|
success: true,
|
|
235
249
|
}];
|
|
236
250
|
case 5:
|
|
237
251
|
error_3 = _a.sent();
|
|
238
|
-
(0, utils_1.log)("error deleting "
|
|
252
|
+
(0, utils_1.log)("error deleting ".concat(nameCamel), error_3);
|
|
239
253
|
return [2 /*return*/, { success: false, message: error_3 && error_3.message }];
|
|
240
254
|
case 6: return [2 /*return*/];
|
|
241
255
|
}
|
|
242
256
|
});
|
|
243
257
|
});
|
|
244
258
|
};
|
|
245
|
-
ResolverClass.prototype[_h = nameCamel
|
|
259
|
+
ResolverClass.prototype[_h = "".concat(nameCamel, "Create")] = function (
|
|
246
260
|
// @ts-ignore
|
|
247
261
|
args) {
|
|
248
262
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -250,7 +264,7 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
250
264
|
return __generator(this, function (_a) {
|
|
251
265
|
switch (_a.label) {
|
|
252
266
|
case 0:
|
|
253
|
-
(0, utils_1.log)(nameCamel
|
|
267
|
+
(0, utils_1.log)("".concat(nameCamel, "Create -->"), args);
|
|
254
268
|
_a.label = 1;
|
|
255
269
|
case 1:
|
|
256
270
|
_a.trys.push([1, 5, , 6]);
|
|
@@ -263,7 +277,7 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
263
277
|
if (createdOrUpdate) {
|
|
264
278
|
return [2 /*return*/, { success: true, data: createdOrUpdate }];
|
|
265
279
|
}
|
|
266
|
-
throw new Error("error creating "
|
|
280
|
+
throw new Error("error creating ".concat(nameCamel, " method "));
|
|
267
281
|
case 5:
|
|
268
282
|
err_1 = _a.sent();
|
|
269
283
|
console.error(err_1 && err_1.message, err_1);
|
|
@@ -290,13 +304,13 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
290
304
|
__param(1, (0, type_graphql_1.Arg)('owner', function () { return String; }, { nullable: true }))
|
|
291
305
|
], ResolverClass.prototype, _f, null);
|
|
292
306
|
__decorate([
|
|
293
|
-
(0, type_graphql_1.Mutation)(function () { return
|
|
307
|
+
(0, type_graphql_1.Mutation)(function () { return ClassResType; }),
|
|
294
308
|
(0, type_graphql_1.UseMiddleware)(deleteByIdOptionsPublic ? blankMiddleware : authMiddleware),
|
|
295
309
|
__param(0, (0, type_graphql_1.Arg)('id', function () { return String; }, { nullable: false })),
|
|
296
310
|
__param(1, (0, type_graphql_1.Arg)('owner', function () { return String; }, { nullable: true }))
|
|
297
311
|
], ResolverClass.prototype, _g, null);
|
|
298
312
|
__decorate([
|
|
299
|
-
(0, type_graphql_1.Mutation)(function () { return
|
|
313
|
+
(0, type_graphql_1.Mutation)(function () { return ClassResType; }),
|
|
300
314
|
(0, type_graphql_1.UseMiddleware)(createUpdateOptionsPublic ? blankMiddleware : authMiddleware),
|
|
301
315
|
__param(0, (0, type_graphql_1.Arg)('args', function () { return ClassModelType; }))
|
|
302
316
|
], ResolverClass.prototype, _h, null);
|
|
@@ -312,6 +326,7 @@ var automateImplementation = function (ClassModelType, options) {
|
|
|
312
326
|
fields: modelKeys,
|
|
313
327
|
});
|
|
314
328
|
return {
|
|
329
|
+
resType: ClassResType,
|
|
315
330
|
pagination: PaginationClass,
|
|
316
331
|
resolver: ResolverClass,
|
|
317
332
|
modelKeys: modelKeys,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport camelCase from 'lodash/camelCase';\nimport pickBy from 'lodash/pickBy';\nimport GraphQLJSON from 'graphql-type-json';\nimport {identity} from 'lodash';\nimport {\n Field,\n Mutation,\n ObjectType,\n UseMiddleware,\n Arg,\n ClassType,\n Resolver,\n Query,\n InputType,\n} from 'type-graphql';\nimport {DocumentNode} from 'graphql';\n\nimport {awaitTo, log} from '../../utils';\nimport {Model} from '../../model';\nimport {isAuth} from '../middlewares';\nimport {createUpdate, ResType} from '../../shared';\n\nimport {generateClient} from './client';\n\ninterface PaginationResults {\n items: any[];\n hasNext: boolean;\n params: any;\n}\n\nexport interface AutomaticModelOptions extends AutomaticMethodOptions {\n model: Model;\n}\n\nexport interface AutomaticMethodOptions {\n authMiddleware?: any; // authentication middleware\n\n // Query\n pagination?: {\n public?: boolean;\n method?: (params: any) => Promise<PaginationResults>;\n };\n\n getById?: {\n public?: boolean;\n matchOwner?: boolean;\n method?: <T>(params: any) => Promise<T & any>;\n };\n\n // Mutations\n deleteById?: {\n public?: boolean; // NEVER SET IN PROD\n method?: (args: any) => Promise<ResType>;\n matchOwner?: boolean;\n };\n\n createUpdate?: {\n public?: boolean; // NEVER SET IN PROD\n method?: <T>(args: T) => Promise<ResType>;\n };\n\n // TODO in the future\n // fragmentMapping\n}\n\nexport interface AutomaticOutput {\n pagination: ClassType;\n resolver: ClassType;\n modelKeys: string[];\n client: Record<string, DocumentNode>;\n}\n\n/**\n *\n * @param c\n * @returns\n */\nexport const automateImplementation = <T>(\n ClassModelType: T & ClassType,\n options: AutomaticModelOptions\n): AutomaticOutput => {\n // createUpdate\n const createUpdateOptions = options?.createUpdate;\n const createUpdateOptionsPublic = options?.createUpdate?.public;\n\n // deleteById\n const deleteByIdOptions = options?.deleteById;\n const deleteByIdOptionsPublic = options?.deleteById?.public;\n\n // getById\n const getByIdOptions = options?.getById;\n const getByIdOptionsPublic = options?.getById?.public;\n\n // pagination\n const paginationOptions = options?.pagination;\n const paginationOptionsPublic = options?.pagination?.public;\n\n type ClassModelTYPE = typeof ClassModelType;\n\n const ClassModel = options.model;\n const name = (ClassModelType as any).name;\n const _type = ClassModel.collectionName;\n const nameCamel = camelCase(name);\n // const nameSNAKE_CASE = toUpper(snakeCase(name));\n const modelKeys: string[] = Object.getOwnPropertyNames(new ClassModelType());\n\n const authMiddleware = options.authMiddleware || isAuth;\n\n const blankMiddleware = [];\n\n @InputType(`${nameCamel}PaginationInput`)\n @ObjectType(`${nameCamel}Pagination`)\n class PaginationClass {\n @Field(() => [ClassModelType], {nullable: true})\n items: [typeof ClassModelType];\n\n @Field(() => Boolean, {nullable: true})\n hasNext?: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n @Field((type) => GraphQLJSON, {nullable: true})\n params?: any;\n }\n // return Pagination;\n\n @Resolver()\n class ResolverClass {\n @Query(() => PaginationClass)\n @UseMiddleware(paginationOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Pagination`](\n @Arg('filter', () => String, {nullable: true}) filter?: string,\n @Arg('sort', () => String, {nullable: true}) sort?: string,\n @Arg('before', () => Date, {nullable: true}) before?: Date,\n @Arg('after', () => Date, {nullable: true}) after?: Date,\n @Arg('limit', () => Number, {nullable: true}) limitArg?: number\n ): Promise<{\n items: ClassModelTYPE[];\n hasNext: boolean;\n params: any;\n }> {\n const limit = limitArg || 10;\n\n const copyParams = pickBy(\n {\n filter,\n sort,\n before,\n after,\n limit,\n },\n identity\n );\n\n log(`${nameCamel}Pagination -->`, copyParams);\n\n try {\n // Apply it from the methods\n if (paginationOptions && paginationOptions.method) {\n return await paginationOptions.method(copyParams);\n }\n\n const bucket = ClassModel.getBucketName();\n\n const query = `\n SELECT ${modelKeys.join(',')}\n FROM \\`${bucket}\\` ${nameCamel}\n WHERE ${nameCamel}._type = \"${_type}\"\n LIMIT ${limit};\n `;\n\n const [errorFetching, data = []] = await awaitTo(\n ClassModel.customQuery<any>({\n limit,\n query,\n params: copyParams,\n })\n );\n\n if (errorFetching) {\n throw errorFetching;\n }\n\n const [rows = [], options = {hasNext: false, params: copyParams}] = data;\n\n const dataToSend = rows.map((d) => {\n const {chat, attachments, owner} = d;\n return ClassModel.parse({\n ...chat,\n attachments,\n owner: owner[0] || null,\n });\n });\n\n return {items: dataToSend, ...options};\n } catch (error) {\n log(`error paginating ${nameCamel}`, error);\n return {items: [], hasNext: false, params: copyParams};\n }\n }\n\n @Query(() => ClassModelType)\n @UseMiddleware(getByIdOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Get`](\n @Arg('id', () => String, {nullable: false}) id: string,\n @Arg('owner', () => String, {nullable: true}) owner?: string\n ): Promise<typeof ClassModelType> {\n try {\n log(`${nameCamel}Get -->`, {id, owner});\n // Apply it from the methods\n if (getByIdOptions && getByIdOptions.method) {\n return await getByIdOptions.method({id, owner});\n }\n\n // TODO check if we own this payment method\n const foundDocument = await ClassModel.findById(id);\n if (!foundDocument) {\n throw new Error(`${nameCamel} not found`);\n }\n\n return foundDocument;\n } catch (error) {\n log(`error finding ${nameCamel}`, error);\n return null;\n }\n }\n\n @Mutation(() => ResType)\n @UseMiddleware(deleteByIdOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Delete`](\n @Arg('id', () => String, {nullable: false}) id: string,\n @Arg('owner', () => String, {nullable: true}) owner?: string\n ): Promise<ResType> {\n log(`${nameCamel}Delete -->`, {id, owner});\n try {\n // Apply it from the methods\n if (deleteByIdOptions && deleteByIdOptions.method) {\n return await deleteByIdOptions.method({id, owner});\n }\n\n // TODO check if we own this payment method\n const deleted = await ClassModel.delete(id);\n if (!deleted) {\n throw new Error(`${nameCamel} not deleted`);\n }\n\n return {\n success: true,\n };\n } catch (error) {\n log(`error deleting ${nameCamel}`, error);\n return {success: false, message: error && error.message};\n }\n }\n\n @Mutation(() => ResType)\n @UseMiddleware(createUpdateOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Create`](\n // @ts-ignore\n @Arg('args', () => ClassModelType) args: ClassModelType\n ): Promise<ResType> {\n log(`${nameCamel}Create -->`, args);\n\n try {\n // Apply it from the methods\n if (createUpdateOptions && createUpdateOptions.method) {\n return await createUpdateOptions.method(args);\n }\n\n // If updating\n const createdOrUpdate = await createUpdate({\n model: ClassModel,\n data: {\n ...args,\n },\n ...args, // id and owner if it exists\n });\n\n if (createdOrUpdate) {\n return {success: true, data: createdOrUpdate};\n }\n\n throw new Error(`error creating ${nameCamel} method `);\n } catch (err) {\n console.error(err && err.message, err);\n return {success: false, message: err && err.message};\n }\n }\n }\n\n // GQL\n // { FRAGMENT, GET, DELETE, CREATE, PAGE }\n const client = generateClient({\n name,\n fields: modelKeys,\n });\n\n return {\n pagination: PaginationClass,\n resolver: ResolverClass,\n modelKeys,\n client,\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport camelCase from 'lodash/camelCase';\nimport pickBy from 'lodash/pickBy';\nimport GraphQLJSON from 'graphql-type-json';\nimport {identity} from 'lodash';\nimport {\n Field,\n Mutation,\n ObjectType,\n UseMiddleware,\n Arg,\n ClassType,\n Resolver,\n Query,\n InputType,\n} from 'type-graphql';\nimport {DocumentNode} from 'graphql';\n\nimport {awaitTo, log} from '../../utils';\nimport {Model} from '../../model';\nimport {isAuth} from '../middlewares';\nimport {createUpdate, ResType} from '../../shared';\n\nimport {generateClient} from './client';\n\ninterface PaginationResults {\n items: any[];\n hasNext: boolean;\n params: any;\n}\n\nexport interface AutomaticModelOptions extends AutomaticMethodOptions {\n model: Model;\n}\n\nexport interface AutomaticMethodOptions {\n authMiddleware?: any; // authentication middleware\n\n // Query\n pagination?: {\n public?: boolean;\n method?: (params: any) => Promise<PaginationResults>;\n };\n\n getById?: {\n public?: boolean;\n matchOwner?: boolean;\n method?: <T>(params: any) => Promise<T & any>;\n };\n\n // Mutations\n deleteById?: {\n public?: boolean; // NEVER SET IN PROD\n method?: (args: any) => Promise<ResType>;\n matchOwner?: boolean;\n };\n\n createUpdate?: {\n public?: boolean; // NEVER SET IN PROD\n method?: <T>(args: T) => Promise<ResType>;\n };\n\n // TODO in the future\n // fragmentMapping\n}\n\nexport interface AutomaticOutput {\n resType: ResType;\n pagination: ClassType;\n resolver: ClassType;\n modelKeys: string[];\n client: Record<string, DocumentNode>;\n}\n\n/**\n *\n * @param c\n * @returns\n */\nexport const automateImplementation = <T>(\n ClassModelType: T & ClassType,\n options: AutomaticModelOptions\n): AutomaticOutput => {\n // createUpdate\n const createUpdateOptions = options?.createUpdate;\n const createUpdateOptionsPublic = options?.createUpdate?.public;\n\n // deleteById\n const deleteByIdOptions = options?.deleteById;\n const deleteByIdOptionsPublic = options?.deleteById?.public;\n\n // getById\n const getByIdOptions = options?.getById;\n const getByIdOptionsPublic = options?.getById?.public;\n\n // pagination\n const paginationOptions = options?.pagination;\n const paginationOptionsPublic = options?.pagination?.public;\n\n type ClassModelTYPE = typeof ClassModelType;\n\n const ClassModel = options.model;\n const name = (ClassModelType as any).name;\n const _type = ClassModel.collectionName;\n const nameCamel = camelCase(name);\n // const nameSNAKE_CASE = toUpper(snakeCase(name));\n const modelKeys: string[] = Object.getOwnPropertyNames(new ClassModelType());\n\n const authMiddleware = options.authMiddleware || isAuth;\n\n const blankMiddleware = [];\n\n @ObjectType(`${nameCamel}ResType`)\n class ClassResType {\n @Field(() => Boolean)\n success: boolean;\n\n @Field(() => String, {nullable: true})\n message?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n @Field((type) => GraphQLJSON, {nullable: true})\n data?: any;\n }\n\n @InputType(`${nameCamel}PaginationInput`)\n @ObjectType(`${nameCamel}Pagination`)\n class PaginationClass {\n @Field(() => [ClassModelType], {nullable: true})\n items: [typeof ClassModelType];\n\n @Field(() => Boolean, {nullable: true})\n hasNext?: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n @Field((type) => GraphQLJSON, {nullable: true})\n params?: any;\n }\n // return Pagination;\n\n @Resolver()\n class ResolverClass {\n @Query(() => PaginationClass)\n @UseMiddleware(paginationOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Pagination`](\n @Arg('filter', () => String, {nullable: true}) filter?: string,\n @Arg('sort', () => String, {nullable: true}) sort?: string,\n @Arg('before', () => Date, {nullable: true}) before?: Date,\n @Arg('after', () => Date, {nullable: true}) after?: Date,\n @Arg('limit', () => Number, {nullable: true}) limitArg?: number\n ): Promise<{\n items: ClassModelTYPE[];\n hasNext: boolean;\n params: any;\n }> {\n const limit = limitArg || 10;\n\n const copyParams = pickBy(\n {\n filter,\n sort,\n before,\n after,\n limit,\n },\n identity\n );\n\n log(`${nameCamel}Pagination -->`, copyParams);\n\n try {\n // Apply it from the methods\n if (paginationOptions && paginationOptions.method) {\n return await paginationOptions.method(copyParams);\n }\n\n const bucket = ClassModel.getBucketName();\n\n const query = `\n SELECT ${modelKeys.join(',')}\n FROM \\`${bucket}\\` ${nameCamel}\n WHERE ${nameCamel}._type = \"${_type}\"\n LIMIT ${limit};\n `;\n\n const [errorFetching, data = []] = await awaitTo(\n ClassModel.customQuery<any>({\n limit,\n query,\n params: copyParams,\n })\n );\n\n if (errorFetching) {\n throw errorFetching;\n }\n\n const [rows = [], options = {hasNext: false, params: copyParams}] = data;\n\n const dataToSend = rows.map((d) => ClassModel.parse(d));\n\n return {items: dataToSend, ...options};\n } catch (error) {\n log(`error paginating ${nameCamel}`, error);\n return {items: [], hasNext: false, params: copyParams};\n }\n }\n\n @Query(() => ClassModelType)\n @UseMiddleware(getByIdOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Get`](\n @Arg('id', () => String, {nullable: false}) id: string,\n @Arg('owner', () => String, {nullable: true}) owner?: string\n ): Promise<typeof ClassModelType> {\n try {\n log(`${nameCamel}Get -->`, {id, owner});\n // Apply it from the methods\n if (getByIdOptions && getByIdOptions.method) {\n return await getByIdOptions.method({id, owner});\n }\n\n // TODO check if we own this payment method\n const foundDocument = await ClassModel.findById(id);\n if (!foundDocument) {\n throw new Error(`${nameCamel} not found`);\n }\n\n return foundDocument;\n } catch (error) {\n log(`error finding ${nameCamel}`, error);\n return null;\n }\n }\n\n @Mutation(() => ClassResType)\n @UseMiddleware(deleteByIdOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Delete`](\n @Arg('id', () => String, {nullable: false}) id: string,\n @Arg('owner', () => String, {nullable: true}) owner?: string\n ): Promise<ResType> {\n log(`${nameCamel}Delete -->`, {id, owner});\n try {\n // Apply it from the methods\n if (deleteByIdOptions && deleteByIdOptions.method) {\n return await deleteByIdOptions.method({id, owner});\n }\n\n // TODO check if we own this payment method\n const deleted = await ClassModel.delete(id);\n if (!deleted) {\n throw new Error(`${nameCamel} not deleted`);\n }\n\n return {\n success: true,\n };\n } catch (error) {\n log(`error deleting ${nameCamel}`, error);\n return {success: false, message: error && error.message};\n }\n }\n\n @Mutation(() => ClassResType)\n @UseMiddleware(createUpdateOptionsPublic ? blankMiddleware : authMiddleware)\n async [`${nameCamel}Create`](\n // @ts-ignore\n @Arg('args', () => ClassModelType) args: ClassModelType\n ): Promise<ResType> {\n log(`${nameCamel}Create -->`, args);\n\n try {\n // Apply it from the methods\n if (createUpdateOptions && createUpdateOptions.method) {\n return await createUpdateOptions.method(args);\n }\n\n // If updating\n const createdOrUpdate = await createUpdate({\n model: ClassModel,\n data: {\n ...args,\n },\n ...args, // id and owner if it exists\n });\n\n if (createdOrUpdate) {\n return {success: true, data: createdOrUpdate};\n }\n\n throw new Error(`error creating ${nameCamel} method `);\n } catch (err) {\n console.error(err && err.message, err);\n return {success: false, message: err && err.message};\n }\n }\n }\n\n // GQL\n // { FRAGMENT, GET, DELETE, CREATE, PAGE }\n const client = generateClient({\n name,\n fields: modelKeys,\n });\n\n return {\n resType: ClassResType as unknown as ResType,\n pagination: PaginationClass,\n resolver: ResolverClass,\n modelKeys,\n client,\n };\n};\n"]}
|
|
@@ -91,18 +91,18 @@ var writeAllClientSchemas = function (_a) {
|
|
|
91
91
|
var _b = clt.client, FRAGMENT = _b.FRAGMENT, GET = _b.GET, PAGE = _b.PAGE, DELETE = _b.DELETE, CREATE = _b.CREATE, otherClient = __rest(_b, ["FRAGMENT", "GET", "PAGE", "DELETE", "CREATE"]);
|
|
92
92
|
var constStatements = [
|
|
93
93
|
{
|
|
94
|
-
name: nameSNAKE_CASE
|
|
94
|
+
name: "".concat(nameSNAKE_CASE, "_FRAGMENT"),
|
|
95
95
|
value: FRAGMENT,
|
|
96
|
-
leadingTrivia: "/** "
|
|
96
|
+
leadingTrivia: "/** ".concat(nameSNAKE_CASE, " Fragment **/"),
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
|
-
name: nameSNAKE_CASE
|
|
99
|
+
name: "".concat(nameSNAKE_CASE, "_CREATE"),
|
|
100
100
|
value: CREATE,
|
|
101
|
-
leadingTrivia: "/** "
|
|
101
|
+
leadingTrivia: "/** ".concat(nameSNAKE_CASE, " Create Mutation **/"),
|
|
102
102
|
},
|
|
103
|
-
{ name: nameSNAKE_CASE
|
|
104
|
-
{ name: nameSNAKE_CASE
|
|
105
|
-
{ name: nameSNAKE_CASE
|
|
103
|
+
{ name: "".concat(nameSNAKE_CASE, "_DELETE"), value: DELETE },
|
|
104
|
+
{ name: "".concat(nameSNAKE_CASE, "_GET"), value: GET },
|
|
105
|
+
{ name: "".concat(nameSNAKE_CASE, "_PAGE"), value: PAGE },
|
|
106
106
|
];
|
|
107
107
|
try {
|
|
108
108
|
// Add other defined queries
|
|
@@ -111,7 +111,7 @@ var writeAllClientSchemas = function (_a) {
|
|
|
111
111
|
if (!(0, isEmpty_1.default)(keyQuery)) {
|
|
112
112
|
constStatements.push({
|
|
113
113
|
name: keyQuery,
|
|
114
|
-
value: otherClient[""
|
|
114
|
+
value: otherClient["".concat(keyQuery)],
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -152,7 +152,7 @@ var writeAllClientSchemas = function (_a) {
|
|
|
152
152
|
.map(function (c) { return ({
|
|
153
153
|
kind: ts_morph_1.StructureKind.ExportDeclaration,
|
|
154
154
|
// namespaceExport: "*",
|
|
155
|
-
moduleSpecifier: "./"
|
|
155
|
+
moduleSpecifier: "./".concat(c),
|
|
156
156
|
}); });
|
|
157
157
|
// write final index file
|
|
158
158
|
return [4 /*yield*/, (0, writer_1.writeTsFile)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/morpheus/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,qCAAmE;AACnE,2DAAqC;AAGrC,qCAAyC;AACzC,oCAAsC;AACtC,uCAAmC;AAYnC;;GAEG;AACI,IAAM,qBAAqB,GAAG,UAAO,EAA6B;QAA5B,OAAO,aAAA,EAAE,IAAI,UAAA;;;;;;oBACtD,IAAI,CAAC,cAAK,EAAE;wBACR,sBAAO;qBACV;oBAEK,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,GAAG;;wBACpC,IAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;wBAC3B,IAAM,cAAc,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;wBAE/C,kCAAkC;wBAClC,IAAM,KAAwD,GAAG,CAAC,MAAM,EAAjE,QAAQ,cAAA,EAAE,GAAG,SAAA,EAAE,IAAI,UAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA,EAAK,WAAW,cAApD,+CAAqD,CAAa,CAAC;wBAEzE,IAAM,eAAe,GAAG;4BACpB;gCACI,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/morpheus/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Define all models that should be morphed\n */\nimport {ExportDeclarationStructure, StructureKind} from 'ts-morph';\nimport isEmpty from 'lodash/isEmpty';\nimport {DocumentNode} from 'graphql';\n\nimport {toSnakeUpper} from '../../utils';\nimport {writeTsFile} from '../writer';\nimport {isDev} from '../../config';\n\ninterface ClientModels {\n name: string;\n client: Record<string, DocumentNode>;\n}\n\ninterface IWriteClient {\n path: string;\n clients: ClientModels[];\n}\n\n/**\n * Morpheus in actions\n */\nexport const writeAllClientSchemas = async ({clients, path}: IWriteClient): Promise<void> => {\n if (!isDev) {\n return;\n }\n // write each file\n const writeFilesTasks = clients.map((clt) => {\n const modelName = clt.name;\n const nameSNAKE_CASE = toSnakeUpper(modelName);\n\n // write fragments and all queries\n const {FRAGMENT, GET, PAGE, DELETE, CREATE, ...otherClient} = clt.client;\n\n const constStatements = [\n {\n name: `${nameSNAKE_CASE}_FRAGMENT`,\n value: FRAGMENT,\n leadingTrivia: `/** ${nameSNAKE_CASE} Fragment **/`,\n },\n {\n name: `${nameSNAKE_CASE}_CREATE`,\n value: CREATE,\n leadingTrivia: `/** ${nameSNAKE_CASE} Create Mutation **/`,\n },\n {name: `${nameSNAKE_CASE}_DELETE`, value: DELETE},\n {name: `${nameSNAKE_CASE}_GET`, value: GET},\n {name: `${nameSNAKE_CASE}_PAGE`, value: PAGE},\n ];\n\n // Add other defined queries\n for (const keyQuery of Object.keys(otherClient)) {\n if (!isEmpty(keyQuery)) {\n constStatements.push({\n name: keyQuery,\n value: (otherClient as any)[`${keyQuery}`],\n });\n }\n }\n\n return {\n filename: nameSNAKE_CASE,\n task: writeTsFile({\n pathToClient: path,\n filename: nameSNAKE_CASE,\n variables: constStatements.map((con) => ({\n name: con.name,\n initializer: JSON.stringify(con.value),\n leadingTrivia: (writer) => {\n writer.writeLine('\\n');\n\n if (con?.leadingTrivia) {\n writer.writeLine(con.leadingTrivia);\n }\n },\n trailingTrivia: (writer) => writer.writeLine('\\n'),\n })),\n }),\n };\n });\n\n // write all files\n await Promise.all(writeFilesTasks.map((i) => i.task));\n\n // write all exports\n const allFileExports: ExportDeclarationStructure[] = writeFilesTasks\n .map((i) => i.filename)\n .map((c) => ({\n kind: StructureKind.ExportDeclaration,\n // namespaceExport: \"*\",\n moduleSpecifier: `./${c}`,\n }));\n\n // write final index file\n await writeTsFile({\n filename: 'index',\n exports: allFileExports,\n });\n};\n"]}
|
|
@@ -46,10 +46,10 @@ var writeTsFile = function (props) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
46
46
|
case 0:
|
|
47
47
|
filename = props.filename, variables = props.variables, interfaces = props.interfaces, exports = props.exports, _a = props.pathToClient, pathToClient = _a === void 0 ? defaultPathToTs : _a;
|
|
48
48
|
project = new ts_morph_1.Project({
|
|
49
|
-
tsConfigFilePath: pathToClient
|
|
49
|
+
tsConfigFilePath: "".concat(pathToClient, "/tsconfig.json"),
|
|
50
50
|
skipAddingFilesFromTsConfig: true,
|
|
51
51
|
});
|
|
52
|
-
sourceFile = project.createSourceFile(pathToClient
|
|
52
|
+
sourceFile = project.createSourceFile("".concat(pathToClient, "/").concat(filename, ".ts"), {}, { overwrite: true });
|
|
53
53
|
if (variables) {
|
|
54
54
|
sourceFile.addVariableStatement({
|
|
55
55
|
declarationKind: ts_morph_1.VariableDeclarationKind.Const,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/writer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAQkB;AAElB,IAAM,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;AAUxC,IAAM,WAAW,GAAG,UAAO,KAAqB;;;;;gBAC5C,QAAQ,GAAoE,KAAK,SAAzE,EAAE,SAAS,GAAyD,KAAK,UAA9D,EAAE,UAAU,GAA6C,KAAK,WAAlD,EAAE,OAAO,GAAoC,KAAK,QAAzC,EAAE,KAAkC,KAAK,aAAT,EAA9B,YAAY,mBAAG,eAAe,KAAA,CAAU;gBACnF,OAAO,GAAG,IAAI,kBAAO,CAAC;oBACxB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/writer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAQkB;AAElB,IAAM,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;AAUxC,IAAM,WAAW,GAAG,UAAO,KAAqB;;;;;gBAC5C,QAAQ,GAAoE,KAAK,SAAzE,EAAE,SAAS,GAAyD,KAAK,UAA9D,EAAE,UAAU,GAA6C,KAAK,WAAlD,EAAE,OAAO,GAAoC,KAAK,QAAzC,EAAE,KAAkC,KAAK,aAAT,EAA9B,YAAY,mBAAG,eAAe,KAAA,CAAU;gBACnF,OAAO,GAAG,IAAI,kBAAO,CAAC;oBACxB,gBAAgB,EAAE,UAAG,YAAY,mBAAgB;oBACjD,2BAA2B,EAAE,IAAI;iBACpC,CAAC,CAAC;gBAEG,UAAU,GAAG,OAAO,CAAC,gBAAgB,CACvC,UAAG,YAAY,cAAI,QAAQ,QAAK,EAChC,EAAE,EACF,EAAC,SAAS,EAAE,IAAI,EAAC,CACpB,CAAC;gBAEF,IAAI,SAAS,EAAE;oBACX,UAAU,CAAC,oBAAoB,CAAC;wBAC5B,eAAe,EAAE,kCAAuB,CAAC,KAAK;wBAC9C,UAAU,EAAE,IAAI;wBAChB,YAAY,EAAE,SAAS;qBAC1B,CAAC,CAAC;iBACN;gBAED,IAAI,UAAU,EAAE;oBACZ,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;iBACxC;gBAED,IAAI,OAAO,EAAE;oBACT,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;iBAC7C;gBAEM,qBAAM,UAAU,CAAC,IAAI,EAAE,EAAA;oBAA9B,sBAAO,SAAuB,EAAC;;;KAClC,CAAC;AA9BW,QAAA,WAAW,eA8BtB","sourcesContent":["import {\n Project,\n StatementedNodeStructure,\n VariableDeclarationKind,\n VariableDeclarationStructure,\n OptionalKind,\n InterfaceDeclarationStructure,\n ExportDeclarationStructure,\n} from 'ts-morph';\n\nconst defaultPathToTs = __dirname + '/client/';\n\ninterface WriteFileProps extends StatementedNodeStructure {\n filename: string;\n variables?: OptionalKind<VariableDeclarationStructure>[];\n interfaces?: OptionalKind<InterfaceDeclarationStructure>[];\n exports?: OptionalKind<ExportDeclarationStructure>[];\n pathToClient?: string;\n}\n\nexport const writeTsFile = async (props: WriteFileProps): Promise<any> => {\n const {filename, variables, interfaces, exports, pathToClient = defaultPathToTs} = props;\n const project = new Project({\n tsConfigFilePath: `${pathToClient}/tsconfig.json`,\n skipAddingFilesFromTsConfig: true,\n });\n\n const sourceFile = project.createSourceFile(\n `${pathToClient}/${filename}.ts`,\n {},\n {overwrite: true}\n );\n\n if (variables) {\n sourceFile.addVariableStatement({\n declarationKind: VariableDeclarationKind.Const, // defaults to \"let\"\n isExported: true,\n declarations: variables,\n });\n }\n\n if (interfaces) {\n sourceFile.addInterfaces(interfaces);\n }\n\n if (exports) {\n sourceFile.addExportDeclarations(exports);\n }\n\n return await sourceFile.save();\n};\n"]}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -58,6 +58,7 @@ __exportStar(require("./connection"), exports);
|
|
|
58
58
|
__exportStar(require("./query"), exports);
|
|
59
59
|
__exportStar(require("./search"), exports);
|
|
60
60
|
__exportStar(require("./pagination"), exports);
|
|
61
|
+
__exportStar(require("./shared"), exports);
|
|
61
62
|
/**
|
|
62
63
|
* Main function to start CouchSet
|
|
63
64
|
* @param @interface CouchsetArgs
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA+D;AAE/D,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA+D;AAE/D,+CAA6B;AAC7B,6CAA2B;AAC3B,0CAAwB;AACxB,+CAA6B;AAC7B,0CAAwB;AACxB,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB;AAEzB;;;GAGG;AACI,IAAM,QAAQ,GAAG,UAAO,IAAkB;;;;;gBACvC,KAAK,GAAG,oBAAmB,CAAC,QAAQ,CAAC;gBAC3C,qBAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;;gBAAtB,SAAsB,CAAC;gBACvB,sBAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;;;KAChC,CAAC;AAJW,QAAA,QAAQ,YAInB;AAEF,kBAAe,gBAAQ,CAAC","sourcesContent":["import CouchbaseConnection, {CouchsetArgs} from './connection';\n\nexport * from 'type-graphql';\nexport * from './automate';\nexport * from './model';\nexport * from './connection';\nexport * from './query';\nexport * from './search';\nexport * from './pagination';\nexport * from './shared';\n\n/**\n * Main function to start CouchSet\n * @param @interface CouchsetArgs\n */\nexport const couchset = async (args: CouchsetArgs): Promise<boolean> => {\n const couch = CouchbaseConnection.Instance;\n await couch.init(args);\n return Promise.resolve(true);\n};\n\nexport default couchset;\n"]}
|
package/dist/model/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Collection } from 'couchbase';
|
|
2
|
-
import CouchbaseConnection from '../connection';
|
|
3
|
-
import { SchemaTypes } from '../utils';
|
|
4
|
-
import { CustomQueryPagination } from '../search';
|
|
1
|
+
import { Collection, GetOptions, RemoveOptions, ReplaceOptions, UpsertOptions } from 'couchbase';
|
|
5
2
|
import { AutomaticMethodOptions, AutomaticOutput } from '../automate';
|
|
3
|
+
import { CustomQueryPagination } from '../search';
|
|
4
|
+
import { SchemaTypes } from '../utils';
|
|
5
|
+
import CouchbaseConnection from '../connection';
|
|
6
6
|
export interface AutoModelFields {
|
|
7
7
|
id: string;
|
|
8
8
|
createdAt: Date;
|
|
@@ -50,22 +50,22 @@ export declare class Model {
|
|
|
50
50
|
/**
|
|
51
51
|
* create
|
|
52
52
|
*/
|
|
53
|
-
create<T>(data: T): Promise<T & AutoModelFields>;
|
|
53
|
+
create<T>(data: T, options?: UpsertOptions): Promise<T & AutoModelFields>;
|
|
54
54
|
/**
|
|
55
55
|
* findById
|
|
56
56
|
*/
|
|
57
|
-
findById(id: string): Promise<any & AutoModelFields>;
|
|
57
|
+
findById(id: string, options?: GetOptions): Promise<any & AutoModelFields>;
|
|
58
58
|
/**
|
|
59
59
|
* update
|
|
60
60
|
*/
|
|
61
|
-
updateById<T>(id: string, data: T): Promise<T>;
|
|
61
|
+
updateById<T>(id: string, data: T, options?: ReplaceOptions): Promise<T>;
|
|
62
62
|
/**
|
|
63
63
|
* save
|
|
64
64
|
*/
|
|
65
65
|
save<T>(data: T & {
|
|
66
66
|
id: string;
|
|
67
|
-
}): Promise<T>;
|
|
68
|
-
delete(id: string): Promise<boolean>;
|
|
67
|
+
}, options?: ReplaceOptions): Promise<T>;
|
|
68
|
+
delete(id: string, options?: RemoveOptions): Promise<boolean>;
|
|
69
69
|
/**
|
|
70
70
|
* Pagination
|
|
71
71
|
*
|
package/dist/model/index.js
CHANGED
|
@@ -51,12 +51,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
51
51
|
};
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.Model = void 0;
|
|
54
|
+
var automate_1 = require("../automate");
|
|
55
|
+
var search_1 = require("../search");
|
|
56
|
+
var utils_1 = require("../utils");
|
|
54
57
|
var connection_1 = __importDefault(require("../connection"));
|
|
55
58
|
var pagination_1 = require("../pagination");
|
|
56
59
|
var uuid_1 = require("../uuid");
|
|
57
|
-
var utils_1 = require("../utils");
|
|
58
|
-
var search_1 = require("../search");
|
|
59
|
-
var automate_1 = require("../automate");
|
|
60
60
|
var Model = /** @class */ (function () {
|
|
61
61
|
function Model(name, options) {
|
|
62
62
|
this.scope = '_default';
|
|
@@ -116,7 +116,7 @@ var Model = /** @class */ (function () {
|
|
|
116
116
|
/**
|
|
117
117
|
* create
|
|
118
118
|
*/
|
|
119
|
-
Model.prototype.create = function (data) {
|
|
119
|
+
Model.prototype.create = function (data, options) {
|
|
120
120
|
return __awaiter(this, void 0, void 0, function () {
|
|
121
121
|
var id, createdData, error_1;
|
|
122
122
|
return __generator(this, function (_a) {
|
|
@@ -128,7 +128,7 @@ var Model = /** @class */ (function () {
|
|
|
128
128
|
_a.label = 1;
|
|
129
129
|
case 1:
|
|
130
130
|
_a.trys.push([1, 3, , 4]);
|
|
131
|
-
return [4 /*yield*/, this.collection.upsert(createdData.id, createdData)];
|
|
131
|
+
return [4 /*yield*/, this.collection.upsert(createdData.id, createdData, options)];
|
|
132
132
|
case 2:
|
|
133
133
|
_a.sent();
|
|
134
134
|
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, createdData)];
|
|
@@ -143,7 +143,7 @@ var Model = /** @class */ (function () {
|
|
|
143
143
|
/**
|
|
144
144
|
* findById
|
|
145
145
|
*/
|
|
146
|
-
Model.prototype.findById = function (id) {
|
|
146
|
+
Model.prototype.findById = function (id, options) {
|
|
147
147
|
return __awaiter(this, void 0, void 0, function () {
|
|
148
148
|
var data, error_2;
|
|
149
149
|
return __generator(this, function (_a) {
|
|
@@ -153,7 +153,7 @@ var Model = /** @class */ (function () {
|
|
|
153
153
|
_a.label = 1;
|
|
154
154
|
case 1:
|
|
155
155
|
_a.trys.push([1, 3, , 4]);
|
|
156
|
-
return [4 /*yield*/, this.collection.get(id)];
|
|
156
|
+
return [4 /*yield*/, this.collection.get(id, options)];
|
|
157
157
|
case 2:
|
|
158
158
|
data = _a.sent();
|
|
159
159
|
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, data.content)];
|
|
@@ -168,7 +168,7 @@ var Model = /** @class */ (function () {
|
|
|
168
168
|
/**
|
|
169
169
|
* update
|
|
170
170
|
*/
|
|
171
|
-
Model.prototype.updateById = function (id, data) {
|
|
171
|
+
Model.prototype.updateById = function (id, data, options) {
|
|
172
172
|
return __awaiter(this, void 0, void 0, function () {
|
|
173
173
|
var updatedDocument, error_3;
|
|
174
174
|
return __generator(this, function (_a) {
|
|
@@ -179,7 +179,7 @@ var Model = /** @class */ (function () {
|
|
|
179
179
|
_a.label = 1;
|
|
180
180
|
case 1:
|
|
181
181
|
_a.trys.push([1, 3, , 4]);
|
|
182
|
-
return [4 /*yield*/, this.collection.replace(id, updatedDocument)];
|
|
182
|
+
return [4 /*yield*/, this.collection.replace(id, updatedDocument, options)];
|
|
183
183
|
case 2:
|
|
184
184
|
_a.sent();
|
|
185
185
|
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, updatedDocument)];
|
|
@@ -194,7 +194,7 @@ var Model = /** @class */ (function () {
|
|
|
194
194
|
/**
|
|
195
195
|
* save
|
|
196
196
|
*/
|
|
197
|
-
Model.prototype.save = function (data) {
|
|
197
|
+
Model.prototype.save = function (data, options) {
|
|
198
198
|
return __awaiter(this, void 0, void 0, function () {
|
|
199
199
|
var id, updatedDocument, error_4;
|
|
200
200
|
return __generator(this, function (_a) {
|
|
@@ -209,7 +209,7 @@ var Model = /** @class */ (function () {
|
|
|
209
209
|
if (!id) {
|
|
210
210
|
throw new Error('document must have id');
|
|
211
211
|
}
|
|
212
|
-
return [4 /*yield*/, this.collection.replace(id, updatedDocument)];
|
|
212
|
+
return [4 /*yield*/, this.collection.replace(id, updatedDocument, options)];
|
|
213
213
|
case 2:
|
|
214
214
|
_a.sent();
|
|
215
215
|
return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, updatedDocument)];
|
|
@@ -222,7 +222,7 @@ var Model = /** @class */ (function () {
|
|
|
222
222
|
});
|
|
223
223
|
});
|
|
224
224
|
};
|
|
225
|
-
Model.prototype.delete = function (id) {
|
|
225
|
+
Model.prototype.delete = function (id, options) {
|
|
226
226
|
return __awaiter(this, void 0, void 0, function () {
|
|
227
227
|
var error_5;
|
|
228
228
|
return __generator(this, function (_a) {
|
|
@@ -232,7 +232,7 @@ var Model = /** @class */ (function () {
|
|
|
232
232
|
_a.label = 1;
|
|
233
233
|
case 1:
|
|
234
234
|
_a.trys.push([1, 3, , 4]);
|
|
235
|
-
return [4 /*yield*/, this.collection.remove(id)];
|
|
235
|
+
return [4 /*yield*/, this.collection.remove(id, options)];
|
|
236
236
|
case 2:
|
|
237
237
|
_a.sent();
|
|
238
238
|
return [2 /*return*/, true];
|