@j2inn/resolvable-ui-elements 1.0.1 → 1.0.2-alpha.0
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/dist/resolvableElements/elements/expr/ResolvableExprElement.d.ts +3 -0
- package/dist/resolvableElements/elements/expr/ResolvableExprElement.js +54 -10
- package/dist/resolvableElements/elements/expr/ResolvableExprElement.js.map +1 -1
- package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +2 -0
- package/dist/resolvableElements/elements/expr/ResolvableExprElementMeta.js.map +1 -1
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.d.ts +3 -0
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.js +55 -11
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElement.js.map +1 -1
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.d.ts +2 -0
- package/dist_es/resolvableElements/elements/expr/ResolvableExprElementMeta.js.map +1 -1
- package/package.json +52 -52
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HDict } from 'haystack-core';
|
|
2
|
+
import { Watch } from 'haystack-nclient';
|
|
2
3
|
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
3
4
|
import { UiElementConstructorData, UiElementData } from '../UiElement';
|
|
4
5
|
/**
|
|
@@ -9,6 +10,8 @@ export declare class ResolvableExprElement<T extends UiElementData> extends Reso
|
|
|
9
10
|
static collectionTypes: Set<string>;
|
|
10
11
|
constructor(data: UiElementConstructorData<T>);
|
|
11
12
|
refreshes: number;
|
|
13
|
+
watch?: Watch;
|
|
14
|
+
resolvedExpression?: string;
|
|
12
15
|
protected doInitialize: (parameters: HDict) => Promise<void>;
|
|
13
16
|
/**
|
|
14
17
|
* Checks whether the declared resolvedType of this element is a collection.
|
|
@@ -7,6 +7,7 @@ exports.ResolvableExprElement = void 0;
|
|
|
7
7
|
const haystack_core_1 = require("haystack-core");
|
|
8
8
|
const haystack_units_1 = require("haystack-units");
|
|
9
9
|
const resolveTemplatedExpression_1 = require("../../resolveTemplatedExpression");
|
|
10
|
+
const haystack_nclient_1 = require("haystack-nclient");
|
|
10
11
|
const ResolvableValueElement_1 = require("../ResolvableValueElement");
|
|
11
12
|
/**
|
|
12
13
|
* Resolves to the result of an expression.
|
|
@@ -18,17 +19,41 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
|
|
|
18
19
|
}
|
|
19
20
|
refreshes = 0;
|
|
20
21
|
#timeout;
|
|
22
|
+
watch;
|
|
23
|
+
resolvedExpression;
|
|
21
24
|
doInitialize = async (parameters) => {
|
|
22
25
|
await this.#updateValue(parameters);
|
|
26
|
+
// Setup watch if we're expecting a grid or dict result containing a record id.
|
|
27
|
+
if (this.isExpectedResultACollection()) {
|
|
28
|
+
let grid;
|
|
29
|
+
if ((0, haystack_core_1.valueIsKind)(this.value, haystack_core_1.Kind.Grid)) {
|
|
30
|
+
grid = this.value;
|
|
31
|
+
}
|
|
32
|
+
else if ((0, haystack_core_1.valueIsKind)(this.value, haystack_core_1.Kind.Dict)) {
|
|
33
|
+
grid = haystack_core_1.HGrid.make(this.value);
|
|
34
|
+
}
|
|
35
|
+
if (grid && grid.hasColumn('id')) {
|
|
36
|
+
await this.#setupWatch(grid);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
23
39
|
};
|
|
24
40
|
#updateValue = async (parameters) => {
|
|
25
41
|
const { expr, refreshAfter } = this._meta;
|
|
26
|
-
|
|
27
|
-
const grid = await this.resolver.eval(resolvedExpression);
|
|
42
|
+
this.resolvedExpression = (0, resolveTemplatedExpression_1.resolveTemplateExpression)(expr, parameters);
|
|
43
|
+
const grid = await this.resolver.eval(this.resolvedExpression);
|
|
28
44
|
if (grid.isError()) {
|
|
29
|
-
console.error('Empty grid result for expression: \n', resolvedExpression, grid.getError());
|
|
45
|
+
console.error('Empty grid result for expression: \n', this.resolvedExpression, grid.getError());
|
|
30
46
|
return;
|
|
31
47
|
}
|
|
48
|
+
this.#setValue(grid);
|
|
49
|
+
if (refreshAfter) {
|
|
50
|
+
this.#timeout = setTimeout(() => {
|
|
51
|
+
this.refreshes++;
|
|
52
|
+
this.#updateValue(parameters);
|
|
53
|
+
}, haystack_core_1.HNum.make(refreshAfter, haystack_units_1.second).convertTo(haystack_units_1.millisecond).value);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
#setValue(grid) {
|
|
32
57
|
const val = grid[0]?.get('val');
|
|
33
58
|
// Identify when it's necessary to unpack the result `val` or not
|
|
34
59
|
// since the eval wraps the result value in a grid's first dict `val` tag for non-collections.
|
|
@@ -39,13 +64,7 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
|
|
|
39
64
|
else {
|
|
40
65
|
this.value = grid;
|
|
41
66
|
}
|
|
42
|
-
|
|
43
|
-
this.#timeout = setTimeout(() => {
|
|
44
|
-
this.refreshes++;
|
|
45
|
-
this.#updateValue(parameters);
|
|
46
|
-
}, haystack_core_1.HNum.make(refreshAfter, haystack_units_1.second).convertTo(haystack_units_1.millisecond).value);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
67
|
+
}
|
|
49
68
|
/**
|
|
50
69
|
* Checks whether the declared resolvedType of this element is a collection.
|
|
51
70
|
* @returns true if the resolvedType is a collection.
|
|
@@ -59,6 +78,7 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
|
|
|
59
78
|
if (this.#timeout) {
|
|
60
79
|
clearTimeout(this.#timeout);
|
|
61
80
|
}
|
|
81
|
+
return this.watch?.close();
|
|
62
82
|
};
|
|
63
83
|
getParameterList = () => {
|
|
64
84
|
const { expr } = this._meta;
|
|
@@ -71,6 +91,30 @@ class ResolvableExprElement extends ResolvableValueElement_1.ResolvableValueElem
|
|
|
71
91
|
}
|
|
72
92
|
return parameters;
|
|
73
93
|
};
|
|
94
|
+
#setupWatch = async (grid) => {
|
|
95
|
+
const { subscribePollRate, subscribe } = this
|
|
96
|
+
._meta;
|
|
97
|
+
if (subscribe) {
|
|
98
|
+
this.watch = await this.resolver.makeWatch(this.#getWatchDisplayName(), grid);
|
|
99
|
+
const updateValue = () => {
|
|
100
|
+
if (this.watch?.grid) {
|
|
101
|
+
this.#setValue(this.watch?.grid);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
// Update with the value received when opening the watch
|
|
105
|
+
updateValue();
|
|
106
|
+
// Configure polling options
|
|
107
|
+
this.watch.pollRate = subscribePollRate ?? haystack_nclient_1.DEFAULT_POLL_RATE_SECS;
|
|
108
|
+
this.watch.changed({
|
|
109
|
+
callback: updateValue,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
#getWatchDisplayName = () => {
|
|
114
|
+
return `ResolvableElement Watch for ${this.name ??
|
|
115
|
+
this.resolvedExpression ??
|
|
116
|
+
this._meta.expr}`;
|
|
117
|
+
};
|
|
74
118
|
}
|
|
75
119
|
exports.ResolvableExprElement = ResolvableExprElement;
|
|
76
120
|
//# sourceMappingURL=ResolvableExprElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ export interface ResolvableExprElementMeta extends ResolvableValueElementMeta {
|
|
|
4
4
|
resolutionType: 'expr';
|
|
5
5
|
expr: string;
|
|
6
6
|
refreshAfter: number;
|
|
7
|
+
subscribe?: boolean;
|
|
8
|
+
subscribePollRate?: number;
|
|
7
9
|
}
|
|
8
10
|
export declare const isResolvableExprElementData: (element: UiElementData) => element is UiElementData<ResolvableExprElementMeta>;
|
|
9
11
|
export declare const isResolvableExprElementMeta: (meta: UiElementMeta) => meta is ResolvableExprElementMeta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAaI,MAAM,2BAA2B,GAAG,CAC1C,OAAsB,EACgC,EAAE;IACxD,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,IAAA,mCAA2B,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC;AAEM,MAAM,2BAA2B,GAAG,CAC1C,IAAmB,EACiB,EAAE;IACtC,OAAQ,IAAkC,CAAC,cAAc,KAAK,MAAM,CAAA;AACrE,CAAC,CAAA;AAJY,QAAA,2BAA2B,+BAIvC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HDict } from 'haystack-core';
|
|
2
|
+
import { Watch } from 'haystack-nclient';
|
|
2
3
|
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
3
4
|
import { UiElementConstructorData, UiElementData } from '../UiElement';
|
|
4
5
|
/**
|
|
@@ -9,6 +10,8 @@ export declare class ResolvableExprElement<T extends UiElementData> extends Reso
|
|
|
9
10
|
static collectionTypes: Set<string>;
|
|
10
11
|
constructor(data: UiElementConstructorData<T>);
|
|
11
12
|
refreshes: number;
|
|
13
|
+
watch?: Watch;
|
|
14
|
+
resolvedExpression?: string;
|
|
12
15
|
protected doInitialize: (parameters: HDict) => Promise<void>;
|
|
13
16
|
/**
|
|
14
17
|
* Checks whether the declared resolvedType of this element is a collection.
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
3
|
*/
|
|
4
|
-
import { HNum } from 'haystack-core';
|
|
4
|
+
import { HGrid, HNum, Kind, valueIsKind } from 'haystack-core';
|
|
5
5
|
import { millisecond, second } from 'haystack-units';
|
|
6
6
|
import { replaceTemplateVariables, resolveTemplateExpression, } from '../../resolveTemplatedExpression';
|
|
7
|
+
import { DEFAULT_POLL_RATE_SECS } from 'haystack-nclient';
|
|
7
8
|
import { ResolvableValueElement } from '../ResolvableValueElement';
|
|
8
9
|
/**
|
|
9
10
|
* Resolves to the result of an expression.
|
|
@@ -15,17 +16,41 @@ export class ResolvableExprElement extends ResolvableValueElement {
|
|
|
15
16
|
}
|
|
16
17
|
refreshes = 0;
|
|
17
18
|
#timeout;
|
|
19
|
+
watch;
|
|
20
|
+
resolvedExpression;
|
|
18
21
|
doInitialize = async (parameters) => {
|
|
19
22
|
await this.#updateValue(parameters);
|
|
23
|
+
// Setup watch if we're expecting a grid or dict result containing a record id.
|
|
24
|
+
if (this.isExpectedResultACollection()) {
|
|
25
|
+
let grid;
|
|
26
|
+
if (valueIsKind(this.value, Kind.Grid)) {
|
|
27
|
+
grid = this.value;
|
|
28
|
+
}
|
|
29
|
+
else if (valueIsKind(this.value, Kind.Dict)) {
|
|
30
|
+
grid = HGrid.make(this.value);
|
|
31
|
+
}
|
|
32
|
+
if (grid && grid.hasColumn('id')) {
|
|
33
|
+
await this.#setupWatch(grid);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
20
36
|
};
|
|
21
37
|
#updateValue = async (parameters) => {
|
|
22
38
|
const { expr, refreshAfter } = this._meta;
|
|
23
|
-
|
|
24
|
-
const grid = await this.resolver.eval(resolvedExpression);
|
|
39
|
+
this.resolvedExpression = resolveTemplateExpression(expr, parameters);
|
|
40
|
+
const grid = await this.resolver.eval(this.resolvedExpression);
|
|
25
41
|
if (grid.isError()) {
|
|
26
|
-
console.error('Empty grid result for expression: \n', resolvedExpression, grid.getError());
|
|
42
|
+
console.error('Empty grid result for expression: \n', this.resolvedExpression, grid.getError());
|
|
27
43
|
return;
|
|
28
44
|
}
|
|
45
|
+
this.#setValue(grid);
|
|
46
|
+
if (refreshAfter) {
|
|
47
|
+
this.#timeout = setTimeout(() => {
|
|
48
|
+
this.refreshes++;
|
|
49
|
+
this.#updateValue(parameters);
|
|
50
|
+
}, HNum.make(refreshAfter, second).convertTo(millisecond).value);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
#setValue(grid) {
|
|
29
54
|
const val = grid[0]?.get('val');
|
|
30
55
|
// Identify when it's necessary to unpack the result `val` or not
|
|
31
56
|
// since the eval wraps the result value in a grid's first dict `val` tag for non-collections.
|
|
@@ -36,13 +61,7 @@ export class ResolvableExprElement extends ResolvableValueElement {
|
|
|
36
61
|
else {
|
|
37
62
|
this.value = grid;
|
|
38
63
|
}
|
|
39
|
-
|
|
40
|
-
this.#timeout = setTimeout(() => {
|
|
41
|
-
this.refreshes++;
|
|
42
|
-
this.#updateValue(parameters);
|
|
43
|
-
}, HNum.make(refreshAfter, second).convertTo(millisecond).value);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
64
|
+
}
|
|
46
65
|
/**
|
|
47
66
|
* Checks whether the declared resolvedType of this element is a collection.
|
|
48
67
|
* @returns true if the resolvedType is a collection.
|
|
@@ -56,6 +75,7 @@ export class ResolvableExprElement extends ResolvableValueElement {
|
|
|
56
75
|
if (this.#timeout) {
|
|
57
76
|
clearTimeout(this.#timeout);
|
|
58
77
|
}
|
|
78
|
+
return this.watch?.close();
|
|
59
79
|
};
|
|
60
80
|
getParameterList = () => {
|
|
61
81
|
const { expr } = this._meta;
|
|
@@ -68,5 +88,29 @@ export class ResolvableExprElement extends ResolvableValueElement {
|
|
|
68
88
|
}
|
|
69
89
|
return parameters;
|
|
70
90
|
};
|
|
91
|
+
#setupWatch = async (grid) => {
|
|
92
|
+
const { subscribePollRate, subscribe } = this
|
|
93
|
+
._meta;
|
|
94
|
+
if (subscribe) {
|
|
95
|
+
this.watch = await this.resolver.makeWatch(this.#getWatchDisplayName(), grid);
|
|
96
|
+
const updateValue = () => {
|
|
97
|
+
if (this.watch?.grid) {
|
|
98
|
+
this.#setValue(this.watch?.grid);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
// Update with the value received when opening the watch
|
|
102
|
+
updateValue();
|
|
103
|
+
// Configure polling options
|
|
104
|
+
this.watch.pollRate = subscribePollRate ?? DEFAULT_POLL_RATE_SECS;
|
|
105
|
+
this.watch.changed({
|
|
106
|
+
callback: updateValue,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
#getWatchDisplayName = () => {
|
|
111
|
+
return `ResolvableElement Watch for ${this.name ??
|
|
112
|
+
this.resolvedExpression ??
|
|
113
|
+
this._meta.expr}`;
|
|
114
|
+
};
|
|
71
115
|
}
|
|
72
116
|
//# sourceMappingURL=ResolvableExprElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAS,IAAI,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"ResolvableExprElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ export interface ResolvableExprElementMeta extends ResolvableValueElementMeta {
|
|
|
4
4
|
resolutionType: 'expr';
|
|
5
5
|
expr: string;
|
|
6
6
|
refreshAfter: number;
|
|
7
|
+
subscribe?: boolean;
|
|
8
|
+
subscribePollRate?: number;
|
|
7
9
|
}
|
|
8
10
|
export declare const isResolvableExprElementData: (element: UiElementData) => element is UiElementData<ResolvableExprElementMeta>;
|
|
9
11
|
export declare const isResolvableExprElementMeta: (meta: UiElementMeta) => meta is ResolvableExprElementMeta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"ResolvableExprElementMeta.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/expr/ResolvableExprElementMeta.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,OAAsB,EACgC,EAAE;IACxD,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAC1C,IAAmB,EACiB,EAAE;IACtC,OAAQ,IAAkC,CAAC,cAAc,KAAK,MAAM,CAAA;AACrE,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@j2inn/resolvable-ui-elements",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"module": "dist_es/index.js",
|
|
8
|
-
"scripts": {
|
|
9
|
-
"clean": "rimraf ./dist && rimraf ./dist_es",
|
|
10
|
-
"prebuild": "npm run clean && npm run lint && npm run test",
|
|
11
|
-
"build": "tsc && npm run-script build:es",
|
|
12
|
-
"build:es": "tsc --module ESNext --outDir dist_es",
|
|
13
|
-
"checktypes": "tsc --noEmit",
|
|
14
|
-
"format": "prettier-eslint --list-different --write \"$(pwd)/src/**/*.{ts,tsx,js,jsx}\"",
|
|
15
|
-
"lint": "eslint --fix --ext ts,tsx,js,jsx src/",
|
|
16
|
-
"test": "jest --passWithNoTests",
|
|
17
|
-
"prepack": "npm run lint && npm run test && npm run build"
|
|
18
|
-
},
|
|
19
|
-
"author": "",
|
|
20
|
-
"license": "ISC",
|
|
21
|
-
"files": [
|
|
22
|
-
"dist/**/*",
|
|
23
|
-
"dist_es/**/*"
|
|
24
|
-
],
|
|
25
|
-
"peerDependencies": {
|
|
26
|
-
"haystack-core": "^2.0.45",
|
|
27
|
-
"haystack-nclient": "^3.0.32",
|
|
28
|
-
"haystack-react": "^3.0.17",
|
|
29
|
-
"haystack-units": "^1.0.22",
|
|
30
|
-
"react": "^18.2.0",
|
|
31
|
-
"react-dom": "^18.2.0"
|
|
32
|
-
},
|
|
33
|
-
"devDependencies": {
|
|
34
|
-
"@types/jest": "^27.4.0",
|
|
35
|
-
"@types/node": "^15.0.2",
|
|
36
|
-
"@types/react": "^18.0.18",
|
|
37
|
-
"@types/react-dom": "^18.0.6",
|
|
38
|
-
"@typescript-eslint/eslint-plugin": "^5.28.0",
|
|
39
|
-
"@typescript-eslint/parser": "^5.28.0",
|
|
40
|
-
"eslint": "^7.32.0",
|
|
41
|
-
"eslint-config-prettier": "^8.3.0",
|
|
42
|
-
"eslint-plugin-jest": "^26.1.3",
|
|
43
|
-
"eslint-plugin-prettier": "^4.0.0",
|
|
44
|
-
"eslint-plugin-react": "^7.29.4",
|
|
45
|
-
"prettier": "^2.6.1",
|
|
46
|
-
"prettier-eslint": "^13.0.0",
|
|
47
|
-
"prettier-eslint-cli": "^5.0.1",
|
|
48
|
-
"rimraf": "^3.0.2",
|
|
49
|
-
"ts-jest": "^28.0.8",
|
|
50
|
-
"typescript": "^4.8.2"
|
|
51
|
-
}
|
|
52
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@j2inn/resolvable-ui-elements",
|
|
3
|
+
"version": "1.0.2-alpha.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"module": "dist_es/index.js",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"clean": "rimraf ./dist && rimraf ./dist_es",
|
|
10
|
+
"prebuild": "npm run clean && npm run lint && npm run test",
|
|
11
|
+
"build": "tsc && npm run-script build:es",
|
|
12
|
+
"build:es": "tsc --module ESNext --outDir dist_es",
|
|
13
|
+
"checktypes": "tsc --noEmit",
|
|
14
|
+
"format": "prettier-eslint --list-different --write \"$(pwd)/src/**/*.{ts,tsx,js,jsx}\"",
|
|
15
|
+
"lint": "eslint --fix --ext ts,tsx,js,jsx src/",
|
|
16
|
+
"test": "jest --passWithNoTests",
|
|
17
|
+
"prepack": "npm run lint && npm run test && npm run build"
|
|
18
|
+
},
|
|
19
|
+
"author": "",
|
|
20
|
+
"license": "ISC",
|
|
21
|
+
"files": [
|
|
22
|
+
"dist/**/*",
|
|
23
|
+
"dist_es/**/*"
|
|
24
|
+
],
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"haystack-core": "^2.0.45",
|
|
27
|
+
"haystack-nclient": "^3.0.32",
|
|
28
|
+
"haystack-react": "^3.0.17",
|
|
29
|
+
"haystack-units": "^1.0.22",
|
|
30
|
+
"react": "^18.2.0",
|
|
31
|
+
"react-dom": "^18.2.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/jest": "^27.4.0",
|
|
35
|
+
"@types/node": "^15.0.2",
|
|
36
|
+
"@types/react": "^18.0.18",
|
|
37
|
+
"@types/react-dom": "^18.0.6",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^5.28.0",
|
|
39
|
+
"@typescript-eslint/parser": "^5.28.0",
|
|
40
|
+
"eslint": "^7.32.0",
|
|
41
|
+
"eslint-config-prettier": "^8.3.0",
|
|
42
|
+
"eslint-plugin-jest": "^26.1.3",
|
|
43
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
44
|
+
"eslint-plugin-react": "^7.29.4",
|
|
45
|
+
"prettier": "^2.6.1",
|
|
46
|
+
"prettier-eslint": "^13.0.0",
|
|
47
|
+
"prettier-eslint-cli": "^5.0.1",
|
|
48
|
+
"rimraf": "^3.0.2",
|
|
49
|
+
"ts-jest": "^28.0.8",
|
|
50
|
+
"typescript": "^4.8.2"
|
|
51
|
+
}
|
|
52
|
+
}
|