couchset 0.0.15 → 0.0.16

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.
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/automate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B;AAC9B,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB","sourcesContent":["export * from './middlewares';\nexport * from './model';\nexport * from './morpheus';\nexport * from './writer';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/automate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB","sourcesContent":["export * from './middlewares';\nexport * from './model';\nexport * from './morpheus';\nexport * from './writer';\n"]}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,oDAAkC","sourcesContent":["export * from './isAuth';\nexport * from './blankMiddleware';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automate/middlewares/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,oDAAkC","sourcesContent":["export * from './isAuth';\nexport * from './blankMiddleware';\n"]}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,mDAAuC;AAUvC;;;GAGG;AACH;IAgBI;QAAA,iBAAwB;QAbxB,WAAM,GAAW,IAAI,CAAC;QACtB,YAAO,GAAY,IAAI,CAAC;QAExB,OAAO;QACP,qBAAgB,GAAW,IAAI,CAAC;QAChC,eAAU,GAAW,IAAI,CAAC;QAC1B,aAAQ,GAAW,IAAI,CAAC;QACxB,aAAQ,GAAW,IAAI,CAAC;QAQxB;;WAEG;QACI,SAAI,GAAG,UAAO,IAAkB;;;;;wBAC5B,gBAAgB,GAAgD,IAAI,iBAApD,EAAE,QAAQ,GAAsC,IAAI,SAA1C,EAAE,QAAQ,GAA4B,IAAI,SAAhC,EAAE,KAA0B,IAAI,WAAR,EAAtB,UAAU,mBAAG,SAAS,KAAA,CAAS;wBAE5E,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;wBACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;wBAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBAET,qBAAM,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE;gCACtD,QAAQ,UAAA;gCACR,QAAQ,UAAA;6BACX,CAAC,EAAA;;wBAHI,OAAO,GAAG,SAGd;wBAEF,IAAI,CAAC,OAAO,GAAG,OAAc,CAAC;wBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAE9C,sBAAO,IAAI,EAAC;;;aACf,CAAC;QAEF;;WAEG;QACI,kBAAa,GAAG;YACnB,OAAO,KAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC3C,CAAC,CAAC;QAEK,eAAU,GAAG;YAChB,OAAO,KAAI,CAAC,OAAO,CAAC;QACxB,CAAC,CAAC;QAEK,cAAS,GAAG;YACf,OAAO,KAAI,CAAC,UAAU,CAAC;QAC3B,CAAC,CAAC;QAEF;;WAEG;QACI,aAAQ,GAAG;;gBACd,sBAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAC;;aAC/B,CAAC;IA5CqB,CAAC;IAJxB,sBAAkB,+BAAQ;aAA1B;YACI,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;;;OAAA;IA+CL,0BAAC;AAAD,CAAC,AA7DD,IA6DC;AA7DY,kDAAmB;AA+DhC,kBAAe,mBAAmB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport * as couchbase from 'couchbase';\nimport {Collection, Cluster, Bucket} from 'couchbase';\n\nexport interface CouchsetArgs {\n connectionString: string;\n bucketName: string;\n username: string;\n password: string;\n}\n\n/**\n * CouchbaseConnection class\n * Only one CouchbaseConnection can exist that's why it's a singleton\n */\nexport class CouchbaseConnection implements CouchsetArgs {\n private static _instance: CouchbaseConnection;\n\n bucket: Bucket = null;\n cluster: Cluster = null;\n\n // Args\n connectionString: string = null;\n bucketName: string = null;\n username: string = null;\n password: string = null;\n\n public static get Instance(): CouchbaseConnection {\n return this._instance || (this._instance = new this());\n }\n\n private constructor() {}\n\n /**\n * start\n */\n public init = async (args: CouchsetArgs): Promise<CouchbaseConnection> => {\n const {connectionString, password, username, bucketName = 'default'} = args;\n\n this.connectionString = connectionString;\n this.bucketName = bucketName;\n this.username = username;\n this.password = password;\n\n const cluster = await couchbase.connect(connectionString, {\n username,\n password,\n });\n\n this.cluster = cluster as any;\n this.bucket = this.cluster.bucket(bucketName);\n\n return this;\n };\n\n /**\n * getCollection\n */\n public getCollection = (): Collection => {\n return this.bucket.defaultCollection();\n };\n\n public getCluster = (): Cluster => {\n return this.cluster;\n };\n\n public getBucket = (): string => {\n return this.bucketName;\n };\n\n /**\n * shutdown cluster\n */\n public shutdown = async (): Promise<void> => {\n return this.cluster.close();\n };\n}\n\nexport default CouchbaseConnection;\n"]}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,mDAAuC;AAUvC;;;GAGG;AACH;IAgBI;QAAA,iBAAwB;QAbxB,WAAM,GAAW,IAAI,CAAC;QACtB,YAAO,GAAY,IAAI,CAAC;QAExB,OAAO;QACP,qBAAgB,GAAW,IAAI,CAAC;QAChC,eAAU,GAAW,IAAI,CAAC;QAC1B,aAAQ,GAAW,IAAI,CAAC;QACxB,aAAQ,GAAW,IAAI,CAAC;QAQxB;;WAEG;QACI,SAAI,GAAG,UAAO,IAAkB;;;;;wBAC5B,gBAAgB,GAAgD,IAAI,iBAApD,EAAE,QAAQ,GAAsC,IAAI,SAA1C,EAAE,QAAQ,GAA4B,IAAI,SAAhC,EAAE,KAA0B,IAAI,WAAR,EAAtB,UAAU,mBAAG,SAAS,KAAA,CAAS;wBAE5E,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;wBACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;wBAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBAET,qBAAM,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE;gCACtD,QAAQ,UAAA;gCACR,QAAQ,UAAA;6BACX,CAAC,EAAA;;wBAHI,OAAO,GAAG,SAGd;wBAEF,IAAI,CAAC,OAAO,GAAG,OAAc,CAAC;wBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAE9C,sBAAO,IAAI,EAAC;;;aACf,CAAC;QAEF;;WAEG;QACI,kBAAa,GAAG;YACnB,OAAO,KAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC3C,CAAC,CAAC;QAEK,eAAU,GAAG;YAChB,OAAO,KAAI,CAAC,OAAO,CAAC;QACxB,CAAC,CAAC;QAEK,cAAS,GAAG;YACf,OAAO,KAAI,CAAC,UAAU,CAAC;QAC3B,CAAC,CAAC;QAEF;;WAEG;QACI,aAAQ,GAAG;;gBACd,sBAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAC;;aAC/B,CAAC;IA5CqB,CAAC;IAJxB,sBAAkB,+BAAQ;aAA1B;YACI,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;;;OAAA;IA+CL,0BAAC;AAAD,CAAC,AA7DD,IA6DC;AA7DY,kDAAmB;AA+DhC,kBAAe,mBAAmB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport * as couchbase from 'couchbase';\nimport {Collection, Cluster, Bucket} from 'couchbase';\n\nexport interface CouchsetArgs {\n connectionString: string;\n bucketName: string;\n username: string;\n password: string;\n}\n\n/**\n * CouchbaseConnection class\n * Only one CouchbaseConnection can exist that's why it's a singleton\n */\nexport class CouchbaseConnection implements CouchsetArgs {\n private static _instance: CouchbaseConnection;\n\n bucket: Bucket = null;\n cluster: Cluster = null;\n\n // Args\n connectionString: string = null;\n bucketName: string = null;\n username: string = null;\n password: string = null;\n\n public static get Instance(): CouchbaseConnection {\n return this._instance || (this._instance = new this());\n }\n\n private constructor() {}\n\n /**\n * start\n */\n public init = async (args: CouchsetArgs): Promise<CouchbaseConnection> => {\n const {connectionString, password, username, bucketName = 'default'} = args;\n\n this.connectionString = connectionString;\n this.bucketName = bucketName;\n this.username = username;\n this.password = password;\n\n const cluster = await couchbase.connect(connectionString, {\n username,\n password,\n });\n\n this.cluster = cluster as any;\n this.bucket = this.cluster.bucket(bucketName);\n\n return this;\n };\n\n /**\n * getCollection\n */\n public getCollection = (): Collection => {\n return this.bucket.defaultCollection();\n };\n\n public getCluster = (): Cluster => {\n return this.cluster;\n };\n\n public getBucket = (): string => {\n return this.bucketName;\n };\n\n /**\n * shutdown cluster\n */\n public shutdown = async (): Promise<void> => {\n return this.cluster.close();\n };\n}\n\nexport default CouchbaseConnection;\n"]}
package/dist/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
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;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
+ {"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"]}
@@ -11,7 +11,10 @@ export interface AutoModelFields {
11
11
  _type: string;
12
12
  _scope: string;
13
13
  }
14
- interface ModalOptions {
14
+ export interface UpdateOptions extends ReplaceOptions {
15
+ silent?: boolean;
16
+ }
17
+ export interface ModalOptions {
15
18
  scope?: string;
16
19
  schema?: Record<string, SchemaTypes>;
17
20
  graphqlType?: any;
@@ -58,13 +61,13 @@ export declare class Model {
58
61
  /**
59
62
  * update
60
63
  */
61
- updateById<T>(id: string, data: T, options?: ReplaceOptions): Promise<T>;
64
+ updateById<T>(id: string, data: T, opt?: UpdateOptions): Promise<T>;
62
65
  /**
63
66
  * save
64
67
  */
65
68
  save<T>(data: T & {
66
69
  id: string;
67
- }, options?: ReplaceOptions): Promise<T>;
70
+ }, opt?: UpdateOptions): Promise<T>;
68
71
  delete(id: string, options?: RemoveOptions): Promise<boolean>;
69
72
  /**
70
73
  * Pagination
@@ -46,6 +46,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
47
  }
48
48
  };
49
+ var __rest = (this && this.__rest) || function (s, e) {
50
+ var t = {};
51
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
+ t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
+ t[p[i]] = s[p[i]];
57
+ }
58
+ return t;
59
+ };
49
60
  var __importDefault = (this && this.__importDefault) || function (mod) {
50
61
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
62
  };
@@ -168,23 +179,27 @@ var Model = /** @class */ (function () {
168
179
  /**
169
180
  * update
170
181
  */
171
- Model.prototype.updateById = function (id, data, options) {
182
+ Model.prototype.updateById = function (id, data, opt) {
172
183
  return __awaiter(this, void 0, void 0, function () {
173
- var updatedDocument, error_3;
174
- return __generator(this, function (_a) {
175
- switch (_a.label) {
184
+ var _a, silent, options, updatedDocument, error_3;
185
+ return __generator(this, function (_b) {
186
+ switch (_b.label) {
176
187
  case 0:
177
188
  this.fresh();
178
- updatedDocument = __assign(__assign({}, data), { id: id, updatedAt: new Date(), _type: this.collectionName, _scope: this.scope });
179
- _a.label = 1;
189
+ _a = opt.silent, silent = _a === void 0 ? false : _a, options = __rest(opt, ["silent"]);
190
+ updatedDocument = __assign(__assign({}, data), { id: id, _type: this.collectionName, _scope: this.scope });
191
+ if (!silent) {
192
+ updatedDocument.updatedAt = new Date();
193
+ }
194
+ _b.label = 1;
180
195
  case 1:
181
- _a.trys.push([1, 3, , 4]);
196
+ _b.trys.push([1, 3, , 4]);
182
197
  return [4 /*yield*/, this.collection.replace(id, updatedDocument, options)];
183
198
  case 2:
184
- _a.sent();
199
+ _b.sent();
185
200
  return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, updatedDocument)];
186
201
  case 3:
187
- error_3 = _a.sent();
202
+ error_3 = _b.sent();
188
203
  throw error_3;
189
204
  case 4: return [2 /*return*/];
190
205
  }
@@ -194,27 +209,31 @@ var Model = /** @class */ (function () {
194
209
  /**
195
210
  * save
196
211
  */
197
- Model.prototype.save = function (data, options) {
212
+ Model.prototype.save = function (data, opt) {
198
213
  return __awaiter(this, void 0, void 0, function () {
199
- var id, updatedDocument, error_4;
200
- return __generator(this, function (_a) {
201
- switch (_a.label) {
214
+ var id, _a, silent, options, updatedDocument, error_4;
215
+ return __generator(this, function (_b) {
216
+ switch (_b.label) {
202
217
  case 0:
203
218
  this.fresh();
204
219
  id = data && data.id;
205
- updatedDocument = __assign(__assign({}, data), { id: id, updatedAt: new Date(), _type: this.collectionName, _scope: this.scope });
206
- _a.label = 1;
220
+ _a = opt.silent, silent = _a === void 0 ? false : _a, options = __rest(opt, ["silent"]);
221
+ updatedDocument = __assign(__assign({}, data), { id: id, _type: this.collectionName, _scope: this.scope });
222
+ if (!silent) {
223
+ updatedDocument.updatedAt = new Date();
224
+ }
225
+ _b.label = 1;
207
226
  case 1:
208
- _a.trys.push([1, 3, , 4]);
227
+ _b.trys.push([1, 3, , 4]);
209
228
  if (!id) {
210
229
  throw new Error('document must have id');
211
230
  }
212
231
  return [4 /*yield*/, this.collection.replace(id, updatedDocument, options)];
213
232
  case 2:
214
- _a.sent();
233
+ _b.sent();
215
234
  return [2 /*return*/, (0, utils_1.parseSchema)(this.schema, updatedDocument)];
216
235
  case 3:
217
- error_4 = _a.sent();
236
+ error_4 = _b.sent();
218
237
  console.error(error_4);
219
238
  throw error_4;
220
239
  case 4: return [2 /*return*/];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {Collection, GetOptions, RemoveOptions, ReplaceOptions, UpsertOptions} from 'couchbase';\n\nimport {AutomaticMethodOptions, AutomaticOutput, automateImplementation} from '../automate';\nimport {CustomQuery, CustomQueryPagination} from '../search';\nimport {SchemaTypes, parseSchema} from '../utils';\nimport CouchbaseConnection from '../connection';\nimport {Pagination} from '../pagination';\nimport {generateUUID} from '../uuid';\n\nexport interface AutoModelFields {\n id: string;\n createdAt: Date;\n updatedAt?: Date;\n deleted?: Date;\n _type: string; // type for models/collections\n _scope: string; // scope for collections\n}\n\ninterface ModalOptions {\n scope?: string;\n schema?: Record<string, SchemaTypes>;\n graphqlType?: any;\n}\n\nexport class Model {\n collection: Collection;\n collectionName: string;\n scope = '_default';\n schema: Record<string, SchemaTypes> = {\n createdAt: 'date',\n updatedAt: 'date',\n };\n graphqlType = null;\n\n constructor(name: string, options?: ModalOptions) {\n // this.collection = CouchbaseConnection.Instance.getCollection();\n this.collectionName = name;\n if (options) {\n this.graphqlType = (options && options.graphqlType) || null;\n this.scope = (options && options.scope) || '_default';\n this.schema = {\n ...((options && options.schema) || {}),\n createdAt: 'date',\n updatedAt: 'date',\n };\n }\n }\n\n /**\n * Set setGraphqlType\n * setGraphqlType\n */\n public setGraphqlType(gqlType: any): Model {\n this.graphqlType = gqlType;\n return this;\n }\n\n /**\n * Refresh and get default collection from CouchbaseConnection\n * Because CouchbaseConnection is a singleton, sometimes it might be undefined depending when model was created\n * So we have to call it from all model methods\n * to avoid error `Cannot read property 'defaultCollection' of null`\n */\n public fresh(): void {\n // if couchbase connection has been init\n if (CouchbaseConnection.Instance.bucketName) {\n this.collection = CouchbaseConnection.Instance.getCollection();\n }\n }\n\n /** Get this collection\n * getCollection\n */\n public getBucketName(): string {\n return CouchbaseConnection.Instance?.getBucket();\n }\n\n /** Get this collection\n * getCollection\n */\n public couchbaseConnection(): CouchbaseConnection {\n return CouchbaseConnection.Instance;\n }\n\n /** Get this collection\n * getCollection\n */\n public getCollection(): Collection {\n this.fresh();\n return this.collection;\n }\n\n /**\n * create\n */\n public async create<T>(data: T, options?: UpsertOptions): Promise<T & AutoModelFields> {\n this.fresh();\n const id = generateUUID();\n const createdData = {\n id, // let id be override\n ...data,\n createdAt: new Date(),\n updatedAt: new Date(), // same as created at\n _type: this.collectionName,\n _scope: this.scope,\n };\n\n try {\n await this.collection.upsert(createdData.id, createdData, options);\n return parseSchema(this.schema, createdData);\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * findById\n */\n public async findById(id: string, options?: GetOptions): Promise<any & AutoModelFields> {\n this.fresh();\n try {\n const data = await this.collection.get(id, options);\n return parseSchema(this.schema, data.content);\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * update\n */\n public async updateById<T>(id: string, data: T, options?: ReplaceOptions): Promise<T> {\n this.fresh();\n const updatedDocument = {\n ...data,\n id,\n updatedAt: new Date(),\n _type: this.collectionName, // type and scope must be defined\n _scope: this.scope,\n };\n\n try {\n await this.collection.replace(id, updatedDocument, options);\n return parseSchema(this.schema, updatedDocument);\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * save\n */\n public async save<T>(data: T & {id: string}, options?: ReplaceOptions): Promise<T> {\n this.fresh();\n\n const id = data && data.id;\n\n const updatedDocument = {\n ...data,\n id, // id's must match\n updatedAt: new Date(),\n _type: this.collectionName, // type and scope must be defined\n _scope: this.scope,\n };\n\n try {\n if (!id) {\n throw new Error('document must have id');\n }\n await this.collection.replace(id, updatedDocument, options);\n return parseSchema(this.schema, updatedDocument);\n } catch (error) {\n console.error(error);\n throw error;\n }\n }\n\n public async delete(id: string, options?: RemoveOptions): Promise<boolean> {\n this.fresh();\n try {\n await this.collection.remove(id, options);\n return true;\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Pagination\n * \n select = ['id', 'createdAt']\n where = {\n where: { owner: { $eq: \"stoqey\" }, _type: { $eq: \"Trade\" } },\n },\n page = 0,\n limit = 10,\n orderBy = { createdAt: \"DESC\" },\n * @param args PaginationArgs\n */\n public async pagination({\n select,\n where,\n orderBy,\n limit,\n page,\n customQuery = {},\n }: {\n select?: any[] | string;\n where?: any;\n orderBy?: any;\n limit?: number;\n page?: number;\n customQuery?: any; // can be $and or any other valid quries\n }): Promise<any[]> {\n this.fresh(); // refresh\n // Where begins here\n let whereEx = {_type: {$eq: this.collectionName}};\n\n if (where) {\n whereEx = {\n ...whereEx,\n ...where,\n };\n }\n\n const bucketName = CouchbaseConnection.Instance.bucketName;\n\n const rows = await Pagination({\n bucketName,\n select,\n where: {where: whereEx, ...customQuery},\n limit,\n page,\n orderBy,\n });\n\n return rows.map((r) => parseSchema(this.schema, r));\n }\n\n /**\n * Run a custom query with model parsing\n * @param { select, query }\n * @returns\n */\n public async customQuery<T>({\n params,\n limit,\n query,\n }: {\n params: any;\n limit: number;\n query: string;\n }): Promise<[T[], CustomQueryPagination]> {\n this.fresh(); // refresh\n // Where begins here\n\n const response = await CustomQuery<T>({\n limit,\n params,\n query,\n });\n\n return response;\n }\n\n public parse<T>(data: T): T {\n this.fresh(); // refresh\n return parseSchema(this.schema, data);\n }\n\n /**\n *\n * @param args AutomaticModelOptions\n * @returns\n */\n public automate(args?: Partial<AutomaticMethodOptions>): AutomaticOutput {\n this.fresh(); // refresh\n return automateImplementation(this.graphqlType, {model: this, ...args});\n }\n}\n\nexport default Model;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {Collection, GetOptions, RemoveOptions, ReplaceOptions, UpsertOptions} from 'couchbase';\n\nimport {AutomaticMethodOptions, AutomaticOutput, automateImplementation} from '../automate';\nimport {CustomQuery, CustomQueryPagination} from '../search';\nimport {SchemaTypes, parseSchema} from '../utils';\nimport CouchbaseConnection from '../connection';\nimport {Pagination} from '../pagination';\nimport {generateUUID} from '../uuid';\n\nexport interface AutoModelFields {\n id: string;\n createdAt: Date;\n updatedAt?: Date;\n deleted?: Date;\n _type: string; // type for models/collections\n _scope: string; // scope for collections\n}\n\nexport interface UpdateOptions extends ReplaceOptions {\n silent?: boolean; // whether to updatedAt;\n}\n\nexport interface ModalOptions {\n scope?: string;\n schema?: Record<string, SchemaTypes>;\n graphqlType?: any;\n}\n\nexport class Model {\n collection: Collection;\n collectionName: string;\n scope = '_default';\n schema: Record<string, SchemaTypes> = {\n createdAt: 'date',\n updatedAt: 'date',\n };\n graphqlType = null;\n\n constructor(name: string, options?: ModalOptions) {\n // this.collection = CouchbaseConnection.Instance.getCollection();\n this.collectionName = name;\n if (options) {\n this.graphqlType = (options && options.graphqlType) || null;\n this.scope = (options && options.scope) || '_default';\n this.schema = {\n ...((options && options.schema) || {}),\n createdAt: 'date',\n updatedAt: 'date',\n };\n }\n }\n\n /**\n * Set setGraphqlType\n * setGraphqlType\n */\n public setGraphqlType(gqlType: any): Model {\n this.graphqlType = gqlType;\n return this;\n }\n\n /**\n * Refresh and get default collection from CouchbaseConnection\n * Because CouchbaseConnection is a singleton, sometimes it might be undefined depending when model was created\n * So we have to call it from all model methods\n * to avoid error `Cannot read property 'defaultCollection' of null`\n */\n public fresh(): void {\n // if couchbase connection has been init\n if (CouchbaseConnection.Instance.bucketName) {\n this.collection = CouchbaseConnection.Instance.getCollection();\n }\n }\n\n /** Get this collection\n * getCollection\n */\n public getBucketName(): string {\n return CouchbaseConnection.Instance?.getBucket();\n }\n\n /** Get this collection\n * getCollection\n */\n public couchbaseConnection(): CouchbaseConnection {\n return CouchbaseConnection.Instance;\n }\n\n /** Get this collection\n * getCollection\n */\n public getCollection(): Collection {\n this.fresh();\n return this.collection;\n }\n\n /**\n * create\n */\n public async create<T>(data: T, options?: UpsertOptions): Promise<T & AutoModelFields> {\n this.fresh();\n const id = generateUUID();\n const createdData = {\n id, // let id be override\n ...data,\n createdAt: new Date(),\n updatedAt: new Date(), // same as created at\n _type: this.collectionName,\n _scope: this.scope,\n };\n\n try {\n await this.collection.upsert(createdData.id, createdData, options);\n return parseSchema(this.schema, createdData);\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * findById\n */\n public async findById(id: string, options?: GetOptions): Promise<any & AutoModelFields> {\n this.fresh();\n try {\n const data = await this.collection.get(id, options);\n return parseSchema(this.schema, data.content);\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * update\n */\n public async updateById<T>(id: string, data: T, opt?: UpdateOptions): Promise<T> {\n this.fresh();\n\n const {silent = false, ...options} = opt;\n\n const updatedDocument: any = {\n ...data,\n id,\n _type: this.collectionName, // type and scope must be defined\n _scope: this.scope,\n };\n\n if (!silent) {\n updatedDocument.updatedAt = new Date();\n }\n\n try {\n await this.collection.replace(id, updatedDocument, options);\n return parseSchema(this.schema, updatedDocument);\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * save\n */\n public async save<T>(data: T & {id: string}, opt?: UpdateOptions): Promise<T> {\n this.fresh();\n\n const id = data && data.id;\n\n const {silent = false, ...options} = opt;\n\n const updatedDocument: any = {\n ...data,\n id,\n _type: this.collectionName, // type and scope must be defined\n _scope: this.scope,\n };\n\n if (!silent) {\n updatedDocument.updatedAt = new Date();\n }\n\n try {\n if (!id) {\n throw new Error('document must have id');\n }\n await this.collection.replace(id, updatedDocument, options);\n return parseSchema(this.schema, updatedDocument);\n } catch (error) {\n console.error(error);\n throw error;\n }\n }\n\n public async delete(id: string, options?: RemoveOptions): Promise<boolean> {\n this.fresh();\n try {\n await this.collection.remove(id, options);\n return true;\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Pagination\n * \n select = ['id', 'createdAt']\n where = {\n where: { owner: { $eq: \"stoqey\" }, _type: { $eq: \"Trade\" } },\n },\n page = 0,\n limit = 10,\n orderBy = { createdAt: \"DESC\" },\n * @param args PaginationArgs\n */\n public async pagination({\n select,\n where,\n orderBy,\n limit,\n page,\n customQuery = {},\n }: {\n select?: any[] | string;\n where?: any;\n orderBy?: any;\n limit?: number;\n page?: number;\n customQuery?: any; // can be $and or any other valid quries\n }): Promise<any[]> {\n this.fresh(); // refresh\n // Where begins here\n let whereEx = {_type: {$eq: this.collectionName}};\n\n if (where) {\n whereEx = {\n ...whereEx,\n ...where,\n };\n }\n\n const bucketName = CouchbaseConnection.Instance.bucketName;\n\n const rows = await Pagination({\n bucketName,\n select,\n where: {where: whereEx, ...customQuery},\n limit,\n page,\n orderBy,\n });\n\n return rows.map((r) => parseSchema(this.schema, r));\n }\n\n /**\n * Run a custom query with model parsing\n * @param { select, query }\n * @returns\n */\n public async customQuery<T>({\n params,\n limit,\n query,\n }: {\n params: any;\n limit: number;\n query: string;\n }): Promise<[T[], CustomQueryPagination]> {\n this.fresh(); // refresh\n // Where begins here\n\n const response = await CustomQuery<T>({\n limit,\n params,\n query,\n });\n\n return response;\n }\n\n public parse<T>(data: T): T {\n this.fresh(); // refresh\n return parseSchema(this.schema, data);\n }\n\n /**\n *\n * @param args AutomaticModelOptions\n * @returns\n */\n public automate(args?: Partial<AutomaticMethodOptions>): AutomaticOutput {\n this.fresh(); // refresh\n return automateImplementation(this.graphqlType, {model: this, ...args});\n }\n}\n\nexport default Model;\n"]}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pagination/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6B","sourcesContent":["export * from './pagination';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pagination/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B","sourcesContent":["export * from './pagination';\n"]}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B","sourcesContent":["export * from './customQuery';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B","sourcesContent":["export * from './customQuery';\n"]}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B","sourcesContent":["export * from './ContextType';\nexport * from './common.model';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B","sourcesContent":["export * from './ContextType';\nexport * from './common.model';\n"]}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAC1B,wCAAsB","sourcesContent":["export * from './date';\nexport * from './text.utils';\nexport * from './utils.schema';\nexport * from './awaitTo';\nexport * from './log';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,+CAA6B;AAC7B,iDAA+B;AAC/B,4CAA0B;AAC1B,wCAAsB","sourcesContent":["export * from './date';\nexport * from './text.utils';\nexport * from './utils.schema';\nexport * from './awaitTo';\nexport * from './log';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "couchset",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "description": "Couchbase ORM & Automatic GraphQL API(Resolver/Queries)",
5
5
  "private": false,
6
6
  "main": "dist/index.js",