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 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 + "Fragment";
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,GAAM,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"]}
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"]}
@@ -32,6 +32,7 @@ export interface AutomaticMethodOptions {
32
32
  };
33
33
  }
34
34
  export interface AutomaticOutput {
35
+ resType: ResType;
35
36
  pagination: ClassType;
36
37
  resolver: ClassType;
37
38
  modelKeys: string[];
@@ -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 + "PaginationInput"),
130
- (0, type_graphql_1.ObjectType)(nameCamel + "Pagination")
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 + "Pagination"] = function (filter, sort, before, after, limitArg) {
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 + "Pagination -->", copyParams);
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 " + modelKeys.join(',') + "\n FROM `" + bucket + "` " + nameCamel + "\n WHERE " + nameCamel + "._type = \"" + _type + "\"\n LIMIT " + limit + ";\n ";
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 " + nameCamel, error_1);
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 + "Get"] = function (id, owner) {
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 + "Get -->", { id: id, owner: owner });
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 + " not found");
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 " + nameCamel, error_2);
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 + "Delete"] = function (id, owner) {
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 + "Delete -->", { id: id, owner: owner });
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 + " not deleted");
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 " + nameCamel, error_3);
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 + "Create"] = function (
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 + "Create -->", args);
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 " + nameCamel + " method ");
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 shared_1.ResType; }),
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 shared_1.ResType; }),
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 + "_FRAGMENT",
94
+ name: "".concat(nameSNAKE_CASE, "_FRAGMENT"),
95
95
  value: FRAGMENT,
96
- leadingTrivia: "/** " + nameSNAKE_CASE + " Fragment **/",
96
+ leadingTrivia: "/** ".concat(nameSNAKE_CASE, " Fragment **/"),
97
97
  },
98
98
  {
99
- name: nameSNAKE_CASE + "_CREATE",
99
+ name: "".concat(nameSNAKE_CASE, "_CREATE"),
100
100
  value: CREATE,
101
- leadingTrivia: "/** " + nameSNAKE_CASE + " Create Mutation **/",
101
+ leadingTrivia: "/** ".concat(nameSNAKE_CASE, " Create Mutation **/"),
102
102
  },
103
- { name: nameSNAKE_CASE + "_DELETE", value: DELETE },
104
- { name: nameSNAKE_CASE + "_GET", value: GET },
105
- { name: nameSNAKE_CASE + "_PAGE", value: PAGE },
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["" + keyQuery],
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: "./" + c,
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":"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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"]}
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 + "/tsconfig.json",
49
+ tsConfigFilePath: "".concat(pathToClient, "/tsconfig.json"),
50
50
  skipAddingFilesFromTsConfig: true,
51
51
  });
52
- sourceFile = project.createSourceFile(pathToClient + "/" + filename + ".ts", {}, { overwrite: true });
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,EAAK,YAAY,mBAAgB;oBACjD,2BAA2B,EAAE,IAAI;iBACpC,CAAC,CAAC;gBAEG,UAAU,GAAG,OAAO,CAAC,gBAAgB,CACpC,YAAY,SAAI,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"]}
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
@@ -6,6 +6,7 @@ export * from './connection';
6
6
  export * from './query';
7
7
  export * from './search';
8
8
  export * from './pagination';
9
+ export * from './shared';
9
10
  /**
10
11
  * Main function to start CouchSet
11
12
  * @param @interface CouchsetArgs
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;AAE7B;;;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';\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"]}
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"]}
@@ -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
  *
@@ -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];