@kwiz/node 1.0.21 → 1.0.23
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,9 +1,10 @@
|
|
|
1
1
|
import { UpdateMode } from "@azure/data-tables";
|
|
2
|
+
import { IDictionary } from "@kwiz/common";
|
|
2
3
|
import { IOdataFilterStatement } from "./odata";
|
|
3
4
|
export declare function ConfigureTableStorage(config: {
|
|
4
5
|
connectionString: string;
|
|
5
6
|
}): void;
|
|
6
|
-
type
|
|
7
|
+
export type TableOperationResult<T = never> = {
|
|
7
8
|
success: true;
|
|
8
9
|
result?: T;
|
|
9
10
|
errorCode?: string;
|
|
@@ -26,19 +27,19 @@ type TableEntityBase = {
|
|
|
26
27
|
export type TableEntityType<DataType extends TableEntityBase> = {
|
|
27
28
|
[P in keyof DataType]: string | boolean | Date | number;
|
|
28
29
|
};
|
|
29
|
-
export declare function findTable(tableName: string): Promise<
|
|
30
|
+
export declare function findTable(tableName: string): Promise<TableOperationResult>;
|
|
30
31
|
export declare function listTables(): Promise<string[]>;
|
|
31
|
-
export declare function ensureTable(tableName: string): Promise<
|
|
32
|
-
export declare function deleteTable(tableName: string): Promise<
|
|
32
|
+
export declare function ensureTable(tableName: string): Promise<TableOperationResult>;
|
|
33
|
+
export declare function deleteTable(tableName: string): Promise<TableOperationResult>;
|
|
33
34
|
export declare function getItems<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, options?: {
|
|
34
35
|
filterStatment?: IOdataFilterStatement<DataType>;
|
|
35
36
|
postFilter?: (item: DataType) => boolean;
|
|
36
|
-
}): Promise<
|
|
37
|
-
export declare function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType): Promise<
|
|
38
|
-
export declare function deleteItem(tableName: string, partitionKey: string, rowKey: string): Promise<
|
|
37
|
+
}): Promise<TableOperationResult<DataType[]>>;
|
|
38
|
+
export declare function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType): Promise<TableOperationResult>;
|
|
39
|
+
export declare function deleteItem(tableName: string, partitionKey: string, rowKey: string): Promise<TableOperationResult>;
|
|
39
40
|
export declare function upsertItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType, options?: {
|
|
40
41
|
mode?: UpdateMode;
|
|
41
|
-
}): Promise<
|
|
42
|
+
}): Promise<TableOperationResult>;
|
|
42
43
|
export declare class Table<KeysType extends TableEntityBase, GetKeysParam, SavedRow extends KeysType & TableEntityType<SavedRow>, ParsedRow = SavedRow> {
|
|
43
44
|
private tableName;
|
|
44
45
|
private transform;
|
|
@@ -51,8 +52,8 @@ export declare class Table<KeysType extends TableEntityBase, GetKeysParam, Saved
|
|
|
51
52
|
load: (saved: SavedRow, table: Table<KeysType, GetKeysParam, SavedRow, ParsedRow>) => ParsedRow;
|
|
52
53
|
};
|
|
53
54
|
});
|
|
54
|
-
delete(): Promise<
|
|
55
|
-
ensure(): Promise<
|
|
55
|
+
delete(): Promise<TableOperationResult<never>>;
|
|
56
|
+
ensure(): Promise<TableOperationResult<never>>;
|
|
56
57
|
getItems(options?: {
|
|
57
58
|
filterStatment?: IOdataFilterStatement<SavedRow>;
|
|
58
59
|
postFilter?: (item: SavedRow) => boolean;
|
|
@@ -65,11 +66,14 @@ export declare class Table<KeysType extends TableEntityBase, GetKeysParam, Saved
|
|
|
65
66
|
success: false;
|
|
66
67
|
errorCode: string;
|
|
67
68
|
}>;
|
|
68
|
-
addItem(item: ParsedRow): Promise<
|
|
69
|
+
addItem(item: ParsedRow): Promise<TableOperationResult<never>>;
|
|
69
70
|
upsertItem(item: ParsedRow, options?: {
|
|
70
71
|
mode?: UpdateMode;
|
|
71
|
-
}): Promise<
|
|
72
|
-
deleteItemByKey(param: GetKeysParam): Promise<
|
|
73
|
-
deleteItem(item: KeysType): Promise<
|
|
72
|
+
}): Promise<TableOperationResult<never>>;
|
|
73
|
+
deleteItemByKey(param: GetKeysParam): Promise<TableOperationResult<never>>;
|
|
74
|
+
deleteItem(item: KeysType): Promise<TableOperationResult<never>>;
|
|
74
75
|
}
|
|
76
|
+
export declare const tableColumnLengthLimit = 31999;
|
|
77
|
+
export declare function overflowColumnValue<T = IDictionary<any>>(item: T, longProps: string | string[], overrideLimit?: number): T;
|
|
78
|
+
export declare function restoreOverflowColumnValue<T = IDictionary<any>>(item: T, longProps: string | string[]): T;
|
|
75
79
|
export {};
|
|
@@ -16,7 +16,7 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
16
16
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.Table = exports.upsertItem = exports.deleteItem = exports.addItem = exports.getItems = exports.deleteTable = exports.ensureTable = exports.listTables = exports.findTable = exports.ConfigureTableStorage = void 0;
|
|
19
|
+
exports.restoreOverflowColumnValue = exports.overflowColumnValue = exports.tableColumnLengthLimit = exports.Table = exports.upsertItem = exports.deleteItem = exports.addItem = exports.getItems = exports.deleteTable = exports.ensureTable = exports.listTables = exports.findTable = exports.ConfigureTableStorage = void 0;
|
|
20
20
|
const data_tables_1 = require("@azure/data-tables");
|
|
21
21
|
const common_1 = require("@kwiz/common");
|
|
22
22
|
const odata_1 = require("./odata");
|
|
@@ -360,4 +360,45 @@ function isError(raw) {
|
|
|
360
360
|
}
|
|
361
361
|
return { isError, errorCode };
|
|
362
362
|
}
|
|
363
|
+
exports.tableColumnLengthLimit = 31999;
|
|
364
|
+
function overflowColumnValue(item, longProps, overrideLimit) {
|
|
365
|
+
let limit = (0, common_1.isNumber)(overrideLimit) && overrideLimit > 0 ? overrideLimit : exports.tableColumnLengthLimit;
|
|
366
|
+
let columns = {};
|
|
367
|
+
const properties = !Array.isArray(longProps) ? [longProps] : longProps;
|
|
368
|
+
properties.forEach(propertyName => {
|
|
369
|
+
let value = item[propertyName];
|
|
370
|
+
if ((0, common_1.isNotEmptyString)(value)) {
|
|
371
|
+
let splitValue = (0, common_1.splitString)(value, { maxLength: limit });
|
|
372
|
+
splitValue.forEach((v, i) => {
|
|
373
|
+
//form, form2, form3...
|
|
374
|
+
let key = i === 0 ? propertyName : `${propertyName}${i + 1}`;
|
|
375
|
+
columns[key] = v;
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
if ((0, common_1.isNotEmptyArray)(Object.keys(columns)))
|
|
380
|
+
item = Object.assign(Object.assign({}, item), columns);
|
|
381
|
+
return item;
|
|
382
|
+
}
|
|
383
|
+
exports.overflowColumnValue = overflowColumnValue;
|
|
384
|
+
function restoreOverflowColumnValue(item, longProps) {
|
|
385
|
+
const properties = !Array.isArray(longProps) ? [longProps] : longProps;
|
|
386
|
+
properties.forEach(propertyName => {
|
|
387
|
+
let result = item[propertyName];
|
|
388
|
+
if ((0, common_1.isNotEmptyString)(result)) {
|
|
389
|
+
let startIndex = 2;
|
|
390
|
+
let key = `${propertyName}${startIndex}`;
|
|
391
|
+
//restore from overflow
|
|
392
|
+
while ((0, common_1.isNotEmptyString)(item[key])) {
|
|
393
|
+
result += item[key];
|
|
394
|
+
delete item[key];
|
|
395
|
+
startIndex++;
|
|
396
|
+
key = `${propertyName}${startIndex}`;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
item[propertyName] = result;
|
|
400
|
+
});
|
|
401
|
+
return item;
|
|
402
|
+
}
|
|
403
|
+
exports.restoreOverflowColumnValue = restoreOverflowColumnValue;
|
|
363
404
|
//# sourceMappingURL=table-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-storage.js","sourceRoot":"","sources":["../../src/storage/table-storage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,oDAAkH;AAClH,
|
|
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.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"description": "KWIZ utilities and helpers for node applications",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@azure/data-tables": "^13.2.2",
|
|
71
71
|
"@azure/msal-node": "^2.6.4",
|
|
72
|
-
"@kwiz/common": "^1.0.
|
|
72
|
+
"@kwiz/common": "^1.0.97",
|
|
73
73
|
"axios": "^1.6.7",
|
|
74
74
|
"esbuild": "^0.19.12",
|
|
75
75
|
"get-tsconfig": "^4.7.2",
|
|
@@ -2,7 +2,7 @@ import assert from 'assert/strict';
|
|
|
2
2
|
import test from 'node:test';
|
|
3
3
|
import { IsAzuriteRunning } from "./common";
|
|
4
4
|
import { ODataOperators } from "./odata";
|
|
5
|
-
import { ConfigureTableStorage, Table, addItem, ensureTable } from "./table-storage";
|
|
5
|
+
import { ConfigureTableStorage, Table, addItem, ensureTable, overflowColumnValue, restoreOverflowColumnValue } from "./table-storage";
|
|
6
6
|
|
|
7
7
|
test('testTableStorage', async t => {
|
|
8
8
|
if (!(await IsAzuriteRunning())) {
|
|
@@ -132,4 +132,19 @@ test('testTableStorage', async t => {
|
|
|
132
132
|
//cleanup
|
|
133
133
|
result = await table.delete();
|
|
134
134
|
await t.test("Delete table", t => assert.strictEqual(result, true));
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
test('testTableStorage', async t => {
|
|
139
|
+
let item = { title: "test1", test: "abc123def456" };
|
|
140
|
+
let withOverflow = overflowColumnValue(item, "test", 3);
|
|
141
|
+
await t.test("Test overflow column", t => assert.strictEqual(JSON.stringify(withOverflow), JSON.stringify({
|
|
142
|
+
title: "test1",
|
|
143
|
+
test: "abc",
|
|
144
|
+
test2: "123",
|
|
145
|
+
test3: "def",
|
|
146
|
+
test4: "456"
|
|
147
|
+
})));
|
|
148
|
+
|
|
149
|
+
await t.test("Test restore overflow column", t => assert.strictEqual(JSON.stringify(restoreOverflowColumnValue(withOverflow, "test")), JSON.stringify(item)));
|
|
135
150
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
//https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=visual-studio-code
|
|
6
6
|
import { FullOperationResponse } from "@azure/core-client";
|
|
7
7
|
import { ListTableEntitiesOptions, TableClient, TableServiceClient, UpdateMode, odata } from "@azure/data-tables";
|
|
8
|
-
import { isNullOrEmptyString, isNullOrUndefined } from "@kwiz/common";
|
|
8
|
+
import { IDictionary, isNotEmptyArray, isNotEmptyString, isNullOrEmptyString, isNullOrUndefined, isNumber, splitString } from "@kwiz/common";
|
|
9
9
|
import { IOdataFilterStatement, getOdataFilter } from "./odata";
|
|
10
10
|
|
|
11
11
|
var connectionString: string = null;
|
|
@@ -31,7 +31,7 @@ interface IODataError {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
type
|
|
34
|
+
export type TableOperationResult<T = never> = { success: true; result?: T; errorCode?: string; } | { success: false; result?: T; errorCode: string; };
|
|
35
35
|
|
|
36
36
|
type TableEntityBase = {
|
|
37
37
|
/**
|
|
@@ -49,7 +49,7 @@ export type TableEntityType<DataType extends TableEntityBase> = {
|
|
|
49
49
|
[P in keyof DataType]: string | boolean | Date | number;
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
export async function findTable(tableName: string): Promise<
|
|
52
|
+
export async function findTable(tableName: string): Promise<TableOperationResult> {
|
|
53
53
|
const tableService = getTableService();
|
|
54
54
|
|
|
55
55
|
let success = false;
|
|
@@ -105,7 +105,7 @@ export async function listTables() {
|
|
|
105
105
|
// return success;
|
|
106
106
|
// }
|
|
107
107
|
|
|
108
|
-
export async function ensureTable(tableName: string): Promise<
|
|
108
|
+
export async function ensureTable(tableName: string): Promise<TableOperationResult> {
|
|
109
109
|
const table = getTableClient(tableName);
|
|
110
110
|
let success = false;
|
|
111
111
|
let errorCode: string;
|
|
@@ -127,7 +127,7 @@ export async function ensureTable(tableName: string): Promise<operationResult> {
|
|
|
127
127
|
return { success, errorCode };
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
export async function deleteTable(tableName: string): Promise<
|
|
130
|
+
export async function deleteTable(tableName: string): Promise<TableOperationResult> {
|
|
131
131
|
const table = getTableClient(tableName);
|
|
132
132
|
let success = false;
|
|
133
133
|
let errorCode: string;
|
|
@@ -153,7 +153,7 @@ export async function deleteTable(tableName: string): Promise<operationResult> {
|
|
|
153
153
|
export async function getItems<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, options?: {
|
|
154
154
|
filterStatment?: IOdataFilterStatement<DataType>;
|
|
155
155
|
postFilter?: (item: DataType) => boolean;
|
|
156
|
-
}): Promise<
|
|
156
|
+
}): Promise<TableOperationResult<DataType[]>> {
|
|
157
157
|
const table = getTableClient(tableName);
|
|
158
158
|
let success = true;
|
|
159
159
|
let errorCode: string;
|
|
@@ -185,7 +185,7 @@ export async function getItems<DataType extends TableEntityBase & TableEntityTyp
|
|
|
185
185
|
return { success, errorCode, result };
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
-
export async function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType): Promise<
|
|
188
|
+
export async function addItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType): Promise<TableOperationResult> {
|
|
189
189
|
const table = getTableClient(tableName);
|
|
190
190
|
let success = false;
|
|
191
191
|
let errorCode: string;
|
|
@@ -206,7 +206,7 @@ export async function addItem<DataType extends TableEntityBase & TableEntityType
|
|
|
206
206
|
return { success, errorCode };
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
-
export async function deleteItem(tableName: string, partitionKey: string, rowKey: string): Promise<
|
|
209
|
+
export async function deleteItem(tableName: string, partitionKey: string, rowKey: string): Promise<TableOperationResult> {
|
|
210
210
|
const table = getTableClient(tableName);
|
|
211
211
|
let success = false;
|
|
212
212
|
let errorCode: string;
|
|
@@ -233,7 +233,7 @@ export async function deleteItem(tableName: string, partitionKey: string, rowKey
|
|
|
233
233
|
|
|
234
234
|
export async function upsertItem<DataType extends TableEntityBase & TableEntityType<DataType>>(tableName: string, item: DataType, options?: {
|
|
235
235
|
mode?: UpdateMode
|
|
236
|
-
}): Promise<
|
|
236
|
+
}): Promise<TableOperationResult> {
|
|
237
237
|
const table = getTableClient(tableName);
|
|
238
238
|
let success = false;
|
|
239
239
|
let errorCode: string;
|
|
@@ -339,4 +339,47 @@ function isError(raw: FullOperationResponse) {
|
|
|
339
339
|
}
|
|
340
340
|
|
|
341
341
|
return { isError, errorCode };
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
export const tableColumnLengthLimit = 31999;
|
|
345
|
+
export function overflowColumnValue<T = IDictionary<any>>(item: T, longProps: string | string[], overrideLimit?: number): T {
|
|
346
|
+
let limit = isNumber(overrideLimit) && overrideLimit > 0 ? overrideLimit : tableColumnLengthLimit;
|
|
347
|
+
let columns: IDictionary<string> = {};
|
|
348
|
+
const properties = !Array.isArray(longProps) ? [longProps] : longProps;
|
|
349
|
+
properties.forEach(propertyName => {
|
|
350
|
+
let value = item[propertyName];
|
|
351
|
+
if (isNotEmptyString(value)) {
|
|
352
|
+
let splitValue = splitString(value, { maxLength: limit });
|
|
353
|
+
splitValue.forEach((v, i) => {
|
|
354
|
+
//form, form2, form3...
|
|
355
|
+
let key = i === 0 ? propertyName : `${propertyName}${i + 1}`;
|
|
356
|
+
columns[key] = v;
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
if (isNotEmptyArray(Object.keys(columns)))
|
|
362
|
+
item = { ...item, ...columns };
|
|
363
|
+
|
|
364
|
+
return item;
|
|
365
|
+
}
|
|
366
|
+
export function restoreOverflowColumnValue<T = IDictionary<any>>(item: T, longProps: string | string[]): T {
|
|
367
|
+
const properties = !Array.isArray(longProps) ? [longProps] : longProps;
|
|
368
|
+
properties.forEach(propertyName => {
|
|
369
|
+
let result: string = item[propertyName];
|
|
370
|
+
if (isNotEmptyString(result)) {
|
|
371
|
+
let startIndex = 2;
|
|
372
|
+
let key = `${propertyName}${startIndex}`;
|
|
373
|
+
//restore from overflow
|
|
374
|
+
while (isNotEmptyString(item[key])) {
|
|
375
|
+
result += item[key];
|
|
376
|
+
delete item[key];
|
|
377
|
+
|
|
378
|
+
startIndex++;
|
|
379
|
+
key = `${propertyName}${startIndex}`;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
item[propertyName] = result;
|
|
383
|
+
});
|
|
384
|
+
return item;
|
|
342
385
|
}
|