@arcanejs/react-toolkit 0.3.0 → 0.3.2
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/data.js +39 -62
- package/dist/index.js +27 -73
- package/package.json +3 -3
package/dist/data.js
CHANGED
|
@@ -1,46 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/data.tsx
|
|
2
|
+
var _fs = require('fs');
|
|
19
3
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
module.exports = __toCommonJS(data_exports);
|
|
31
|
-
var import_fs = require("fs");
|
|
32
|
-
var import_react = require("react");
|
|
33
|
-
var import_lodash = require("lodash");
|
|
34
|
-
var import_path = require("path");
|
|
35
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _react = require('react');
|
|
11
|
+
var _lodash = require('lodash');
|
|
12
|
+
var _path = require('path');
|
|
13
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
36
14
|
function useDataFileData(dataFile) {
|
|
37
|
-
return (0,
|
|
15
|
+
return _react.useContext.call(void 0, dataFile.context).data;
|
|
38
16
|
}
|
|
39
17
|
function useDataFileUpdater(dataFile) {
|
|
40
|
-
return (0,
|
|
18
|
+
return _react.useContext.call(void 0, dataFile.context).updateData;
|
|
41
19
|
}
|
|
42
20
|
function useDataFileContext(dataFile) {
|
|
43
|
-
return (0,
|
|
21
|
+
return _react.useContext.call(void 0, dataFile.context);
|
|
44
22
|
}
|
|
45
23
|
function useDataFile(dataFile, usage) {
|
|
46
24
|
return dataFile.useDataFile(usage);
|
|
@@ -51,7 +29,7 @@ function useDataFileCore({
|
|
|
51
29
|
path,
|
|
52
30
|
onPathChange = "defaultValue"
|
|
53
31
|
}) {
|
|
54
|
-
const state = (0,
|
|
32
|
+
const state = _react.useRef.call(void 0, {
|
|
55
33
|
initialized: false,
|
|
56
34
|
path: null,
|
|
57
35
|
data: void 0,
|
|
@@ -60,7 +38,7 @@ function useDataFileCore({
|
|
|
60
38
|
state: "saved"
|
|
61
39
|
}
|
|
62
40
|
});
|
|
63
|
-
(0,
|
|
41
|
+
_react.useEffect.call(void 0, () => {
|
|
64
42
|
if (!state.current.initialized) {
|
|
65
43
|
state.current.initialized = true;
|
|
66
44
|
} else {
|
|
@@ -69,11 +47,11 @@ function useDataFileCore({
|
|
|
69
47
|
);
|
|
70
48
|
}
|
|
71
49
|
}, [schema, defaultValue]);
|
|
72
|
-
const [data, setData] = (0,
|
|
50
|
+
const [data, setData] = _react.useState.call(void 0, {
|
|
73
51
|
status: "loading",
|
|
74
52
|
data: void 0
|
|
75
53
|
});
|
|
76
|
-
const updateDataFromState = (0,
|
|
54
|
+
const updateDataFromState = _react.useMemo.call(void 0,
|
|
77
55
|
() => () => {
|
|
78
56
|
const data2 = state.current.data;
|
|
79
57
|
if (state.current.state.state === "error") {
|
|
@@ -98,8 +76,8 @@ function useDataFileCore({
|
|
|
98
76
|
},
|
|
99
77
|
[]
|
|
100
78
|
);
|
|
101
|
-
const saveData = (0,
|
|
102
|
-
() => (0,
|
|
79
|
+
const saveData = _react.useMemo.call(void 0,
|
|
80
|
+
() => _lodash.throttle.call(void 0,
|
|
103
81
|
async () => {
|
|
104
82
|
if (state.current.state.state === "saved") {
|
|
105
83
|
return;
|
|
@@ -111,8 +89,8 @@ function useDataFileCore({
|
|
|
111
89
|
}
|
|
112
90
|
try {
|
|
113
91
|
const json = JSON.stringify(currentData, null, 2);
|
|
114
|
-
await
|
|
115
|
-
await
|
|
92
|
+
await _fs.promises.mkdir(_path.dirname.call(void 0, currentPath), { recursive: true });
|
|
93
|
+
await _fs.promises.writeFile(currentPath, json, "utf8");
|
|
116
94
|
if (state.current.path === currentPath && state.current.data === currentData) {
|
|
117
95
|
state.current.state = { state: "saved" };
|
|
118
96
|
}
|
|
@@ -134,17 +112,17 @@ function useDataFileCore({
|
|
|
134
112
|
),
|
|
135
113
|
[]
|
|
136
114
|
);
|
|
137
|
-
(0,
|
|
115
|
+
_react.useEffect.call(void 0, () => {
|
|
138
116
|
state.current = {
|
|
139
117
|
...state.current,
|
|
140
118
|
path,
|
|
141
119
|
data: void 0,
|
|
142
|
-
previousData: state.current.data
|
|
120
|
+
previousData: _nullishCoalesce(state.current.data, () => ( state.current.previousData)),
|
|
143
121
|
state: {
|
|
144
122
|
state: "saved"
|
|
145
123
|
}
|
|
146
124
|
};
|
|
147
|
-
|
|
125
|
+
_fs.promises.readFile(path, "utf8").then((data2) => {
|
|
148
126
|
const parsedData = schema.parse(JSON.parse(data2));
|
|
149
127
|
if (state.current.path === path) {
|
|
150
128
|
state.current.data = parsedData;
|
|
@@ -168,7 +146,7 @@ function useDataFileCore({
|
|
|
168
146
|
updateDataFromState();
|
|
169
147
|
});
|
|
170
148
|
}, [path, onPathChange]);
|
|
171
|
-
const updateData = (0,
|
|
149
|
+
const updateData = _react.useMemo.call(void 0,
|
|
172
150
|
() => (update) => {
|
|
173
151
|
if (state.current.path !== path) {
|
|
174
152
|
return;
|
|
@@ -193,7 +171,7 @@ function createDataFileDefinition({
|
|
|
193
171
|
schema,
|
|
194
172
|
defaultValue
|
|
195
173
|
}) {
|
|
196
|
-
const context = (0,
|
|
174
|
+
const context = _react.createContext.call(void 0, {
|
|
197
175
|
data: defaultValue,
|
|
198
176
|
updateData: () => {
|
|
199
177
|
throw new Error("Data file provider not used");
|
|
@@ -217,7 +195,7 @@ function createDataFileDefinition({
|
|
|
217
195
|
path,
|
|
218
196
|
onPathChange
|
|
219
197
|
});
|
|
220
|
-
const providedContext = (0,
|
|
198
|
+
const providedContext = _react.useMemo.call(void 0,
|
|
221
199
|
() => ({
|
|
222
200
|
data: data.status !== "loading" && data.data !== void 0 ? data.data : defaultValue,
|
|
223
201
|
updateData,
|
|
@@ -227,9 +205,9 @@ function createDataFileDefinition({
|
|
|
227
205
|
[data, updateData]
|
|
228
206
|
);
|
|
229
207
|
if (data.status === "loading") {
|
|
230
|
-
return /* @__PURE__ */ (0,
|
|
208
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: "Loading..." });
|
|
231
209
|
}
|
|
232
|
-
return /* @__PURE__ */ (0,
|
|
210
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, context.Provider, { value: providedContext, children });
|
|
233
211
|
};
|
|
234
212
|
return {
|
|
235
213
|
Provider,
|
|
@@ -237,12 +215,11 @@ function createDataFileDefinition({
|
|
|
237
215
|
useDataFile: useDataFile2
|
|
238
216
|
};
|
|
239
217
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
});
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
exports.createDataFileDefinition = createDataFileDefinition; exports.useDataFile = useDataFile; exports.useDataFileContext = useDataFileContext; exports.useDataFileCore = useDataFileCore; exports.useDataFileData = useDataFileData; exports.useDataFileUpdater = useDataFileUpdater;
|
package/dist/index.js
CHANGED
|
@@ -1,56 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/index.ts
|
|
31
|
-
var src_exports = {};
|
|
32
|
-
__export(src_exports, {
|
|
33
|
-
Button: () => Button,
|
|
34
|
-
Group: () => Group,
|
|
35
|
-
GroupHeader: () => GroupHeader,
|
|
36
|
-
Label: () => Label,
|
|
37
|
-
Rect: () => Rect,
|
|
38
|
-
SliderButton: () => SliderButton,
|
|
39
|
-
Switch: () => Switch,
|
|
40
|
-
Tab: () => Tab,
|
|
41
|
-
Tabs: () => Tabs,
|
|
42
|
-
TextInput: () => TextInput,
|
|
43
|
-
Timeline: () => Timeline,
|
|
44
|
-
ToolkitRenderer: () => ToolkitRenderer
|
|
45
|
-
});
|
|
46
|
-
module.exports = __toCommonJS(src_exports);
|
|
47
|
-
var import_react_reconciler = __toESM(require("react-reconciler"));
|
|
48
|
-
var import_constants = require("react-reconciler/constants");
|
|
49
|
-
var ld = __toESM(require("@arcanejs/toolkit"));
|
|
50
|
-
var import_base = require("@arcanejs/toolkit/components/base");
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/index.ts
|
|
2
|
+
var _reactreconciler = require('react-reconciler'); var _reactreconciler2 = _interopRequireDefault(_reactreconciler);
|
|
3
|
+
var _constants = require('react-reconciler/constants');
|
|
4
|
+
var _toolkit = require('@arcanejs/toolkit'); var ld = _interopRequireWildcard(_toolkit);
|
|
5
|
+
var _base = require('@arcanejs/toolkit/components/base');
|
|
51
6
|
|
|
52
7
|
// src/components.ts
|
|
53
|
-
var
|
|
8
|
+
var _react = require('react'); var React = _interopRequireWildcard(_react);
|
|
54
9
|
var Button = React.forwardRef(
|
|
55
10
|
(props, ref) => React.createElement("button", { ...props, ref }, props.children)
|
|
56
11
|
);
|
|
@@ -87,7 +42,7 @@ var Timeline = React.forwardRef(
|
|
|
87
42
|
|
|
88
43
|
// src/index.ts
|
|
89
44
|
var isType = (targetType, type, _props) => targetType === type;
|
|
90
|
-
var canSetProps = (instance) => instance instanceof
|
|
45
|
+
var canSetProps = (instance) => instance instanceof _base.Base;
|
|
91
46
|
var updateListener = (eventName, property, instance, prevProps, nextProps) => {
|
|
92
47
|
const prev = prevProps[property];
|
|
93
48
|
const next = nextProps[property];
|
|
@@ -133,14 +88,14 @@ var hostConfig = {
|
|
|
133
88
|
supportsHydration: false,
|
|
134
89
|
afterActiveInstanceBlur: () => null,
|
|
135
90
|
appendChild: (parentInstance, child) => {
|
|
136
|
-
if (parentInstance instanceof
|
|
91
|
+
if (parentInstance instanceof _base.BaseParent) {
|
|
137
92
|
parentInstance.appendChild(child);
|
|
138
93
|
} else {
|
|
139
94
|
throw new Error(`Unexpected Parent: ${parentInstance}`);
|
|
140
95
|
}
|
|
141
96
|
},
|
|
142
97
|
appendInitialChild: (parentInstance, child) => {
|
|
143
|
-
if (parentInstance instanceof
|
|
98
|
+
if (parentInstance instanceof _base.BaseParent) {
|
|
144
99
|
parentInstance.appendChild(child);
|
|
145
100
|
} else {
|
|
146
101
|
throw new Error(`Unexpected Parent: ${parentInstance}`);
|
|
@@ -199,7 +154,7 @@ var hostConfig = {
|
|
|
199
154
|
createTextInstance: (text) => new ld.Label({ text }),
|
|
200
155
|
detachDeletedInstance: () => null,
|
|
201
156
|
getChildHostContext: (parentHostContext) => parentHostContext,
|
|
202
|
-
getCurrentEventPriority: () =>
|
|
157
|
+
getCurrentEventPriority: () => _constants.DefaultEventPriority,
|
|
203
158
|
getInstanceFromNode: () => {
|
|
204
159
|
throw new Error("Not yet implemented.");
|
|
205
160
|
},
|
|
@@ -209,7 +164,7 @@ var hostConfig = {
|
|
|
209
164
|
getPublicInstance: (instance) => instance,
|
|
210
165
|
getRootHostContext: () => null,
|
|
211
166
|
insertBefore: (parentInstance, child, beforeChild) => {
|
|
212
|
-
if (parentInstance instanceof
|
|
167
|
+
if (parentInstance instanceof _base.BaseParent) {
|
|
213
168
|
parentInstance.insertBefore(child, beforeChild);
|
|
214
169
|
} else {
|
|
215
170
|
throw new Error(`Unexpected Parent: ${parentInstance}`);
|
|
@@ -234,7 +189,7 @@ var hostConfig = {
|
|
|
234
189
|
}
|
|
235
190
|
},
|
|
236
191
|
removeChild(parentInstance, child) {
|
|
237
|
-
if (parentInstance instanceof
|
|
192
|
+
if (parentInstance instanceof _base.BaseParent) {
|
|
238
193
|
parentInstance.removeChild(child);
|
|
239
194
|
} else {
|
|
240
195
|
throw new Error(`Unexpected Parent: ${parentInstance}`);
|
|
@@ -261,7 +216,7 @@ var hostConfig = {
|
|
|
261
216
|
console.log("Not-implemented: unhideTextInstance");
|
|
262
217
|
}
|
|
263
218
|
};
|
|
264
|
-
var reconciler = (0,
|
|
219
|
+
var reconciler = _reactreconciler2.default.call(void 0, hostConfig);
|
|
265
220
|
var ToolkitRenderer = {
|
|
266
221
|
renderGroup: (component, container) => {
|
|
267
222
|
const root = reconciler.createContainer(container, 0, false, null);
|
|
@@ -273,18 +228,17 @@ var ToolkitRenderer = {
|
|
|
273
228
|
ToolkitRenderer.renderGroup(component, group);
|
|
274
229
|
}
|
|
275
230
|
};
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
});
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
exports.Button = Button; exports.Group = Group; exports.GroupHeader = GroupHeader; exports.Label = Label; exports.Rect = Rect; exports.SliderButton = SliderButton; exports.Switch = Switch; exports.Tab = Tab; exports.Tabs = Tabs; exports.TextInput = TextInput; exports.Timeline = Timeline; exports.ToolkitRenderer = ToolkitRenderer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcanejs/react-toolkit",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Build web-accessible control interfaces for your long-running Node.js processes",
|
|
6
6
|
"keywords": [
|
|
@@ -39,7 +39,6 @@
|
|
|
39
39
|
"@types/react": "^18",
|
|
40
40
|
"@types/react-reconciler": "^0.28.8",
|
|
41
41
|
"eslint": "^8.57.0",
|
|
42
|
-
"react-reconciler": "^0.28.0",
|
|
43
42
|
"tsup": "^8.1.0",
|
|
44
43
|
"typescript": "^5.3.3",
|
|
45
44
|
"zod": "^3.23.8",
|
|
@@ -49,7 +48,8 @@
|
|
|
49
48
|
"dependencies": {
|
|
50
49
|
"lodash": "^4.17.21",
|
|
51
50
|
"react": "^18",
|
|
52
|
-
"
|
|
51
|
+
"react-reconciler": "0.28.0",
|
|
52
|
+
"@arcanejs/toolkit": "^0.2.2"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"zod": "^3.23.8"
|