rask-ui 0.28.3 → 0.29.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.
Files changed (65) hide show
  1. package/README.md +1 -1
  2. package/dist/component.d.ts +4 -3
  3. package/dist/component.d.ts.map +1 -1
  4. package/dist/component.js +37 -57
  5. package/dist/index.d.ts +0 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +0 -1
  8. package/dist/render.js +2 -2
  9. package/dist/scheduler.d.ts +2 -3
  10. package/dist/scheduler.d.ts.map +1 -1
  11. package/dist/scheduler.js +31 -104
  12. package/dist/tests/batch.test.js +202 -12
  13. package/dist/tests/createContext.test.js +50 -37
  14. package/dist/tests/error.test.js +25 -12
  15. package/dist/tests/renderCount.test.d.ts +2 -0
  16. package/dist/tests/renderCount.test.d.ts.map +1 -0
  17. package/dist/tests/renderCount.test.js +95 -0
  18. package/dist/tests/scopeEnforcement.test.d.ts +2 -0
  19. package/dist/tests/scopeEnforcement.test.d.ts.map +1 -0
  20. package/dist/tests/scopeEnforcement.test.js +157 -0
  21. package/dist/tests/useAction.test.d.ts +2 -0
  22. package/dist/tests/useAction.test.d.ts.map +1 -0
  23. package/dist/tests/useAction.test.js +132 -0
  24. package/dist/tests/useAsync.test.d.ts +2 -0
  25. package/dist/tests/useAsync.test.d.ts.map +1 -0
  26. package/dist/tests/useAsync.test.js +499 -0
  27. package/dist/tests/useDerived.test.d.ts +2 -0
  28. package/dist/tests/useDerived.test.d.ts.map +1 -0
  29. package/dist/tests/useDerived.test.js +407 -0
  30. package/dist/tests/useEffect.test.d.ts +2 -0
  31. package/dist/tests/useEffect.test.d.ts.map +1 -0
  32. package/dist/tests/useEffect.test.js +600 -0
  33. package/dist/tests/useLookup.test.d.ts +2 -0
  34. package/dist/tests/useLookup.test.d.ts.map +1 -0
  35. package/dist/tests/useLookup.test.js +299 -0
  36. package/dist/tests/useRef.test.d.ts +2 -0
  37. package/dist/tests/useRef.test.d.ts.map +1 -0
  38. package/dist/tests/useRef.test.js +189 -0
  39. package/dist/tests/useState.test.d.ts +2 -0
  40. package/dist/tests/useState.test.d.ts.map +1 -0
  41. package/dist/tests/useState.test.js +178 -0
  42. package/dist/tests/useSuspend.test.d.ts +2 -0
  43. package/dist/tests/useSuspend.test.d.ts.map +1 -0
  44. package/dist/tests/useSuspend.test.js +752 -0
  45. package/dist/tests/useView.test.d.ts +2 -0
  46. package/dist/tests/useView.test.d.ts.map +1 -0
  47. package/dist/tests/useView.test.js +305 -0
  48. package/dist/useAsync.d.ts.map +1 -1
  49. package/dist/useAsync.js +12 -11
  50. package/dist/useDerived.d.ts +1 -1
  51. package/dist/useDerived.d.ts.map +1 -1
  52. package/dist/useDerived.js +9 -63
  53. package/dist/useEffect.d.ts.map +1 -1
  54. package/dist/useEffect.js +4 -19
  55. package/dist/useLookup.d.ts.map +1 -1
  56. package/dist/useLookup.js +9 -14
  57. package/dist/useRef.d.ts.map +1 -1
  58. package/dist/useRef.js +4 -8
  59. package/dist/useRouter.d.ts.map +1 -1
  60. package/dist/useRouter.js +4 -8
  61. package/dist/useState.d.ts +0 -1
  62. package/dist/useState.d.ts.map +1 -1
  63. package/dist/useState.js +2 -100
  64. package/dist/useSuspend.d.ts.map +1 -1
  65. package/package.json +1 -1
package/dist/useState.js CHANGED
@@ -1,6 +1,4 @@
1
- import { getCurrentComponent } from "./component";
2
- import { INSPECT_MARKER, INSPECTOR_ENABLED } from "./inspect";
3
- import { getCurrentObserver, Signal } from "./observation";
1
+ import { observable } from "mobx";
4
2
  export function assignState(state, newState) {
5
3
  return Object.assign(state, newState);
6
4
  }
@@ -29,101 +27,5 @@ export function assignState(state, newState) {
29
27
  * @returns A reactive proxy of the state object
30
28
  */
31
29
  export function useState(state) {
32
- if (getCurrentComponent()?.isRendering) {
33
- throw new Error("useState cannot be called during render. Call it in component setup or globally.");
34
- }
35
- return getProxy(state, {});
36
- }
37
- const proxyCache = new WeakMap();
38
- export const PROXY_MARKER = Symbol("isProxy");
39
- function getProxy(value, notifyInspectorRef) {
40
- // Check if already a proxy to avoid double-wrapping
41
- if (PROXY_MARKER in value) {
42
- return value;
43
- }
44
- if (proxyCache.has(value)) {
45
- return proxyCache.get(value);
46
- }
47
- const signals = {};
48
- const proxy = new Proxy(value, {
49
- has(target, key) {
50
- // Support the "in" operator check for PROXY_MARKER
51
- if (key === PROXY_MARKER) {
52
- return true;
53
- }
54
- if (INSPECTOR_ENABLED && key === INSPECT_MARKER) {
55
- return true;
56
- }
57
- return Reflect.has(target, key);
58
- },
59
- get(target, key) {
60
- // Mark this as a proxy to prevent double-wrapping
61
- if (key === PROXY_MARKER) {
62
- return true;
63
- }
64
- if (INSPECTOR_ENABLED && key === INSPECT_MARKER) {
65
- return !notifyInspectorRef.current;
66
- }
67
- const value = Reflect.get(target, key);
68
- if (typeof key === "symbol" || typeof value === "function") {
69
- return value;
70
- }
71
- const observer = getCurrentObserver();
72
- if (observer) {
73
- const signal = (signals[key] = signals[key] || new Signal());
74
- observer.subscribeSignal(signal);
75
- }
76
- if (Array.isArray(value) ||
77
- (typeof value === "object" && value !== null)) {
78
- return getProxy(value, INSPECTOR_ENABLED && notifyInspectorRef.current
79
- ? {
80
- current: {
81
- notify: notifyInspectorRef.current.notify,
82
- path: notifyInspectorRef.current.path.concat(key),
83
- },
84
- }
85
- : notifyInspectorRef);
86
- }
87
- return value;
88
- },
89
- set(target, key, newValue) {
90
- if (INSPECTOR_ENABLED && key === INSPECT_MARKER) {
91
- Object.defineProperty(notifyInspectorRef, "current", {
92
- get() {
93
- return newValue.current;
94
- },
95
- });
96
- return Reflect.set(target, key, newValue);
97
- }
98
- if (typeof key === "symbol") {
99
- return Reflect.set(target, key, newValue);
100
- }
101
- const oldValue = Reflect.get(target, key);
102
- const setResult = Reflect.set(target, key, newValue);
103
- // We only notify if actual change, though array length actually updates under the hood
104
- if (newValue !== oldValue || (Array.isArray(value) && key === "length")) {
105
- const signal = signals[key];
106
- signal?.notify();
107
- }
108
- if (INSPECTOR_ENABLED) {
109
- notifyInspectorRef.current?.notify({
110
- type: "mutation",
111
- path: notifyInspectorRef.current.path,
112
- value: newValue,
113
- });
114
- }
115
- return setResult;
116
- },
117
- deleteProperty(target, key) {
118
- if (typeof key === "symbol") {
119
- return Reflect.deleteProperty(target, key);
120
- }
121
- const signal = signals[key];
122
- signal?.notify();
123
- delete signals[key];
124
- return Reflect.deleteProperty(target, key);
125
- },
126
- });
127
- proxyCache.set(value, proxy);
128
- return proxy;
30
+ return observable(state);
129
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSuspend.d.ts","sourceRoot":"","sources":["../src/useSuspend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAC;AAI3D,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IACjD,CAAC;IACC,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;CACrB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,IAAI,CAAC;CACpB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACtC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;CACrB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,IAAI,CAAC;CACpB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACtC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC;CACrB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACtC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,CAAC;AAEP,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,mBA0DlE"}
1
+ {"version":3,"file":"useSuspend.d.ts","sourceRoot":"","sources":["../src/useSuspend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,YAAY,CAAC;AAIjD,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IACjD,CAAC;IACC,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;CACrB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,IAAI,CAAC;CACpB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACtC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;CACrB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,IAAI,CAAC;CACpB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACtC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,GACF,CAAC;IACC,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC;CACrB,GAAG;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,GACpD,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GACtC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC,CAAC;AAEP,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,mBA0DlE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rask-ui",
3
- "version": "0.28.3",
3
+ "version": "0.29.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",