@cleanweb/oore 2.0.0-alpha.34 → 2.0.0-alpha.35
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/build/base/index.d.ts +3 -3
- package/build/base/index.js +19 -3
- package/build/base/merged-state.d.ts +1 -0
- package/build/base/merged-state.js +58 -30
- package/build/base/methods.d.ts +6 -5
- package/build/base/methods.js +28 -19
- package/build/base/state/class-types.d.ts +2 -2
- package/build/base/state/class-types.js +2 -1
- package/build/base/state/class.d.ts +1 -1
- package/build/base/state/class.js +72 -45
- package/build/base/state/hook-types.d.ts +1 -1
- package/build/base/state/hook-types.js +2 -1
- package/build/base/state/hooks.d.ts +1 -1
- package/build/base/state/hooks.js +16 -8
- package/build/base/state/index.d.ts +6 -5
- package/build/base/state/index.js +32 -3
- package/build/classy/class/index.d.ts +5 -18
- package/build/classy/class/index.js +87 -98
- package/build/classy/class/types/extractor.d.ts +1 -1
- package/build/classy/class/types/extractor.js +2 -1
- package/build/classy/class/utils/function-name.js +5 -1
- package/build/classy/index.d.ts +3 -3
- package/build/classy/index.js +19 -3
- package/build/classy/instance/index.d.ts +4 -4
- package/build/classy/instance/index.js +88 -58
- package/build/classy/instance/mount-callbacks.d.ts +1 -1
- package/build/classy/instance/mount-callbacks.js +12 -8
- package/build/classy/instance/types/hook.d.ts +1 -1
- package/build/classy/instance/types/hook.js +2 -1
- package/build/classy/logic/index.d.ts +2 -2
- package/build/classy/logic/index.js +32 -22
- package/build/classy/logic/types/hook.d.ts +1 -1
- package/build/classy/logic/types/hook.js +2 -1
- package/build/docs-src/api/base-classes.d.ts +3 -3
- package/build/docs-src/api/base-classes.js +9 -3
- package/build/docs-src/api/index.d.ts +8 -8
- package/build/docs-src/api/index.js +39 -8
- package/build/docs-src/api/references.d.ts +5 -5
- package/build/docs-src/api/references.js +31 -5
- package/build/globals.d.ts +83 -130
- package/build/globals.js +4 -0
- package/build/helpers/errors.js +5 -1
- package/build/helpers/index.d.ts +4 -7
- package/build/helpers/index.js +23 -8
- package/build/helpers/mount-state.js +10 -6
- package/build/helpers/rerender.js +16 -12
- package/build/helpers/type-guards.js +6 -2
- package/build/helpers/use-component/index.d.ts +1 -1
- package/build/helpers/use-component/index.js +9 -5
- package/build/helpers/use-component/types.js +2 -1
- package/build/index.d.ts +4 -3
- package/build/index.js +19 -3
- package/build/slots/hook.d.ts +2 -2
- package/build/slots/hook.js +78 -44
- package/build/slots/index.d.ts +1 -1
- package/build/slots/index.js +17 -1
- package/build/slots/types.d.ts +14 -11
- package/build/slots/types.js +2 -1
- package/build/tsconfig.json +6 -9
- package/package.json +11 -31
- package/build/_cjs/base/index.d.ts +0 -3
- package/build/_cjs/base/index.js +0 -19
- package/build/_cjs/base/merged-state.d.ts +0 -19
- package/build/_cjs/base/merged-state.js +0 -60
- package/build/_cjs/base/methods.d.ts +0 -58
- package/build/_cjs/base/methods.js +0 -95
- package/build/_cjs/base/state/class-types.d.ts +0 -20
- package/build/_cjs/base/state/class-types.js +0 -2
- package/build/_cjs/base/state/class.d.ts +0 -69
- package/build/_cjs/base/state/class.js +0 -129
- package/build/_cjs/base/state/hook-types.d.ts +0 -32
- package/build/_cjs/base/state/hook-types.js +0 -2
- package/build/_cjs/base/state/hooks.d.ts +0 -12
- package/build/_cjs/base/state/hooks.js +0 -41
- package/build/_cjs/base/state/index.d.ts +0 -8
- package/build/_cjs/base/state/index.js +0 -34
- package/build/_cjs/classy/class/index.d.ts +0 -128
- package/build/_cjs/classy/class/index.js +0 -176
- package/build/_cjs/classy/class/types/extractor.d.ts +0 -5
- package/build/_cjs/classy/class/types/extractor.js +0 -2
- package/build/_cjs/classy/class/utils/function-name.d.ts +0 -2
- package/build/_cjs/classy/class/utils/function-name.js +0 -17
- package/build/_cjs/classy/index.d.ts +0 -3
- package/build/_cjs/classy/index.js +0 -19
- package/build/_cjs/classy/instance/index.d.ts +0 -144
- package/build/_cjs/classy/instance/index.js +0 -177
- package/build/_cjs/classy/instance/mount-callbacks.d.ts +0 -5
- package/build/_cjs/classy/instance/mount-callbacks.js +0 -30
- package/build/_cjs/classy/instance/types/hook.d.ts +0 -13
- package/build/_cjs/classy/instance/types/hook.js +0 -2
- package/build/_cjs/classy/logic/index.d.ts +0 -116
- package/build/_cjs/classy/logic/index.js +0 -123
- package/build/_cjs/classy/logic/types/hook.d.ts +0 -16
- package/build/_cjs/classy/logic/types/hook.js +0 -2
- package/build/_cjs/docs-src/api/base-classes.d.ts +0 -3
- package/build/_cjs/docs-src/api/base-classes.js +0 -9
- package/build/_cjs/docs-src/api/index.d.ts +0 -13
- package/build/_cjs/docs-src/api/index.js +0 -44
- package/build/_cjs/docs-src/api/references.d.ts +0 -5
- package/build/_cjs/docs-src/api/references.js +0 -31
- package/build/_cjs/helpers/debounce/index.d.ts +0 -55
- package/build/_cjs/helpers/debounce/index.js +0 -111
- package/build/_cjs/helpers/debounce/react-state.d.ts +0 -14
- package/build/_cjs/helpers/debounce/react-state.js +0 -32
- package/build/_cjs/helpers/errors.d.ts +0 -10
- package/build/_cjs/helpers/errors.js +0 -21
- package/build/_cjs/helpers/index.d.ts +0 -16
- package/build/_cjs/helpers/index.js +0 -34
- package/build/_cjs/helpers/mount-state.d.ts +0 -5
- package/build/_cjs/helpers/mount-state.js +0 -25
- package/build/_cjs/helpers/object-gate.d.ts +0 -74
- package/build/_cjs/helpers/object-gate.js +0 -67
- package/build/_cjs/helpers/rerender.d.ts +0 -24
- package/build/_cjs/helpers/rerender.js +0 -42
- package/build/_cjs/helpers/type-guards.d.ts +0 -1
- package/build/_cjs/helpers/type-guards.js +0 -8
- package/build/_cjs/helpers/use-component/index.d.ts +0 -6
- package/build/_cjs/helpers/use-component/index.js +0 -17
- package/build/_cjs/helpers/use-component/types.d.ts +0 -22
- package/build/_cjs/helpers/use-component/types.js +0 -2
- package/build/_cjs/index.d.ts +0 -3
- package/build/_cjs/index.js +0 -19
- package/build/_cjs/slots/hook.d.ts +0 -20
- package/build/_cjs/slots/hook.js +0 -147
- package/build/_cjs/slots/index.d.ts +0 -1
- package/build/_cjs/slots/index.js +0 -17
- package/build/_cjs/slots/types.d.ts +0 -128
- package/build/_cjs/slots/types.js +0 -2
- package/build/helpers/debounce/index.d.ts +0 -55
- package/build/helpers/debounce/index.js +0 -107
- package/build/helpers/debounce/react-state.d.ts +0 -14
- package/build/helpers/debounce/react-state.js +0 -29
- package/build/helpers/object-gate.d.ts +0 -74
- package/build/helpers/object-gate.js +0 -64
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLogic = exports.ComponentLogic = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var state_1 = require("../../base/state");
|
|
3
6
|
/**
|
|
4
7
|
* Base class for a class that holds methods to be used in a function component.
|
|
5
8
|
*
|
|
@@ -13,14 +16,14 @@ import { useCleanState } from '../../base/state/index.js';
|
|
|
13
16
|
*
|
|
14
17
|
* @typeParam TProps - {@include ./types/tprops.md}
|
|
15
18
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
var ComponentLogic = /** @class */ (function () {
|
|
20
|
+
function ComponentLogic() {
|
|
18
21
|
/**
|
|
19
22
|
* Called before each instance of your component is mounted.
|
|
20
23
|
* It receives the initial `props` object and should return
|
|
21
24
|
* an object with the initial values for your component's state.
|
|
22
25
|
*/
|
|
23
|
-
this.getInitialState = (props)
|
|
26
|
+
this.getInitialState = function (props) { return ({}); };
|
|
24
27
|
/**
|
|
25
28
|
* Call React hooks from here. If your component needs
|
|
26
29
|
* access to values return from the hooks you call,
|
|
@@ -29,7 +32,7 @@ export class ComponentLogic {
|
|
|
29
32
|
* The returned object will be accessible as {@link hooks | `this.hooks`} within
|
|
30
33
|
* your component class.
|
|
31
34
|
*/
|
|
32
|
-
this.useHooks = ()
|
|
35
|
+
this.useHooks = function () { };
|
|
33
36
|
/**
|
|
34
37
|
* Persist class members during HMR. {@include ./hrm-preserve-keys.md}
|
|
35
38
|
* @privateRemarks
|
|
@@ -37,7 +40,9 @@ export class ComponentLogic {
|
|
|
37
40
|
*/
|
|
38
41
|
this._hmrPreserveKeys = [];
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
return ComponentLogic;
|
|
44
|
+
}());
|
|
45
|
+
exports.ComponentLogic = ComponentLogic;
|
|
41
46
|
;
|
|
42
47
|
/**
|
|
43
48
|
* Returns an instance of the provided class, which holds methods for your component and
|
|
@@ -47,45 +52,50 @@ export class ComponentLogic {
|
|
|
47
52
|
*
|
|
48
53
|
* @see https://cleanjsweb.github.io/neat-react/functions/API.useLogic.html
|
|
49
54
|
*/
|
|
50
|
-
|
|
55
|
+
var useLogic = function () {
|
|
51
56
|
var _a;
|
|
52
|
-
|
|
57
|
+
var args = [];
|
|
58
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
59
|
+
args[_i] = arguments[_i];
|
|
60
|
+
}
|
|
61
|
+
var Logic = args[0], _b = args[1], props = _b === void 0 ? {} : _b;
|
|
53
62
|
// In production, we only use the latestInstance the first time, and it's ignored every other time.
|
|
54
63
|
// This means changing the class at runtime will have no effect in production.
|
|
55
64
|
// latestInstance is only extracted into a separate variable for use in dev mode during HMR.
|
|
56
|
-
|
|
65
|
+
var latestInstance = (0, react_1.useMemo)(function () { return new Logic(); }, [Logic]);
|
|
57
66
|
// const latestInstance = useMemo(() => new Logic(), []);
|
|
58
|
-
|
|
59
|
-
|
|
67
|
+
var instanceRef = (0, react_1.useRef)(latestInstance);
|
|
68
|
+
var refreshState = function () {
|
|
60
69
|
var _a;
|
|
61
70
|
// @ts-expect-error
|
|
62
71
|
instanceRef.current.props = props;
|
|
63
72
|
// @ts-expect-error
|
|
64
|
-
instanceRef.current.state = useCleanState(instanceRef.current.getInitialState, props);
|
|
73
|
+
instanceRef.current.state = (0, state_1.useCleanState)(instanceRef.current.getInitialState, props);
|
|
65
74
|
// @ts-expect-error
|
|
66
75
|
instanceRef.current.hooks = (_a = instanceRef.current.useHooks()) !== null && _a !== void 0 ? _a : {};
|
|
67
76
|
};
|
|
68
77
|
if (process.env.NODE_ENV === 'development' && instanceRef.current !== latestInstance) {
|
|
69
|
-
|
|
70
|
-
latestInstance._hmrPreserveKeys.forEach((_key)
|
|
71
|
-
|
|
78
|
+
var oldInstance_1 = instanceRef.current;
|
|
79
|
+
latestInstance._hmrPreserveKeys.forEach(function (_key) {
|
|
80
|
+
var key = _key;
|
|
72
81
|
// @ts-expect-error We're assigning to readonly properties. Also, Typescript doesn't know that the type of the left and right side will always match, due to the dynamic access.
|
|
73
|
-
latestInstance[key] =
|
|
82
|
+
latestInstance[key] = oldInstance_1[key];
|
|
74
83
|
});
|
|
75
|
-
Reflect.ownKeys(
|
|
76
|
-
|
|
77
|
-
delete
|
|
84
|
+
Reflect.ownKeys(oldInstance_1).forEach(function (_key) {
|
|
85
|
+
var key = _key;
|
|
86
|
+
delete oldInstance_1[key];
|
|
78
87
|
});
|
|
79
|
-
Object.setPrototypeOf(
|
|
88
|
+
Object.setPrototypeOf(oldInstance_1, latestInstance);
|
|
80
89
|
instanceRef.current = latestInstance;
|
|
81
90
|
refreshState();
|
|
82
|
-
(_a = latestInstance._onHmrUpdate) === null || _a === void 0 ? void 0 : _a.call(latestInstance,
|
|
91
|
+
(_a = latestInstance._onHmrUpdate) === null || _a === void 0 ? void 0 : _a.call(latestInstance, oldInstance_1);
|
|
83
92
|
}
|
|
84
93
|
else
|
|
85
94
|
refreshState();
|
|
86
95
|
return instanceRef.current;
|
|
87
96
|
;
|
|
88
97
|
};
|
|
98
|
+
exports.useLogic = useLogic;
|
|
89
99
|
/** /
|
|
90
100
|
testing: {
|
|
91
101
|
const a: object = {b: ''};
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ComponentMethods } from '../../base/methods
|
|
2
|
-
export { ComponentLogic } from '../../classy/logic
|
|
3
|
-
export { ComponentInstance } from '../../classy/instance
|
|
1
|
+
export { ComponentMethods } from '../../base/methods';
|
|
2
|
+
export { ComponentLogic } from '../../classy/logic';
|
|
3
|
+
export { ComponentInstance } from '../../classy/instance';
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComponentInstance = exports.ComponentLogic = exports.ComponentMethods = void 0;
|
|
4
|
+
var methods_1 = require("../../base/methods");
|
|
5
|
+
Object.defineProperty(exports, "ComponentMethods", { enumerable: true, get: function () { return methods_1.ComponentMethods; } });
|
|
6
|
+
var logic_1 = require("../../classy/logic");
|
|
7
|
+
Object.defineProperty(exports, "ComponentLogic", { enumerable: true, get: function () { return logic_1.ComponentLogic; } });
|
|
8
|
+
var instance_1 = require("../../classy/instance");
|
|
9
|
+
Object.defineProperty(exports, "ComponentInstance", { enumerable: true, get: function () { return instance_1.ComponentInstance; } });
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* API Reference
|
|
3
3
|
* @module API
|
|
4
4
|
*/
|
|
5
|
-
export { useCleanState } from '../../base/state
|
|
6
|
-
export { useMethods } from '../../base/methods
|
|
7
|
-
export { useLogic } from '../../classy/logic
|
|
8
|
-
export { useInstance } from '../../classy/instance
|
|
9
|
-
export { ClassComponent } from '../../classy/class
|
|
5
|
+
export { useCleanState } from '../../base/state';
|
|
6
|
+
export { useMethods } from '../../base/methods';
|
|
7
|
+
export { useLogic } from '../../classy/logic';
|
|
8
|
+
export { useInstance } from '../../classy/instance';
|
|
9
|
+
export { ClassComponent } from '../../classy/class';
|
|
10
10
|
/** @namespace */
|
|
11
|
-
export * as BaseClasses from './base-classes
|
|
12
|
-
export * as Helpers from '../../helpers
|
|
13
|
-
export * as References from './references
|
|
11
|
+
export * as BaseClasses from './base-classes';
|
|
12
|
+
export * as Helpers from '../../helpers';
|
|
13
|
+
export * as References from './references';
|
|
@@ -1,13 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* API Reference
|
|
3
4
|
* @module API
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.References = exports.Helpers = exports.BaseClasses = exports.ClassComponent = exports.useInstance = exports.useLogic = exports.useMethods = exports.useCleanState = void 0;
|
|
31
|
+
var state_1 = require("../../base/state");
|
|
32
|
+
Object.defineProperty(exports, "useCleanState", { enumerable: true, get: function () { return state_1.useCleanState; } });
|
|
33
|
+
var methods_1 = require("../../base/methods");
|
|
34
|
+
Object.defineProperty(exports, "useMethods", { enumerable: true, get: function () { return methods_1.useMethods; } });
|
|
35
|
+
var logic_1 = require("../../classy/logic");
|
|
36
|
+
Object.defineProperty(exports, "useLogic", { enumerable: true, get: function () { return logic_1.useLogic; } });
|
|
37
|
+
var instance_1 = require("../../classy/instance");
|
|
38
|
+
Object.defineProperty(exports, "useInstance", { enumerable: true, get: function () { return instance_1.useInstance; } });
|
|
39
|
+
var class_1 = require("../../classy/class");
|
|
40
|
+
Object.defineProperty(exports, "ClassComponent", { enumerable: true, get: function () { return class_1.ClassComponent; } });
|
|
10
41
|
/** @namespace */
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
42
|
+
exports.BaseClasses = __importStar(require("./base-classes"));
|
|
43
|
+
exports.Helpers = __importStar(require("../../helpers"));
|
|
44
|
+
exports.References = __importStar(require("./references"));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as $CleanState from '../../base/state
|
|
2
|
-
export * as $ComponentMethods from '../../base/methods
|
|
3
|
-
export * as ComponentLogic from '../../classy/logic
|
|
4
|
-
export * as ComponentInstance from '../../classy/instance
|
|
5
|
-
export * as ClassComponent from '../../classy/class
|
|
1
|
+
export * as $CleanState from '../../base/state';
|
|
2
|
+
export * as $ComponentMethods from '../../base/methods';
|
|
3
|
+
export * as ComponentLogic from '../../classy/logic';
|
|
4
|
+
export * as ComponentInstance from '../../classy/instance';
|
|
5
|
+
export * as ClassComponent from '../../classy/class';
|
|
@@ -1,5 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.ClassComponent = exports.ComponentInstance = exports.ComponentLogic = exports.$ComponentMethods = exports.$CleanState = void 0;
|
|
27
|
+
exports.$CleanState = __importStar(require("../../base/state"));
|
|
28
|
+
exports.$ComponentMethods = __importStar(require("../../base/methods"));
|
|
29
|
+
exports.ComponentLogic = __importStar(require("../../classy/logic"));
|
|
30
|
+
exports.ComponentInstance = __importStar(require("../../classy/instance"));
|
|
31
|
+
exports.ClassComponent = __importStar(require("../../classy/class"));
|
package/build/globals.d.ts
CHANGED
|
@@ -1,131 +1,84 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
type
|
|
36
|
-
type
|
|
37
|
-
|
|
38
|
-
type
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
interface
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
type NotNullish = {};
|
|
84
|
-
type NonNullish = {};
|
|
85
|
-
type NonPrimitive = object;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Describes an object that has no keys,
|
|
90
|
-
* except for a secret unique symbol key,
|
|
91
|
-
* whose value type is the union `never | undefuned`.
|
|
92
|
-
*
|
|
93
|
-
* Having a single key allows the object to throw type errors
|
|
94
|
-
* of the form:
|
|
95
|
-
* ```
|
|
96
|
-
* Type `A` has no properties in common with `EmptyObject`.
|
|
97
|
-
* ```
|
|
98
|
-
* This may provide a slightly stricter type checking than simply
|
|
99
|
-
* using the non-nullish (`{}`) or non-primitive (`object`)
|
|
100
|
-
* built-in types.
|
|
101
|
-
*
|
|
102
|
-
* Note: `EmptyObject` is not assignable to `NeverObject`
|
|
103
|
-
* because it has a key whose value type includes `undefined`,
|
|
104
|
-
* but `NeverObject` keys can only have a type of `never`.
|
|
105
|
-
*/
|
|
106
|
-
interface EmptyObject {
|
|
107
|
-
[UniqueSecretSymbolKey]?: never;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Describes an object that can have any key, but all keys have
|
|
112
|
-
* a type of `never`. This effectively prevents any value
|
|
113
|
-
* from ever being stored on the object. The object is therefore
|
|
114
|
-
* guaranteed to always be empty.
|
|
115
|
-
*/
|
|
116
|
-
interface NeverObject {
|
|
117
|
-
[key: keyof any]: never;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
type valueof<TObject> = TObject[keyof TObject];
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
//////////////////
|
|
124
|
-
interface Window {
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
namespace NodeJS {
|
|
128
|
-
interface ProcessEnv {
|
|
129
|
-
NODE_ENV: 'development' | 'production' | 'test',
|
|
130
|
-
}
|
|
1
|
+
declare const UniqueSecretSymbolKey: unique symbol;
|
|
2
|
+
/** /testing: {
|
|
3
|
+
const mySymbol = Symbol('asdfgh') as symbol;
|
|
4
|
+
|
|
5
|
+
const tt = {
|
|
6
|
+
// [mySymbol]: '' as never,
|
|
7
|
+
// [UniqueSecretSymbolKey]: '',
|
|
8
|
+
// '': '',
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let TT: EmptyObject = {};
|
|
12
|
+
TT = tt;
|
|
13
|
+
}/**/
|
|
14
|
+
declare global {
|
|
15
|
+
type Optional<BaseType, AllowNull extends boolean = true> = (AllowNull extends true ? BaseType | undefined | null : BaseType | undefined);
|
|
16
|
+
type Awaitable<Type> = Type | Promise<Type>;
|
|
17
|
+
type Constructor<TInstance extends any = any, TParams extends any[] = never[]> = new (...args: TParams) => TInstance;
|
|
18
|
+
/**
|
|
19
|
+
* @example
|
|
20
|
+
* ```js
|
|
21
|
+
* const getNumber: AsyncFunction<number> = async () => {
|
|
22
|
+
* return 5;
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
type AsyncFunction<TReturnValue extends any = void, Params extends any[] = never[]> = (...params: Params) => Promise<TReturnValue>;
|
|
27
|
+
/**
|
|
28
|
+
* A function that takes no arguments and returns nothing.
|
|
29
|
+
* Pass a type argument to set whether `async` and/or `sync` functions are allowed.
|
|
30
|
+
*/
|
|
31
|
+
interface IVoidFunction<AsyncType extends 'async' | 'sync' | 'both' = 'both'> {
|
|
32
|
+
(): AsyncType extends 'async' ? Promise<void> : AsyncType extends 'sync' ? void : void | Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
type AnyFunction = (...args: any) => any;
|
|
35
|
+
type FunctionType = AnyFunction;
|
|
36
|
+
type TFunction = AnyFunction;
|
|
37
|
+
/** @deprecated Use {@link NonNullish} */
|
|
38
|
+
type NotNullish = {};
|
|
39
|
+
type NonNullish = {};
|
|
40
|
+
type NonPrimitive = object;
|
|
41
|
+
/**
|
|
42
|
+
* Describes an object that has no keys,
|
|
43
|
+
* except for a secret unique symbol key,
|
|
44
|
+
* whose value type is the union `never | undefuned`.
|
|
45
|
+
*
|
|
46
|
+
* Having a single key allows the object to throw type errors
|
|
47
|
+
* of the form:
|
|
48
|
+
* ```
|
|
49
|
+
* Type `A` has no properties in common with `EmptyObject`.
|
|
50
|
+
* ```
|
|
51
|
+
* This may provide a slightly stricter type checking than simply
|
|
52
|
+
* using the non-nullish (`{}`) or non-primitive (`object`)
|
|
53
|
+
* built-in types.
|
|
54
|
+
*
|
|
55
|
+
* Note: `EmptyObject` is not assignable to `NeverObject`
|
|
56
|
+
* because it has a key whose value type includes `undefined`,
|
|
57
|
+
* but `NeverObject` keys can only have a type of `never`.
|
|
58
|
+
*/
|
|
59
|
+
interface EmptyObject {
|
|
60
|
+
[UniqueSecretSymbolKey]?: never;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Describes an object that can have any key, but all keys have
|
|
64
|
+
* a type of `never`. This effectively prevents any value
|
|
65
|
+
* from ever being stored on the object. The object is therefore
|
|
66
|
+
* guaranteed to always be empty.
|
|
67
|
+
*/
|
|
68
|
+
interface NeverObject {
|
|
69
|
+
[key: keyof any]: never;
|
|
70
|
+
}
|
|
71
|
+
type valueof<TObject> = TObject[keyof TObject];
|
|
72
|
+
interface Window {
|
|
73
|
+
}
|
|
74
|
+
namespace JSX {
|
|
75
|
+
interface IntrinsicElements {
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
namespace NodeJS {
|
|
79
|
+
interface ProcessEnv {
|
|
80
|
+
NODE_ENV: 'development' | 'production' | 'test';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
131
83
|
}
|
|
84
|
+
export {};
|
package/build/globals.js
ADDED
package/build/helpers/errors.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.throwDevError = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* Throw an error with the provided message
|
|
3
6
|
* only when `NODE_ENV` is *not* 'production'.
|
|
@@ -7,7 +10,7 @@
|
|
|
7
10
|
* Useful for enforcing certain conditions in development
|
|
8
11
|
* while failing more gracefully in production.
|
|
9
12
|
*/
|
|
10
|
-
|
|
13
|
+
var throwDevError = function (message) {
|
|
11
14
|
if (process.env.NODE_ENV === 'production') {
|
|
12
15
|
console.warn(message);
|
|
13
16
|
}
|
|
@@ -15,3 +18,4 @@ export const throwDevError = (message) => {
|
|
|
15
18
|
throw new Error(message);
|
|
16
19
|
}
|
|
17
20
|
};
|
|
21
|
+
exports.throwDevError = throwDevError;
|
package/build/helpers/index.d.ts
CHANGED
|
@@ -2,13 +2,10 @@
|
|
|
2
2
|
* <!-- @ mergeModuleWith API -->
|
|
3
3
|
* @module Helpers
|
|
4
4
|
*/
|
|
5
|
-
export * from './mount-state
|
|
6
|
-
export * from './rerender
|
|
7
|
-
export * from './use-component
|
|
8
|
-
export * from './
|
|
9
|
-
export * from './debounce/index.js';
|
|
10
|
-
export * from './debounce/react-state.js';
|
|
11
|
-
export * from './type-guards.js';
|
|
5
|
+
export * from './mount-state';
|
|
6
|
+
export * from './rerender';
|
|
7
|
+
export * from './use-component';
|
|
8
|
+
export * from './type-guards';
|
|
12
9
|
/**
|
|
13
10
|
* An empty function.
|
|
14
11
|
* It returns (void) without performing any operations.
|
package/build/helpers/index.js
CHANGED
|
@@ -1,16 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* <!-- @ mergeModuleWith API -->
|
|
3
4
|
* @module Helpers
|
|
4
5
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.noOp = void 0;
|
|
22
|
+
__exportStar(require("./mount-state"), exports);
|
|
23
|
+
__exportStar(require("./rerender"), exports);
|
|
24
|
+
__exportStar(require("./use-component"), exports);
|
|
25
|
+
__exportStar(require("./type-guards"), exports);
|
|
12
26
|
/**
|
|
13
27
|
* An empty function.
|
|
14
28
|
* It returns (void) without performing any operations.
|
|
15
29
|
*/
|
|
16
|
-
|
|
30
|
+
var noOp = function () { };
|
|
31
|
+
exports.noOp = noOp;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMountState = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
2
5
|
/**
|
|
3
6
|
* Returns a value that is false before the component has been mounted,
|
|
4
7
|
* then true during all subsequent rerenders.
|
|
5
8
|
*/
|
|
6
|
-
|
|
9
|
+
var useMountState = function () {
|
|
7
10
|
/**
|
|
8
11
|
* This must not be a state value. It should not be the cause of a rerender.
|
|
9
12
|
* It merely provides information about the render count,
|
|
10
13
|
* without influencing that count itself.
|
|
11
14
|
* So `mounted` should never be created with `useState`.
|
|
12
15
|
*/
|
|
13
|
-
|
|
14
|
-
useEffect(()
|
|
16
|
+
var mounted = (0, react_1.useRef)(false);
|
|
17
|
+
(0, react_1.useEffect)(function () {
|
|
15
18
|
mounted.current = true;
|
|
16
|
-
return ()
|
|
19
|
+
return function () {
|
|
17
20
|
mounted.current = false;
|
|
18
21
|
};
|
|
19
22
|
}, []);
|
|
20
|
-
return ()
|
|
23
|
+
return function () { return mounted.current; };
|
|
21
24
|
};
|
|
25
|
+
exports.useMountState = useMountState;
|