@vuu-ui/vuu-data-remote 3.5.12 → 3.5.13
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/package.json +7 -7
- package/src/VuuDataSource.js +23 -27
- package/types/VuuDataSource.d.ts +1 -1
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.5.
|
|
2
|
+
"version": "3.5.13",
|
|
3
3
|
"main": "./src/index.js",
|
|
4
4
|
"author": "heswell",
|
|
5
5
|
"license": "Apache-2.0",
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
"type-defs": "node ../../scripts/build-type-defs.mjs"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@vuu-ui/vuu-data-types": "3.5.
|
|
15
|
-
"@vuu-ui/vuu-table-types": "3.5.
|
|
16
|
-
"@vuu-ui/vuu-filter-types": "3.5.
|
|
17
|
-
"@vuu-ui/vuu-protocol-types": "3.5.
|
|
14
|
+
"@vuu-ui/vuu-data-types": "3.5.13",
|
|
15
|
+
"@vuu-ui/vuu-table-types": "3.5.13",
|
|
16
|
+
"@vuu-ui/vuu-filter-types": "3.5.13",
|
|
17
|
+
"@vuu-ui/vuu-protocol-types": "3.5.13"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@vuu-ui/vuu-filter-parser": "3.5.
|
|
21
|
-
"@vuu-ui/vuu-utils": "3.5.
|
|
20
|
+
"@vuu-ui/vuu-filter-parser": "3.5.13",
|
|
21
|
+
"@vuu-ui/vuu-utils": "3.5.13"
|
|
22
22
|
},
|
|
23
23
|
"files": [
|
|
24
24
|
"README.md",
|
package/src/VuuDataSource.js
CHANGED
|
@@ -4,19 +4,15 @@ import { isDataSourceConfigMessage } from "./data-source.js";
|
|
|
4
4
|
const { info: info, infoEnabled: infoEnabled } = logger("VuuDataSource");
|
|
5
5
|
const combineColumnsWithAutosubscribeColumns = (columns, autosubscribeColumns = [])=>{
|
|
6
6
|
if (0 === autosubscribeColumns.length) return columns;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
autosubscribeColumns
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
return out;
|
|
13
|
-
}
|
|
7
|
+
return Array.from(new Set([
|
|
8
|
+
...columns,
|
|
9
|
+
...autosubscribeColumns
|
|
10
|
+
]));
|
|
14
11
|
};
|
|
15
12
|
class VuuDataSource extends BaseDataSource {
|
|
16
13
|
bufferSize;
|
|
17
14
|
server = null;
|
|
18
15
|
rangeRequest;
|
|
19
|
-
#allColumns;
|
|
20
16
|
#autosubscribeColumns = [];
|
|
21
17
|
#pendingVisualLink;
|
|
22
18
|
#links;
|
|
@@ -32,8 +28,11 @@ class VuuDataSource extends BaseDataSource {
|
|
|
32
28
|
#tableSchema;
|
|
33
29
|
isRemote = true;
|
|
34
30
|
table;
|
|
35
|
-
constructor({ session, sessionTableMessageColumn, ...props }){
|
|
36
|
-
super(
|
|
31
|
+
constructor({ autosubscribeColumns, columns, session, sessionTableMessageColumn, ...props }){
|
|
32
|
+
super({
|
|
33
|
+
...props,
|
|
34
|
+
columns: autosubscribeColumns ? combineColumnsWithAutosubscribeColumns(columns ?? [], autosubscribeColumns) : columns
|
|
35
|
+
});
|
|
37
36
|
const { bufferSize = 100, table, visualLink } = props;
|
|
38
37
|
if (!table) throw Error("RemoteDataSource constructor called without table");
|
|
39
38
|
this.bufferSize = bufferSize;
|
|
@@ -42,13 +41,13 @@ class VuuDataSource extends BaseDataSource {
|
|
|
42
41
|
this.#session = session;
|
|
43
42
|
this.#sessionTableMessageColumn = sessionTableMessageColumn;
|
|
44
43
|
this.rangeRequest = this.rawRangeRequest;
|
|
45
|
-
if (
|
|
46
|
-
this.#autosubscribeColumns = props.autosubscribeColumns;
|
|
47
|
-
this.#allColumns = combineColumnsWithAutosubscribeColumns(super.columns, props.autosubscribeColumns);
|
|
48
|
-
}
|
|
44
|
+
if (autosubscribeColumns) this.#autosubscribeColumns = autosubscribeColumns;
|
|
49
45
|
}
|
|
50
46
|
async subscribe(subscribeProps, callback) {
|
|
51
|
-
super.subscribe(subscribeProps
|
|
47
|
+
super.subscribe(subscribeProps.columns && this.#autosubscribeColumns.length ? {
|
|
48
|
+
...subscribeProps,
|
|
49
|
+
columns: combineColumnsWithAutosubscribeColumns(subscribeProps.columns, this.#autosubscribeColumns)
|
|
50
|
+
} : subscribeProps, callback);
|
|
52
51
|
const { viewport = this.viewport || (this.viewport = uuid()) } = subscribeProps;
|
|
53
52
|
if ("disabled" === this.#status || "disabling" === this.#status || "enabling" === this.#status) return void this.enable(callback);
|
|
54
53
|
if ("initialising" !== this.#status && "unsubscribed" !== this.#status) throw Error(`[VuuDataSource] invalid status ${this.#status} for subscribe`);
|
|
@@ -252,11 +251,10 @@ class VuuDataSource extends BaseDataSource {
|
|
|
252
251
|
}
|
|
253
252
|
}
|
|
254
253
|
get columns() {
|
|
255
|
-
return
|
|
254
|
+
return super.columns;
|
|
256
255
|
}
|
|
257
256
|
set columns(columns) {
|
|
258
|
-
super.columns = columns;
|
|
259
|
-
if (this.#autosubscribeColumns.length) this.#allColumns = combineColumnsWithAutosubscribeColumns(columns, this.#autosubscribeColumns);
|
|
257
|
+
super.columns = combineColumnsWithAutosubscribeColumns(columns, this.#autosubscribeColumns);
|
|
260
258
|
}
|
|
261
259
|
get tableSchema() {
|
|
262
260
|
return this.#tableSchema;
|
|
@@ -327,19 +325,17 @@ class VuuDataSource extends BaseDataSource {
|
|
|
327
325
|
return super.config;
|
|
328
326
|
}
|
|
329
327
|
set config(config) {
|
|
330
|
-
const
|
|
328
|
+
const nextConfig = this.#autosubscribeColumns.length ? {
|
|
329
|
+
...config,
|
|
330
|
+
columns: combineColumnsWithAutosubscribeColumns(config.columns, this.#autosubscribeColumns)
|
|
331
|
+
} : config;
|
|
332
|
+
const { noChanges } = isConfigChanged(this.config, nextConfig);
|
|
331
333
|
if (!noChanges) {
|
|
332
|
-
super.config =
|
|
333
|
-
const { columns, ...dataSourceConfig } = combineFilters(this.config);
|
|
334
|
-
const serverConfig = {
|
|
335
|
-
...dataSourceConfig,
|
|
336
|
-
columns: combineColumnsWithAutosubscribeColumns(columns, this.#autosubscribeColumns)
|
|
337
|
-
};
|
|
338
|
-
if (columnsChanged && this.#autosubscribeColumns.length) this.#allColumns = combineColumnsWithAutosubscribeColumns(columns, this.#autosubscribeColumns);
|
|
334
|
+
super.config = nextConfig;
|
|
339
335
|
this.server?.send({
|
|
340
336
|
viewport: this.viewport,
|
|
341
337
|
type: "config",
|
|
342
|
-
config:
|
|
338
|
+
config: combineFilters(this.config)
|
|
343
339
|
});
|
|
344
340
|
}
|
|
345
341
|
}
|
package/types/VuuDataSource.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare class VuuDataSource extends BaseDataSource implements DataSourceB
|
|
|
10
10
|
rangeRequest: RangeRequest;
|
|
11
11
|
readonly isRemote = true;
|
|
12
12
|
table: VuuTable;
|
|
13
|
-
constructor({ session, sessionTableMessageColumn, ...props }: DataSourceConstructorProps);
|
|
13
|
+
constructor({ autosubscribeColumns, columns, session, sessionTableMessageColumn, ...props }: DataSourceConstructorProps);
|
|
14
14
|
subscribe(subscribeProps: DataSourceSubscribeProps, callback: DataSourceSubscribeCallback): Promise<void>;
|
|
15
15
|
handleMessageFromServer: (message: DataSourceCallbackMessage) => void;
|
|
16
16
|
handleSessionMessageFromServer: (msg: DataSourceCallbackMessage) => void;
|