@praxisjs/decorators 0.4.3 → 0.5.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 (175) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/__tests__/component.test.js +10 -1
  3. package/dist/__tests__/component.test.js.map +1 -1
  4. package/dist/__tests__/compose.test.d.ts +2 -0
  5. package/dist/__tests__/compose.test.d.ts.map +1 -0
  6. package/dist/__tests__/compose.test.js +171 -0
  7. package/dist/__tests__/compose.test.js.map +1 -0
  8. package/dist/__tests__/events.test.js +26 -0
  9. package/dist/__tests__/events.test.js.map +1 -1
  10. package/dist/__tests__/functions.test.js +142 -47
  11. package/dist/__tests__/functions.test.js.map +1 -1
  12. package/dist/__tests__/lazy.test.js +5 -7
  13. package/dist/__tests__/lazy.test.js.map +1 -1
  14. package/dist/__tests__/memo.test.js +61 -25
  15. package/dist/__tests__/memo.test.js.map +1 -1
  16. package/dist/__tests__/resource.test.d.ts +2 -0
  17. package/dist/__tests__/resource.test.d.ts.map +1 -0
  18. package/dist/__tests__/resource.test.js +103 -0
  19. package/dist/__tests__/resource.test.js.map +1 -0
  20. package/dist/__tests__/slot.test.js +32 -0
  21. package/dist/__tests__/slot.test.js.map +1 -1
  22. package/dist/__tests__/virtual.test.js +56 -15
  23. package/dist/__tests__/virtual.test.js.map +1 -1
  24. package/dist/component/component.d.ts +1 -1
  25. package/dist/component/component.d.ts.map +1 -1
  26. package/dist/component/component.js +15 -10
  27. package/dist/component/component.js.map +1 -1
  28. package/dist/component/lazy.d.ts.map +1 -1
  29. package/dist/component/lazy.js +29 -30
  30. package/dist/component/lazy.js.map +1 -1
  31. package/dist/component/virtual.d.ts.map +1 -1
  32. package/dist/component/virtual.js +46 -50
  33. package/dist/component/virtual.js.map +1 -1
  34. package/dist/create-class-decorator.d.ts +16 -0
  35. package/dist/create-class-decorator.d.ts.map +1 -0
  36. package/dist/create-class-decorator.js +35 -0
  37. package/dist/create-class-decorator.js.map +1 -0
  38. package/dist/create-field-decorator.d.ts +14 -0
  39. package/dist/create-field-decorator.d.ts.map +1 -0
  40. package/dist/create-field-decorator.js +37 -0
  41. package/dist/create-field-decorator.js.map +1 -0
  42. package/dist/create-getter-decorator.d.ts +18 -0
  43. package/dist/create-getter-decorator.d.ts.map +1 -0
  44. package/dist/create-getter-decorator.js +15 -0
  45. package/dist/create-getter-decorator.js.map +1 -0
  46. package/dist/create-lifecycle-method-decorator.d.ts +6 -0
  47. package/dist/create-lifecycle-method-decorator.d.ts.map +1 -0
  48. package/dist/create-lifecycle-method-decorator.js +22 -0
  49. package/dist/create-lifecycle-method-decorator.js.map +1 -0
  50. package/dist/create-method-decorator.d.ts +6 -0
  51. package/dist/create-method-decorator.d.ts.map +1 -0
  52. package/dist/create-method-decorator.js +14 -0
  53. package/dist/create-method-decorator.js.map +1 -0
  54. package/dist/events/emit.d.ts +1 -1
  55. package/dist/events/emit.d.ts.map +1 -1
  56. package/dist/events/emit.js +24 -29
  57. package/dist/events/emit.js.map +1 -1
  58. package/dist/events/on-command.d.ts +1 -2
  59. package/dist/events/on-command.d.ts.map +1 -1
  60. package/dist/events/on-command.js +15 -32
  61. package/dist/events/on-command.js.map +1 -1
  62. package/dist/functions/bind.d.ts +1 -2
  63. package/dist/functions/bind.d.ts.map +1 -1
  64. package/dist/functions/bind.js +4 -11
  65. package/dist/functions/bind.js.map +1 -1
  66. package/dist/functions/debounce.d.ts +1 -2
  67. package/dist/functions/debounce.d.ts.map +1 -1
  68. package/dist/functions/debounce.js +12 -20
  69. package/dist/functions/debounce.js.map +1 -1
  70. package/dist/functions/log.d.ts +1 -2
  71. package/dist/functions/log.d.ts.map +1 -1
  72. package/dist/functions/log.js +40 -38
  73. package/dist/functions/log.js.map +1 -1
  74. package/dist/functions/memo.d.ts +1 -2
  75. package/dist/functions/memo.d.ts.map +1 -1
  76. package/dist/functions/memo.js +15 -27
  77. package/dist/functions/memo.js.map +1 -1
  78. package/dist/functions/once.d.ts +1 -2
  79. package/dist/functions/once.d.ts.map +1 -1
  80. package/dist/functions/once.js +14 -12
  81. package/dist/functions/once.js.map +1 -1
  82. package/dist/functions/retry.d.ts +1 -2
  83. package/dist/functions/retry.d.ts.map +1 -1
  84. package/dist/functions/retry.js +23 -20
  85. package/dist/functions/retry.js.map +1 -1
  86. package/dist/functions/throttle.d.ts +1 -2
  87. package/dist/functions/throttle.d.ts.map +1 -1
  88. package/dist/functions/throttle.js +9 -16
  89. package/dist/functions/throttle.js.map +1 -1
  90. package/dist/functions/watch.d.ts +1 -1
  91. package/dist/functions/watch.d.ts.map +1 -1
  92. package/dist/functions/watch.js +25 -39
  93. package/dist/functions/watch.js.map +1 -1
  94. package/dist/functions/when.d.ts +1 -2
  95. package/dist/functions/when.d.ts.map +1 -1
  96. package/dist/functions/when.js +10 -26
  97. package/dist/functions/when.js.map +1 -1
  98. package/dist/index.d.ts +6 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +6 -1
  101. package/dist/index.js.map +1 -1
  102. package/dist/properties/compose.d.ts +3 -0
  103. package/dist/properties/compose.d.ts.map +1 -0
  104. package/dist/properties/compose.js +40 -0
  105. package/dist/properties/compose.js.map +1 -0
  106. package/dist/properties/computed.d.ts +1 -2
  107. package/dist/properties/computed.d.ts.map +1 -1
  108. package/dist/properties/computed.js +10 -9
  109. package/dist/properties/computed.js.map +1 -1
  110. package/dist/properties/history.d.ts.map +1 -1
  111. package/dist/properties/history.js +37 -32
  112. package/dist/properties/history.js.map +1 -1
  113. package/dist/properties/index.d.ts +2 -0
  114. package/dist/properties/index.d.ts.map +1 -1
  115. package/dist/properties/index.js +2 -0
  116. package/dist/properties/index.js.map +1 -1
  117. package/dist/properties/persisted.d.ts +1 -2
  118. package/dist/properties/persisted.d.ts.map +1 -1
  119. package/dist/properties/persisted.js +13 -29
  120. package/dist/properties/persisted.js.map +1 -1
  121. package/dist/properties/prop.d.ts +1 -2
  122. package/dist/properties/prop.d.ts.map +1 -1
  123. package/dist/properties/prop.js +21 -25
  124. package/dist/properties/prop.js.map +1 -1
  125. package/dist/properties/resource.d.ts +14 -0
  126. package/dist/properties/resource.d.ts.map +1 -0
  127. package/dist/properties/resource.js +27 -0
  128. package/dist/properties/resource.js.map +1 -0
  129. package/dist/properties/slot.d.ts +1 -2
  130. package/dist/properties/slot.d.ts.map +1 -1
  131. package/dist/properties/slot.js +15 -20
  132. package/dist/properties/slot.js.map +1 -1
  133. package/dist/properties/state.d.ts +1 -2
  134. package/dist/properties/state.d.ts.map +1 -1
  135. package/dist/properties/state.js +13 -18
  136. package/dist/properties/state.js.map +1 -1
  137. package/package.json +2 -2
  138. package/src/__tests__/component.test.ts +10 -0
  139. package/src/__tests__/compose.test.ts +202 -0
  140. package/src/__tests__/events.test.ts +32 -0
  141. package/src/__tests__/functions.test.ts +177 -46
  142. package/src/__tests__/lazy.test.ts +3 -5
  143. package/src/__tests__/memo.test.ts +76 -25
  144. package/src/__tests__/resource.test.ts +113 -0
  145. package/src/__tests__/slot.test.ts +38 -0
  146. package/src/__tests__/virtual.test.ts +26 -7
  147. package/src/component/component.ts +27 -12
  148. package/src/component/lazy.ts +33 -37
  149. package/src/component/virtual.tsx +62 -75
  150. package/src/create-class-decorator.ts +61 -0
  151. package/src/create-field-decorator.ts +66 -0
  152. package/src/create-getter-decorator.ts +52 -0
  153. package/src/create-lifecycle-method-decorator.ts +38 -0
  154. package/src/create-method-decorator.ts +26 -0
  155. package/src/events/emit.ts +22 -33
  156. package/src/events/on-command.ts +22 -47
  157. package/src/functions/bind.ts +4 -15
  158. package/src/functions/debounce.ts +11 -26
  159. package/src/functions/log.ts +40 -43
  160. package/src/functions/memo.ts +15 -45
  161. package/src/functions/once.ts +13 -16
  162. package/src/functions/retry.ts +21 -22
  163. package/src/functions/throttle.ts +9 -23
  164. package/src/functions/watch.ts +27 -43
  165. package/src/functions/when.ts +11 -36
  166. package/src/index.ts +28 -0
  167. package/src/properties/compose.ts +53 -0
  168. package/src/properties/computed.ts +11 -13
  169. package/src/properties/history.ts +42 -41
  170. package/src/properties/index.ts +2 -0
  171. package/src/properties/persisted.ts +17 -58
  172. package/src/properties/prop.ts +21 -31
  173. package/src/properties/resource.ts +34 -0
  174. package/src/properties/slot.ts +17 -30
  175. package/src/properties/state.ts +14 -24
@@ -1,30 +1,20 @@
1
- import type { StatefulComponent } from "@praxisjs/core";
2
1
  import { signal } from "@praxisjs/core/internal";
3
2
 
4
- export function State() {
5
- return function (
6
- _value: undefined,
7
- context: ClassFieldDecoratorContext<StatefulComponent>,
8
- ): void {
9
- context.addInitializer(function (this: unknown) {
10
- const instance = this as StatefulComponent & Record<string, unknown>;
11
- const name = context.name as string;
12
- const initialValue = instance[name];
13
- Reflect.deleteProperty(instance, name);
3
+ import { createFieldDecorator } from "../create-field-decorator";
14
4
 
5
+ export function State() {
6
+ return createFieldDecorator({
7
+ bind(instance, _name, initialValue) {
15
8
  const sig = signal(initialValue);
16
-
17
- Object.defineProperty(instance, name, {
18
- get() {
19
- return sig();
20
- },
21
- set(value: unknown) {
22
- instance._stateDirty = true;
23
- sig.set(value);
9
+ return {
10
+ descriptor: {
11
+ get: () => sig(),
12
+ set: (value: unknown) => {
13
+ instance._stateDirty = true;
14
+ sig.set(value);
15
+ },
24
16
  },
25
- enumerable: true,
26
- configurable: true,
27
- });
28
- });
29
- };
17
+ };
18
+ },
19
+ });
30
20
  }