@kwiz/node 1.0.19 → 1.0.21

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.
@@ -9,4 +9,4 @@ export declare function getWithCache<T>(worker: () => Promise<{
9
9
  /** must be unique for your call! function name, and parameters */
10
10
  cacheKey: string;
11
11
  forceRefresh?: boolean;
12
- }): Promise<any>;
12
+ }): Promise<T>;
@@ -3,6 +3,15 @@ import { IOdataFilterStatement } from "./odata";
3
3
  export declare function ConfigureTableStorage(config: {
4
4
  connectionString: string;
5
5
  }): void;
6
+ type operationResult<T = never> = {
7
+ success: true;
8
+ result?: T;
9
+ errorCode?: string;
10
+ } | {
11
+ success: false;
12
+ result?: T;
13
+ errorCode: string;
14
+ };
6
15
  type TableEntityBase = {
7
16
  /**
8
17
  * The PartitionKey property of the entity.
@@ -17,19 +26,19 @@ type TableEntityBase = {
17
26
  export type TableEntityType<DataType extends TableEntityBase> = {
18
27
  [P in keyof DataType]: string | boolean | Date | number;
19
28
  };
20
- export declare function findTable(tableName: string): Promise<boolean>;
29
+ export declare function findTable(tableName: string): Promise<operationResult>;
21
30
  export declare function listTables(): Promise<string[]>;
22
- export declare function ensureTable(tableName: string): Promise<boolean>;
23
- export declare function deleteTable(tableName: string): Promise<boolean>;
31
+ export declare function ensureTable(tableName: string): Promise<operationResult>;
32
+ export declare function deleteTable(tableName: string): Promise<operationResult>;
24
33
  export declare function getItems<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, options?: {
25
34
  filterStatment?: IOdataFilterStatement<DataType>;
26
35
  postFilter?: (item: DataType) => boolean;
27
- }): Promise<DataType[]>;
28
- export declare function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType): Promise<boolean>;
29
- export declare function deleteItem(tableName: string, partitionKey: string, rowKey: string): Promise<boolean>;
36
+ }): Promise<operationResult<DataType[]>>;
37
+ export declare function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType): Promise<operationResult>;
38
+ export declare function deleteItem(tableName: string, partitionKey: string, rowKey: string): Promise<operationResult>;
30
39
  export declare function upsertItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType, options?: {
31
40
  mode?: UpdateMode;
32
- }): Promise<boolean>;
41
+ }): Promise<operationResult>;
33
42
  export declare class Table<KeysType extends TableEntityBase, GetKeysParam, SavedRow extends KeysType & TableEntityType<SavedRow>, ParsedRow = SavedRow> {
34
43
  private tableName;
35
44
  private transform;
@@ -42,17 +51,25 @@ export declare class Table<KeysType extends TableEntityBase, GetKeysParam, Saved
42
51
  load: (saved: SavedRow, table: Table<KeysType, GetKeysParam, SavedRow, ParsedRow>) => ParsedRow;
43
52
  };
44
53
  });
45
- delete(): Promise<boolean>;
46
- ensure(): Promise<boolean>;
54
+ delete(): Promise<operationResult<never>>;
55
+ ensure(): Promise<operationResult<never>>;
47
56
  getItems(options?: {
48
57
  filterStatment?: IOdataFilterStatement<SavedRow>;
49
58
  postFilter?: (item: SavedRow) => boolean;
50
- }): Promise<ParsedRow[]>;
51
- addItem(item: ParsedRow): Promise<boolean>;
59
+ }): Promise<{
60
+ result: ParsedRow[];
61
+ success: true;
62
+ errorCode?: string;
63
+ } | {
64
+ result: ParsedRow[];
65
+ success: false;
66
+ errorCode: string;
67
+ }>;
68
+ addItem(item: ParsedRow): Promise<operationResult<never>>;
52
69
  upsertItem(item: ParsedRow, options?: {
53
70
  mode?: UpdateMode;
54
- }): Promise<boolean>;
55
- deleteItemByKey(param: GetKeysParam): Promise<boolean>;
56
- deleteItem(item: KeysType): Promise<boolean>;
71
+ }): Promise<operationResult<never>>;
72
+ deleteItemByKey(param: GetKeysParam): Promise<operationResult<never>>;
73
+ deleteItem(item: KeysType): Promise<operationResult<never>>;
57
74
  }
58
75
  export {};
@@ -39,7 +39,7 @@ function findTable(tableName) {
39
39
  var _a, e_1, _b, _c;
40
40
  return __awaiter(this, void 0, void 0, function* () {
41
41
  const tableService = getTableService();
42
- let found = false;
42
+ let success = false;
43
43
  try {
44
44
  const tables = tableService.listTables({
45
45
  queryOptions: {
@@ -52,7 +52,7 @@ function findTable(tableName) {
52
52
  _c = tables_1_1.value;
53
53
  _d = false;
54
54
  const table = _c;
55
- found = true;
55
+ success = true;
56
56
  }
57
57
  }
58
58
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -66,7 +66,7 @@ function findTable(tableName) {
66
66
  catch (e) {
67
67
  //console.log(e);
68
68
  }
69
- return found;
69
+ return { success, errorCode: success ? undefined : "Not found" };
70
70
  });
71
71
  }
72
72
  exports.findTable = findTable;
@@ -123,19 +123,23 @@ function ensureTable(tableName) {
123
123
  return __awaiter(this, void 0, void 0, function* () {
124
124
  const table = getTableClient(tableName);
125
125
  let success = false;
126
+ let errorCode;
126
127
  try {
127
128
  yield table.createTable({
128
129
  onResponse: raw => {
129
130
  let error = isError(raw);
130
- success = error.isError !== true || error.message === "TableAlreadyExists";
131
- //if (error.isError) console.error(error.message);
131
+ success = error.isError !== true || error.errorCode === "TableAlreadyExists";
132
+ if (error.isError) {
133
+ console.error(error.errorCode);
134
+ errorCode = error.errorCode;
135
+ }
132
136
  }
133
137
  });
134
138
  }
135
139
  catch (e) {
136
140
  //console.error(e);
137
141
  }
138
- return success;
142
+ return { success, errorCode };
139
143
  });
140
144
  }
141
145
  exports.ensureTable = ensureTable;
@@ -143,19 +147,23 @@ function deleteTable(tableName) {
143
147
  return __awaiter(this, void 0, void 0, function* () {
144
148
  const table = getTableClient(tableName);
145
149
  let success = false;
150
+ let errorCode;
146
151
  try {
147
152
  yield table.deleteTable({
148
153
  onResponse: raw => {
149
154
  let error = isError(raw);
150
155
  success = error.isError !== true;
151
- //if (error.isError) console.log(error.message);
156
+ if (error.isError) {
157
+ console.error(error.errorCode);
158
+ errorCode = error.errorCode;
159
+ }
152
160
  }
153
161
  });
154
162
  }
155
163
  catch (e) {
156
164
  //console.log(e);
157
165
  }
158
- return success;
166
+ return { success, errorCode };
159
167
  });
160
168
  }
161
169
  exports.deleteTable = deleteTable;
@@ -164,6 +172,8 @@ function getItems(tableName, options) {
164
172
  var _a, e_3, _b, _c;
165
173
  return __awaiter(this, void 0, void 0, function* () {
166
174
  const table = getTableClient(tableName);
175
+ let success = true;
176
+ let errorCode;
167
177
  let result = [];
168
178
  try {
169
179
  let o;
@@ -199,8 +209,10 @@ function getItems(tableName, options) {
199
209
  }
200
210
  catch (e) {
201
211
  //console.log(e);
212
+ success = false;
213
+ errorCode = "Could not get items";
202
214
  }
203
- return result;
215
+ return { success, errorCode, result };
204
216
  });
205
217
  }
206
218
  exports.getItems = getItems;
@@ -208,12 +220,16 @@ function addItem(tableName, item) {
208
220
  return __awaiter(this, void 0, void 0, function* () {
209
221
  const table = getTableClient(tableName);
210
222
  let success = false;
223
+ let errorCode;
211
224
  try {
212
225
  let result = yield table.createEntity(item, {
213
226
  onResponse: raw => {
214
227
  let error = isError(raw);
215
228
  success = error.isError !== true;
216
- //if (error.isError) console.log(error.message);
229
+ if (error.isError) {
230
+ console.error(error.errorCode);
231
+ errorCode = error.errorCode;
232
+ }
217
233
  }
218
234
  });
219
235
  //console.log(result);
@@ -222,7 +238,7 @@ function addItem(tableName, item) {
222
238
  catch (e) {
223
239
  success = false;
224
240
  }
225
- return success;
241
+ return { success, errorCode };
226
242
  });
227
243
  }
228
244
  exports.addItem = addItem;
@@ -230,11 +246,17 @@ function deleteItem(tableName, partitionKey, rowKey) {
230
246
  return __awaiter(this, void 0, void 0, function* () {
231
247
  const table = getTableClient(tableName);
232
248
  let success = false;
249
+ let errorCode;
233
250
  try {
234
251
  let result = yield table.deleteEntity(partitionKey, rowKey, {
235
252
  onResponse: raw => {
236
253
  let error = isError(raw);
237
- success = error.isError !== true || error.message === "ResourceNotFound";
254
+ //error not found is still a success for delete action
255
+ success = error.isError !== true || error.errorCode === "ResourceNotFound";
256
+ if (error.isError) {
257
+ console.error(error.errorCode);
258
+ errorCode = error.errorCode;
259
+ }
238
260
  }
239
261
  });
240
262
  //console.log(result);
@@ -243,7 +265,7 @@ function deleteItem(tableName, partitionKey, rowKey) {
243
265
  catch (e) {
244
266
  //success = false;
245
267
  }
246
- return success;
268
+ return { success, errorCode };
247
269
  });
248
270
  }
249
271
  exports.deleteItem = deleteItem;
@@ -251,12 +273,16 @@ function upsertItem(tableName, item, options) {
251
273
  return __awaiter(this, void 0, void 0, function* () {
252
274
  const table = getTableClient(tableName);
253
275
  let success = false;
276
+ let errorCode;
254
277
  try {
255
278
  let result = yield table.upsertEntity(item, (options === null || options === void 0 ? void 0 : options.mode) || "Replace", {
256
279
  onResponse: raw => {
257
280
  let error = isError(raw);
258
281
  success = error.isError !== true;
259
- //if (error.isError) console.log(error.message);
282
+ if (error.isError) {
283
+ console.error(error.errorCode);
284
+ errorCode = error.errorCode;
285
+ }
260
286
  }
261
287
  });
262
288
  //console.log(result);
@@ -266,7 +292,7 @@ function upsertItem(tableName, item, options) {
266
292
  console.error(e);
267
293
  success = false;
268
294
  }
269
- return success;
295
+ return { success, errorCode };
270
296
  });
271
297
  }
272
298
  exports.upsertItem = upsertItem;
@@ -289,8 +315,8 @@ class Table {
289
315
  }
290
316
  getItems(options) {
291
317
  return __awaiter(this, void 0, void 0, function* () {
292
- let items = yield getItems(this.tableName, options);
293
- return items.map(i => this.transform.load(i, this));
318
+ let itemsResult = yield getItems(this.tableName, options);
319
+ return Object.assign(Object.assign({}, itemsResult), { result: itemsResult.result.map(i => this.transform.load(i, this)) });
294
320
  });
295
321
  }
296
322
  addItem(item) {
@@ -316,22 +342,22 @@ class Table {
316
342
  exports.Table = Table;
317
343
  function isError(raw) {
318
344
  let isError = false;
319
- let message = null;
345
+ let errorCode = null;
320
346
  //201 - table created successfully
321
347
  //204 - entity created successfully
322
348
  //409 - table/entity already exists
323
- //400 - table name not allowed
349
+ //400 - table name not allowed / Property value too large
324
350
  //404 - TableNotFound when adding item
325
351
  if (raw.status >= 400) {
326
352
  isError = true;
327
353
  let error = raw.parsedBody;
328
- message = error && error.odataError && !(0, common_1.isNullOrEmptyString)(error.odataError.code)
354
+ errorCode = error && error.odataError && !(0, common_1.isNullOrEmptyString)(error.odataError.code)
329
355
  ? error.odataError.code
330
356
  : `Unknown error`; //for some errors like table name too short, error code is empty
331
357
  }
332
358
  else {
333
359
  isError = false;
334
360
  }
335
- return { isError, message };
361
+ return { isError, errorCode };
336
362
  }
337
363
  //# sourceMappingURL=table-storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-storage.js","sourceRoot":"","sources":["../../src/storage/table-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-storage.js","sourceRoot":"","sources":["../../src/storage/table-storage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kwiz/node",
3
- "version": "1.0.19",
3
+ "version": "1.0.21",
4
4
  "description": "KWIZ utilities and helpers for node applications",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,7 +10,7 @@ export async function getWithCache<T>(worker: () => Promise<{ success: boolean;
10
10
  /** must be unique for your call! function name, and parameters */
11
11
  cacheKey: string;
12
12
  forceRefresh?: boolean;
13
- }) {
13
+ }): Promise<T> {
14
14
  const now = new Date();
15
15
  //purge old values
16
16
  Object.keys($$cache).forEach(key => {
@@ -31,6 +31,7 @@ interface IODataError {
31
31
  }
32
32
  }
33
33
  }
34
+ type operationResult<T = never> = { success: true; result?: T; errorCode?: string; } | { success: false; result?: T; errorCode: string; };
34
35
 
35
36
  type TableEntityBase = {
36
37
  /**
@@ -48,10 +49,10 @@ export type TableEntityType<DataType extends TableEntityBase> = {
48
49
  [P in keyof DataType]: string | boolean | Date | number;
49
50
  };
50
51
 
51
- export async function findTable(tableName: string) {
52
+ export async function findTable(tableName: string): Promise<operationResult> {
52
53
  const tableService = getTableService();
53
54
 
54
- let found = false;
55
+ let success = false;
55
56
  try {
56
57
  const tables = tableService.listTables({
57
58
  queryOptions: {
@@ -60,12 +61,12 @@ export async function findTable(tableName: string) {
60
61
  }
61
62
  });
62
63
  for await (const table of tables) {
63
- found = true;
64
+ success = true;
64
65
  }
65
66
  } catch (e) {
66
67
  //console.log(e);
67
68
  }
68
- return found;
69
+ return { success, errorCode: success ? undefined : "Not found" };
69
70
  }
70
71
 
71
72
  export async function listTables() {
@@ -104,48 +105,58 @@ export async function listTables() {
104
105
  // return success;
105
106
  // }
106
107
 
107
- export async function ensureTable(tableName: string) {
108
+ export async function ensureTable(tableName: string): Promise<operationResult> {
108
109
  const table = getTableClient(tableName);
109
110
  let success = false;
111
+ let errorCode: string;
110
112
  try {
111
113
  await table.createTable({
112
114
  onResponse: raw => {
113
115
  let error = isError(raw);
114
- success = error.isError !== true || error.message === "TableAlreadyExists";
115
- //if (error.isError) console.error(error.message);
116
+ success = error.isError !== true || error.errorCode === "TableAlreadyExists";
117
+ if (error.isError) {
118
+ console.error(error.errorCode);
119
+ errorCode = error.errorCode;
120
+ }
116
121
  }
117
122
  });
118
123
  } catch (e) {
119
124
  //console.error(e);
120
125
  }
121
126
 
122
- return success;
127
+ return { success, errorCode };
123
128
  }
124
129
 
125
- export async function deleteTable(tableName: string) {
130
+ export async function deleteTable(tableName: string): Promise<operationResult> {
126
131
  const table = getTableClient(tableName);
127
132
  let success = false;
133
+ let errorCode: string;
128
134
  try {
129
135
  await table.deleteTable({
130
136
  onResponse: raw => {
131
137
  let error = isError(raw);
132
138
  success = error.isError !== true;
133
- //if (error.isError) console.log(error.message);
139
+ if (error.isError) {
140
+ console.error(error.errorCode);
141
+ errorCode = error.errorCode;
142
+ }
134
143
  }
135
144
  });
136
145
  } catch (e) {
137
146
  //console.log(e);
138
147
  }
139
148
 
140
- return success;
149
+ return { success, errorCode };
141
150
  }
142
151
 
143
152
  //https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/tables/data-tables/samples/v13/typescript/src/queryEntities.ts
144
153
  export async function getItems<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, options?: {
145
154
  filterStatment?: IOdataFilterStatement<DataType>;
146
155
  postFilter?: (item: DataType) => boolean;
147
- }) {
156
+ }): Promise<operationResult<DataType[]>> {
148
157
  const table = getTableClient(tableName);
158
+ let success = true;
159
+ let errorCode: string;
149
160
  let result: DataType[] = [];
150
161
  try {
151
162
  let o: ListTableEntitiesOptions;
@@ -168,35 +179,48 @@ export async function getItems<DataType extends TableEntityBase & TableEntityTyp
168
179
  }
169
180
  } catch (e) {
170
181
  //console.log(e);
182
+ success = false;
183
+ errorCode = "Could not get items";
171
184
  }
172
- return result;
185
+ return { success, errorCode, result };
173
186
  }
174
187
 
175
- export async function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType) {
188
+ export async function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType): Promise<operationResult> {
176
189
  const table = getTableClient(tableName);
177
190
  let success = false;
191
+ let errorCode: string;
178
192
  try {
179
193
  let result = await table.createEntity(item, {
180
194
  onResponse: raw => {
181
195
  let error = isError(raw);
182
196
  success = error.isError !== true;
183
- //if (error.isError) console.log(error.message);
197
+ if (error.isError) {
198
+ console.error(error.errorCode);
199
+ errorCode = error.errorCode;
200
+ }
184
201
  }
185
202
  });
186
203
  //console.log(result);
187
204
  success = true;
188
205
  } catch (e) { success = false; }
189
- return success;
206
+ return { success, errorCode };
190
207
  }
191
208
 
192
- export async function deleteItem(tableName: string, partitionKey: string, rowKey: string) {
209
+ export async function deleteItem(tableName: string, partitionKey: string, rowKey: string): Promise<operationResult> {
193
210
  const table = getTableClient(tableName);
194
211
  let success = false;
212
+ let errorCode: string;
213
+
195
214
  try {
196
215
  let result = await table.deleteEntity(partitionKey, rowKey, {
197
216
  onResponse: raw => {
198
217
  let error = isError(raw);
199
- success = error.isError !== true || error.message === "ResourceNotFound";
218
+ //error not found is still a success for delete action
219
+ success = error.isError !== true || error.errorCode === "ResourceNotFound";
220
+ if (error.isError) {
221
+ console.error(error.errorCode);
222
+ errorCode = error.errorCode;
223
+ }
200
224
  }
201
225
  });
202
226
  //console.log(result);
@@ -204,20 +228,24 @@ export async function deleteItem(tableName: string, partitionKey: string, rowKey
204
228
  } catch (e) {
205
229
  //success = false;
206
230
  }
207
- return success;
231
+ return { success, errorCode };
208
232
  }
209
233
 
210
234
  export async function upsertItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType, options?: {
211
235
  mode?: UpdateMode
212
- }) {
236
+ }): Promise<operationResult> {
213
237
  const table = getTableClient(tableName);
214
238
  let success = false;
239
+ let errorCode: string;
215
240
  try {
216
241
  let result = await table.upsertEntity(item, options?.mode || "Replace", {
217
242
  onResponse: raw => {
218
243
  let error = isError(raw);
219
244
  success = error.isError !== true;
220
- //if (error.isError) console.log(error.message);
245
+ if (error.isError) {
246
+ console.error(error.errorCode);
247
+ errorCode = error.errorCode;
248
+ }
221
249
  }
222
250
  });
223
251
  //console.log(result);
@@ -226,13 +254,13 @@ export async function upsertItem<DataType extends TableEntityBase & TableEntityT
226
254
  console.error(e);
227
255
  success = false;
228
256
  }
229
- return success;
257
+ return { success, errorCode };
230
258
  }
231
259
 
232
260
  export class Table<KeysType extends TableEntityBase,
233
261
  GetKeysParam,
234
262
  SavedRow extends KeysType & TableEntityType<SavedRow>,
235
- ParsedRow = SavedRow>{
263
+ ParsedRow = SavedRow> {
236
264
  private tableName: string;
237
265
  private transform: {
238
266
  save: (parsed: ParsedRow, table: Table<KeysType, GetKeysParam, SavedRow, ParsedRow>) => SavedRow;
@@ -266,8 +294,8 @@ export class Table<KeysType extends TableEntityBase,
266
294
  filterStatment?: IOdataFilterStatement<SavedRow>;
267
295
  postFilter?: (item: SavedRow) => boolean;
268
296
  }) {
269
- let items = await getItems<SavedRow>(this.tableName, options);
270
- return items.map(i => this.transform.load(i, this));
297
+ let itemsResult = await getItems<SavedRow>(this.tableName, options);
298
+ return { ...itemsResult, result: itemsResult.result.map(i => this.transform.load(i, this)) };
271
299
  }
272
300
  public async addItem(item: ParsedRow) {
273
301
  await this.ensure();
@@ -292,17 +320,17 @@ export class Table<KeysType extends TableEntityBase,
292
320
 
293
321
  function isError(raw: FullOperationResponse) {
294
322
  let isError = false;
295
- let message: string = null;
323
+ let errorCode: string = null;
296
324
 
297
325
  //201 - table created successfully
298
326
  //204 - entity created successfully
299
327
  //409 - table/entity already exists
300
- //400 - table name not allowed
328
+ //400 - table name not allowed / Property value too large
301
329
  //404 - TableNotFound when adding item
302
330
  if (raw.status >= 400) {
303
331
  isError = true;
304
332
  let error = raw.parsedBody as IODataError;
305
- message = error && error.odataError && !isNullOrEmptyString(error.odataError.code)
333
+ errorCode = error && error.odataError && !isNullOrEmptyString(error.odataError.code)
306
334
  ? error.odataError.code
307
335
  : `Unknown error`;//for some errors like table name too short, error code is empty
308
336
  }
@@ -310,5 +338,5 @@ function isError(raw: FullOperationResponse) {
310
338
  isError = false;
311
339
  }
312
340
 
313
- return { isError, message };
341
+ return { isError, errorCode };
314
342
  }