@kravc/dos 2.0.0-alpha.2 → 2.0.0-alpha.3

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,4 +1,4 @@
1
- import type { QueryMap, MutationMap } from '../Context';
1
+ import Context, { type QueryMap, type MutationMap } from '../Context';
2
2
  import Document, { type IndexOptions, type IndexAllOptions } from './Document';
3
3
  type Item = {
4
4
  id: string;
@@ -24,11 +24,11 @@ declare class MemoryDocument<T> extends Document<T> {
24
24
  /** Implements interface to get a document. */
25
25
  static _read<T>(query: QueryMap): Promise<T>;
26
26
  /** Implements interface to save a document. */
27
- static _create<T>(attributes: T): Promise<void>;
27
+ static _create<T>(attributes: T, _context: Context): Promise<void>;
28
28
  /** Implements interface to update a document. */
29
- static _update<T>(query: QueryMap, mutation: MutationMap): Promise<T>;
29
+ static _update<T>(query: QueryMap, mutation: MutationMap, _context: Context): Promise<T>;
30
30
  /** Implements interface to delete a document. */
31
- static _delete<T>(query: QueryMap): Promise<void>;
31
+ static _delete<T>(query: QueryMap, _context: Context): Promise<void>;
32
32
  }
33
33
  export default MemoryDocument;
34
34
  //# sourceMappingURL=MemoryDocument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryDocument.d.ts","sourceRoot":"","sources":["../../src/Document/MemoryDocument.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,QAAQ,EAAE,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/E,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAIF,mEAAmE;AACnE,cAAM,cAAc,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IACzC,qDAAqD;IACrD,MAAM,KAAK,UAAU,yBAUpB;IAED,yBAAyB;WACZ,KAAK;IAMlB,wDAAwD;WAC3C,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QACtE,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,EAAE,CAAC;QACX,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IAiDF,iDAAiD;WACpC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;QAC5E,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,EAAE,CAAC;KACZ,CAAC;IASF,8CAA8C;WACjC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAYlD,+CAA+C;WAClC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,iDAAiD;WACpC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAW3E,iDAAiD;WACpC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAQxD;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"MemoryDocument.d.ts","sourceRoot":"","sources":["../../src/Document/MemoryDocument.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,EAAE,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,QAAQ,EAAE,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/E,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAOF,mEAAmE;AACnE,cAAM,cAAc,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IACzC,qDAAqD;IACrD,MAAM,KAAK,UAAU,yBAUpB;IAED,yBAAyB;WACZ,KAAK;IAMlB,wDAAwD;WAC3C,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QACtE,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,EAAE,CAAC;QACX,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IAiDF,iDAAiD;WACpC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;QAC5E,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,EAAE,CAAC;KACZ,CAAC;IASF,8CAA8C;WACjC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IAYlD,+CAA+C;WAElC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxE,iDAAiD;WAEpC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAW9F,iDAAiD;WAEpC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ3E;AAED,eAAe,cAAc,CAAC"}
@@ -8,6 +8,8 @@ const lodash_1 = require("lodash");
8
8
  const Operation_1 = require("../Operation");
9
9
  const Document_1 = __importDefault(require("./Document"));
10
10
  const _MEMORY_STORE = {};
11
+ const QUERY_ERROR_TEMPLATE = 'Query parameter "$PATH" is required';
12
+ const ATTRIBUTE_ERROR_TEMPLATE = 'Attribute "$PATH" is required';
11
13
  /** Example implementation of a document class stored in memory. */
12
14
  class MemoryDocument extends Document_1.default {
13
15
  /** Returns collection where documents are stored. */
@@ -67,7 +69,7 @@ class MemoryDocument extends Document_1.default {
67
69
  }
68
70
  /** Implements interface to get a document. */
69
71
  static async _read(query) {
70
- const idValue = (0, schema_1.got)(query, this.idKey, 'Query parameter "$PATH" is required');
72
+ const idValue = (0, schema_1.got)(query, this.idKey, QUERY_ERROR_TEMPLATE);
71
73
  const item = (0, lodash_1.get)(this.collection, idValue);
72
74
  if (!item) {
73
75
  throw new Operation_1.DocumentNotFoundError(this, query);
@@ -75,8 +77,9 @@ class MemoryDocument extends Document_1.default {
75
77
  return (0, lodash_1.cloneDeep)(item);
76
78
  }
77
79
  /** Implements interface to save a document. */
78
- static async _create(attributes) {
79
- const idValue = (0, schema_1.got)(attributes, this.idKey, 'Attribute "$PATH" is required');
80
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
81
+ static async _create(attributes, _context) {
82
+ const idValue = (0, schema_1.got)(attributes, this.idKey, ATTRIBUTE_ERROR_TEMPLATE);
80
83
  const item = (0, lodash_1.get)(this.collection, idValue);
81
84
  if (item) {
82
85
  throw new Operation_1.DocumentExistsError(this, attributes);
@@ -84,16 +87,18 @@ class MemoryDocument extends Document_1.default {
84
87
  (0, lodash_1.set)(this.collection, idValue, attributes);
85
88
  }
86
89
  /** Implements interface to update a document. */
87
- static async _update(query, mutation) {
88
- const idValue = (0, schema_1.got)(query, this.idKey, 'Query parameter "$PATH" is required');
90
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
91
+ static async _update(query, mutation, _context) {
92
+ const idValue = (0, schema_1.got)(query, this.idKey, QUERY_ERROR_TEMPLATE);
89
93
  const componentTitle = this.getTitle();
90
94
  const item = (0, schema_1.got)(this.collection, idValue, `${componentTitle} with ID "$PATH" is not found`);
91
95
  (0, lodash_1.set)(this.collection, idValue, { ...item, ...mutation });
92
96
  return (0, lodash_1.cloneDeep)({ ...item, ...mutation });
93
97
  }
94
98
  /** Implements interface to delete a document. */
95
- static async _delete(query) {
96
- const idValue = (0, schema_1.got)(query, this.idKey, 'Query parameter "$PATH" is required');
99
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
100
+ static async _delete(query, _context) {
101
+ const idValue = (0, schema_1.got)(query, this.idKey, QUERY_ERROR_TEMPLATE);
97
102
  const componentTitle = this.getTitle();
98
103
  (0, schema_1.got)(this.collection, idValue, `${componentTitle} with ID "$PATH" is not found`);
99
104
  (0, lodash_1.unset)(this.collection, idValue);
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryDocument.js","sourceRoot":"","sources":["../../src/Document/MemoryDocument.ts"],"names":[],"mappings":";;;;;AAAA,0CAAoC;AAEpC,mCAAmE;AACnE,4CAA0E;AAC1E,0DAA+E;AAO/E,MAAM,aAAa,GAAG,EAA0C,CAAC;AAEjE,mEAAmE;AACnE,MAAM,cAAkB,SAAQ,kBAAW;IACzC,qDAAqD;IACrD,MAAM,KAAK,UAAU;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAEjC,MAAM,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAEtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,yBAAyB;IACzB,MAAM,CAAC,KAAK,CAAC,KAAK;QAChB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC;QAEjC,OAAO,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAI,KAAe,EAAE,OAAqB;QAK3D,MAAM,EACJ,IAAI,EACJ,KAAK,EACL,iBAAiB,EAClB,GAAG,OAAO,CAAC;QAEZ,0CAA0C;QAC1C,MAAM,MAAM,GAAG,CAAC,IAAU,EAAE,EAAE,CAC5B,MAAM;aACH,IAAI,CAAC,KAAK,CAAC;aACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5C,MAAM,WAAW,GAAG,IAAI,KAAK,MAAM;YACjC,CAAC,CAAC,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;YACpE,CAAC,CAAC,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG,WAAW;aAC9B,MAAM,CAAC,MAAM,CAAC;aACd,GAAG,CAAC,kBAAS,CAAQ,CAAC;QAEzB,IAAI,sBAAsB,GAAG,CAAC,CAAC,CAAC;QAEhC,IAAI,iBAAiB,EAAE,CAAC;YACtB,sBAAsB,GAAG,aAAa;iBACnC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,YAAG,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,KAAK;YACjB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,EAAE,sBAAsB,GAAG,CAAC,GAAG,KAAK,CAAC;YACrF,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAE1E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAE3B,IAAI,gBAAgB,GAAG,IAAA,YAAG,EAAC,IAAA,aAAI,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpD,MAAM,kBAAkB,GAAG,IAAA,YAAG,EAAC,IAAA,aAAI,EAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC;QAEnF,IAAI,kBAAkB,EAAE,CAAC;YACvB,gBAAgB,GAAG,SAAS,CAAC;QAC/B,CAAC;QAED,OAAO;YACL,KAAK;YACL,KAAK;YACL,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAI,KAAe,EAAE,OAAwB;QAIjE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAI,KAAK,EAAE,OAAO,CAAC,CAAC;QAE9D,OAAO;YACL,KAAK;YACL,KAAK;SACN,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAI,KAAe;QACnC,MAAM,OAAO,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,qCAAqC,CAAW,CAAC;QAExF,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAM,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iCAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,+CAA+C;IAC/C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAI,UAAa;QACnC,MAAM,OAAO,GAAG,IAAA,YAAG,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,+BAA+B,CAAW,CAAC;QAEvF,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAM,CAAC;QAEhD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,+BAAmB,CAAC,IAAI,EAAE,UAAqC,CAAC,CAAC;QAC7E,CAAC;QAED,IAAA,YAAG,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,iDAAiD;IACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAI,KAAe,EAAE,QAAqB;QAC5D,MAAM,OAAO,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,qCAAqC,CAAW,CAAC;QAExF,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,+BAA+B,CAAM,CAAC;QAElG,IAAA,YAAG,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QAExD,OAAO,IAAA,kBAAS,EAAC,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,iDAAiD;IACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAI,KAAe;QACrC,MAAM,OAAO,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,qCAAqC,CAAW,CAAC;QAExF,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAA,YAAG,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,cAAc,+BAA+B,CAAM,CAAC;QAErF,IAAA,cAAK,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"MemoryDocument.js","sourceRoot":"","sources":["../../src/Document/MemoryDocument.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kravc/dos",
3
- "version": "2.0.0-alpha.2",
3
+ "version": "2.0.0-alpha.3",
4
4
  "description": "Convention-based, easy-to-use library for building API-driven serverless services.",
5
5
  "keywords": [
6
6
  "Service",
@@ -1,5 +1,5 @@
1
1
  import { got } from '@kravc/schema';
2
- import type { QueryMap, MutationMap } from '../Context';
2
+ import Context, { type QueryMap, type MutationMap } from '../Context';
3
3
  import { get, set, last, unset, cloneDeep, sortBy } from 'lodash';
4
4
  import { DocumentExistsError, DocumentNotFoundError } from '../Operation';
5
5
  import Document, { type IndexOptions, type IndexAllOptions } from './Document';
@@ -11,6 +11,9 @@ type Item = {
11
11
 
12
12
  const _MEMORY_STORE = {} as Record<string, Record<string, Item>>;
13
13
 
14
+ const QUERY_ERROR_TEMPLATE = 'Query parameter "$PATH" is required';
15
+ const ATTRIBUTE_ERROR_TEMPLATE = 'Attribute "$PATH" is required';
16
+
14
17
  /** Example implementation of a document class stored in memory. */
15
18
  class MemoryDocument<T> extends Document<T> {
16
19
  /** Returns collection where documents are stored. */
@@ -102,7 +105,7 @@ class MemoryDocument<T> extends Document<T> {
102
105
 
103
106
  /** Implements interface to get a document. */
104
107
  static async _read<T>(query: QueryMap): Promise<T> {
105
- const idValue = got(query, this.idKey, 'Query parameter "$PATH" is required') as string;
108
+ const idValue = got(query, this.idKey, QUERY_ERROR_TEMPLATE) as string;
106
109
 
107
110
  const item = get(this.collection, idValue) as T;
108
111
 
@@ -114,8 +117,9 @@ class MemoryDocument<T> extends Document<T> {
114
117
  }
115
118
 
116
119
  /** Implements interface to save a document. */
117
- static async _create<T>(attributes: T): Promise<void> {
118
- const idValue = got(attributes, this.idKey, 'Attribute "$PATH" is required') as string;
120
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
121
+ static async _create<T>(attributes: T, _context: Context): Promise<void> {
122
+ const idValue = got(attributes, this.idKey, ATTRIBUTE_ERROR_TEMPLATE) as string;
119
123
 
120
124
  const item = get(this.collection, idValue) as T;
121
125
 
@@ -127,8 +131,9 @@ class MemoryDocument<T> extends Document<T> {
127
131
  }
128
132
 
129
133
  /** Implements interface to update a document. */
130
- static async _update<T>(query: QueryMap, mutation: MutationMap): Promise<T> {
131
- const idValue = got(query, this.idKey, 'Query parameter "$PATH" is required') as string;
134
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
135
+ static async _update<T>(query: QueryMap, mutation: MutationMap, _context: Context): Promise<T> {
136
+ const idValue = got(query, this.idKey, QUERY_ERROR_TEMPLATE) as string;
132
137
 
133
138
  const componentTitle = this.getTitle();
134
139
  const item = got(this.collection, idValue, `${componentTitle} with ID "$PATH" is not found`) as T;
@@ -139,8 +144,9 @@ class MemoryDocument<T> extends Document<T> {
139
144
  }
140
145
 
141
146
  /** Implements interface to delete a document. */
142
- static async _delete<T>(query: QueryMap): Promise<void> {
143
- const idValue = got(query, this.idKey, 'Query parameter "$PATH" is required') as string;
147
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
148
+ static async _delete<T>(query: QueryMap, _context: Context): Promise<void> {
149
+ const idValue = got(query, this.idKey, QUERY_ERROR_TEMPLATE) as string;
144
150
 
145
151
  const componentTitle = this.getTitle();
146
152
  got(this.collection, idValue, `${componentTitle} with ID "$PATH" is not found`) as T;
@@ -181,7 +181,7 @@ describe('Service', () => {
181
181
  expect(body).toEqual({
182
182
  info: {
183
183
  title: '@kravc/dos',
184
- version: '2.0.0-alpha.2',
184
+ version: '2.0.0-alpha.3',
185
185
  },
186
186
  });
187
187
  });