@vanyamate/sec 0.2.1 → 0.2.3

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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=function(t,o){t&&o()},a=function(t,o=!0){const c={on:(n,l,s)=>(l==="onBefore"?n.onBefore((...e)=>u(o,()=>t=s(t,{args:e}))):l==="onSuccess"?n.onSuccess((e,...r)=>u(o,()=>t=s(t,{result:e,args:r}))):l==="onError"?n.onError((e,...r)=>u(o,()=>t=s(t,{error:e,args:r}))):n.onFinally((...e)=>u(o,()=>t=s(t,{args:e}))),c),get(){return t},set(n){t=n},subscribe(n){return()=>{}},enableOn(n){return n.subscribe(()=>o=!0),c},disableOn(n){return n.subscribe(()=>o=!1),c}};return c},i=function(){return{afterAll:[],beforeAll:[],other:[]}},b=function(t){const o=i(),c=i(),n=i(),l=i(),s=async function(...e){return o.beforeAll.forEach(r=>r(...e)),o.other.forEach(r=>r(...e)),o.afterAll.forEach(r=>r(...e)),t(...e).then(r=>(c.beforeAll.forEach(f=>f(r,...e)),c.other.forEach(f=>f(r,...e)),c.afterAll.forEach(f=>f(r,...e)),r)).catch(r=>{throw n.beforeAll.forEach(f=>f(r,...e)),n.other.forEach(f=>f(r,...e)),n.afterAll.forEach(f=>f(r,...e)),r}).finally(()=>{l.beforeAll.forEach(r=>r(...e)),l.other.forEach(r=>r(...e)),l.afterAll.forEach(r=>r(...e))})};return s.onBefore=(e,r)=>{switch(r){case"beforeAll":o.beforeAll.push(e);break;case"afterAll":o.afterAll.push(e);break;default:o.other.push(e)}},s.onSuccess=(e,r)=>{switch(r){case"beforeAll":c.beforeAll.push(e);break;case"afterAll":c.afterAll.push(e);break;default:c.other.push(e)}},s.onError=(e,r)=>{switch(r){case"beforeAll":n.beforeAll.push(e);break;case"afterAll":n.afterAll.push(e);break;default:n.other.push(e)}},s.onFinally=(e,r)=>{switch(r){case"beforeAll":l.beforeAll.push(e);break;case"afterAll":l.afterAll.push(e);break;default:l.other.push(e)}},s},A=function(t,o,c=!0){let n=o(...t);const l=[];t.forEach(e=>{e.subscribe(()=>{u(c,()=>{n=o(...t),l.forEach(r=>r(n))})})});const s={on:()=>{throw new Error("Cannot call 'on' on combined store")},get(){return n},set(){throw new Error("Cannot call 'set' on combined store")},subscribe(e){return l.push(e),()=>{const r=l.indexOf(e);~r&&l.splice(r,1)}},enableOn(e){return e.subscribe(()=>c=!1),s},disableOn(e){return e.subscribe(()=>c=!0),s}};return s},E=function(t){const o=[],c={on:(n,l)=>(n==="onBefore"?l.onBefore(()=>o.forEach(s=>s()),t):n==="onSuccess"?l.onSuccess(()=>o.forEach(s=>s()),t):n==="onError"?l.onError(()=>o.forEach(s=>s()),t):l.onFinally(()=>o.forEach(s=>s()),t),c),subscribe:n=>{o.push(n)}};return c},h=function(t){return()=>t},p=function(t){const o=a(!1);return t.forEach(c=>{o.on(c,"onBefore",h(!0)),o.on(c,"onFinally",h(!1))}),o};exports.combine=A;exports.effect=b;exports.enableCheck=u;exports.marker=E;exports.pending=p;exports.store=a;exports.to=h;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=function(c,n){c&&n()},a=function(c,n=!0){const f=[],s={on:(o,t,e)=>(t==="onBefore"?o.onBefore((...r)=>u(n,()=>s.set(e(c,{args:r})))):t==="onSuccess"?o.onSuccess((r,...l)=>u(n,()=>s.set(e(c,{result:r,args:l})))):t==="onError"?o.onError((r,...l)=>u(n,()=>s.set(e(c,{error:r,args:l})))):o.onFinally((...r)=>u(n,()=>s.set(e(c,{args:r})))),s),get(){return c},set(o){c=o,f.forEach(t=>t(c))},subscribe(o){return f.push(o),()=>{const t=f.indexOf(o);~t&&f.splice(t,1)}},enableOn(o){return o.subscribe(()=>n=!0),s},disableOn(o){return o.subscribe(()=>n=!1),s}};return s},i=function(){return{afterAll:[],beforeAll:[],other:[]}},b=function(c){const n=i(),f=i(),s=i(),o=i(),t=async function(...e){return n.beforeAll.forEach(r=>r(...e)),n.other.forEach(r=>r(...e)),n.afterAll.forEach(r=>r(...e)),c(...e).then(r=>(f.beforeAll.forEach(l=>l(r,...e)),f.other.forEach(l=>l(r,...e)),f.afterAll.forEach(l=>l(r,...e)),r)).catch(r=>{throw s.beforeAll.forEach(l=>l(r,...e)),s.other.forEach(l=>l(r,...e)),s.afterAll.forEach(l=>l(r,...e)),r}).finally(()=>{o.beforeAll.forEach(r=>r(...e)),o.other.forEach(r=>r(...e)),o.afterAll.forEach(r=>r(...e))})};return t.onBefore=(e,r)=>{switch(r){case"beforeAll":n.beforeAll.push(e);break;case"afterAll":n.afterAll.push(e);break;default:n.other.push(e)}},t.onSuccess=(e,r)=>{switch(r){case"beforeAll":f.beforeAll.push(e);break;case"afterAll":f.afterAll.push(e);break;default:f.other.push(e)}},t.onError=(e,r)=>{switch(r){case"beforeAll":s.beforeAll.push(e);break;case"afterAll":s.afterAll.push(e);break;default:s.other.push(e)}},t.onFinally=(e,r)=>{switch(r){case"beforeAll":o.beforeAll.push(e);break;case"afterAll":o.afterAll.push(e);break;default:o.other.push(e)}},t},A=function(c,n,f=!0){let s=n(...c);const o=[];c.forEach(e=>{e.subscribe(()=>{u(f,()=>{s=n(...c),o.forEach(r=>r(s))})})});const t={on:()=>{throw new Error("Cannot call 'on' on combined store")},get(){return s},set(){throw new Error("Cannot call 'set' on combined store")},subscribe(e){return o.push(e),()=>{const r=o.indexOf(e);~r&&o.splice(r,1)}},enableOn(e){return e.subscribe(()=>f=!1),t},disableOn(e){return e.subscribe(()=>f=!0),t}};return t},E=function(c){const n=[],f={on:(s,o)=>(s==="onBefore"?o.onBefore(()=>n.forEach(t=>t()),c):s==="onSuccess"?o.onSuccess(()=>n.forEach(t=>t()),c):s==="onError"?o.onError(()=>n.forEach(t=>t()),c):o.onFinally(()=>n.forEach(t=>t()),c),f),subscribe:s=>{n.push(s)}};return f},h=function(c){return()=>c},p=function(c){const n=a(!1);return c.forEach(f=>{n.on(f,"onBefore",h(!0)),n.on(f,"onFinally",h(!1))}),n};exports.combine=A;exports.effect=b;exports.enableCheck=u;exports.marker=E;exports.pending=p;exports.store=a;exports.to=h;
package/dist/index.js CHANGED
@@ -1,160 +1,170 @@
1
- const u = function(s, o) {
2
- s && o();
3
- }, a = function(s, o = !0) {
4
- const c = {
5
- on: (n, f, t) => (f === "onBefore" ? n.onBefore(
1
+ const u = function(c, n) {
2
+ c && n();
3
+ }, a = function(c, n = !0) {
4
+ const f = [], t = {
5
+ on: (o, s, e) => (s === "onBefore" ? o.onBefore(
6
6
  (...r) => u(
7
- o,
8
- () => s = t(s, { args: r })
7
+ n,
8
+ () => t.set(
9
+ e(c, { args: r })
10
+ )
9
11
  )
10
- ) : f === "onSuccess" ? n.onSuccess(
11
- (r, ...e) => u(
12
- o,
13
- () => s = t(s, {
14
- result: r,
15
- args: e
16
- })
12
+ ) : s === "onSuccess" ? o.onSuccess(
13
+ (r, ...l) => u(
14
+ n,
15
+ () => t.set(
16
+ e(c, {
17
+ result: r,
18
+ args: l
19
+ })
20
+ )
17
21
  )
18
- ) : f === "onError" ? n.onError(
19
- (r, ...e) => u(
20
- o,
21
- () => s = t(s, {
22
- error: r,
23
- args: e
24
- })
22
+ ) : s === "onError" ? o.onError(
23
+ (r, ...l) => u(
24
+ n,
25
+ () => t.set(
26
+ e(c, {
27
+ error: r,
28
+ args: l
29
+ })
30
+ )
25
31
  )
26
- ) : n.onFinally(
32
+ ) : o.onFinally(
27
33
  (...r) => u(
28
- o,
29
- () => s = t(s, { args: r })
34
+ n,
35
+ () => t.set(
36
+ e(c, { args: r })
37
+ )
30
38
  )
31
- ), c),
39
+ ), t),
32
40
  get() {
33
- return s;
41
+ return c;
34
42
  },
35
- set(n) {
36
- s = n;
43
+ set(o) {
44
+ c = o, f.forEach((s) => s(c));
37
45
  },
38
- subscribe(n) {
39
- return () => {
46
+ subscribe(o) {
47
+ return f.push(o), () => {
48
+ const s = f.indexOf(o);
49
+ ~s && f.splice(s, 1);
40
50
  };
41
51
  },
42
- enableOn(n) {
43
- return n.subscribe(() => o = !0), c;
52
+ enableOn(o) {
53
+ return o.subscribe(() => n = !0), t;
44
54
  },
45
- disableOn(n) {
46
- return n.subscribe(() => o = !1), c;
55
+ disableOn(o) {
56
+ return o.subscribe(() => n = !1), t;
47
57
  }
48
58
  };
49
- return c;
59
+ return t;
50
60
  }, h = function() {
51
61
  return {
52
62
  afterAll: [],
53
63
  beforeAll: [],
54
64
  other: []
55
65
  };
56
- }, b = function(s) {
57
- const o = h(), c = h(), n = h(), f = h(), t = async function(...r) {
58
- return o.beforeAll.forEach((e) => e(...r)), o.other.forEach((e) => e(...r)), o.afterAll.forEach((e) => e(...r)), s(...r).then((e) => (c.beforeAll.forEach((l) => l(e, ...r)), c.other.forEach((l) => l(e, ...r)), c.afterAll.forEach((l) => l(e, ...r)), e)).catch((e) => {
59
- throw n.beforeAll.forEach((l) => l(e, ...r)), n.other.forEach((l) => l(e, ...r)), n.afterAll.forEach((l) => l(e, ...r)), e;
66
+ }, b = function(c) {
67
+ const n = h(), f = h(), t = h(), o = h(), s = async function(...e) {
68
+ return n.beforeAll.forEach((r) => r(...e)), n.other.forEach((r) => r(...e)), n.afterAll.forEach((r) => r(...e)), c(...e).then((r) => (f.beforeAll.forEach((l) => l(r, ...e)), f.other.forEach((l) => l(r, ...e)), f.afterAll.forEach((l) => l(r, ...e)), r)).catch((r) => {
69
+ throw t.beforeAll.forEach((l) => l(r, ...e)), t.other.forEach((l) => l(r, ...e)), t.afterAll.forEach((l) => l(r, ...e)), r;
60
70
  }).finally(() => {
61
- f.beforeAll.forEach((e) => e(...r)), f.other.forEach((e) => e(...r)), f.afterAll.forEach((e) => e(...r));
71
+ o.beforeAll.forEach((r) => r(...e)), o.other.forEach((r) => r(...e)), o.afterAll.forEach((r) => r(...e));
62
72
  });
63
73
  };
64
- return t.onBefore = (r, e) => {
65
- switch (e) {
74
+ return s.onBefore = (e, r) => {
75
+ switch (r) {
66
76
  case "beforeAll":
67
- o.beforeAll.push(r);
77
+ n.beforeAll.push(e);
68
78
  break;
69
79
  case "afterAll":
70
- o.afterAll.push(r);
80
+ n.afterAll.push(e);
71
81
  break;
72
82
  default:
73
- o.other.push(r);
83
+ n.other.push(e);
74
84
  }
75
- }, t.onSuccess = (r, e) => {
76
- switch (e) {
85
+ }, s.onSuccess = (e, r) => {
86
+ switch (r) {
77
87
  case "beforeAll":
78
- c.beforeAll.push(r);
88
+ f.beforeAll.push(e);
79
89
  break;
80
90
  case "afterAll":
81
- c.afterAll.push(r);
91
+ f.afterAll.push(e);
82
92
  break;
83
93
  default:
84
- c.other.push(r);
94
+ f.other.push(e);
85
95
  }
86
- }, t.onError = (r, e) => {
87
- switch (e) {
96
+ }, s.onError = (e, r) => {
97
+ switch (r) {
88
98
  case "beforeAll":
89
- n.beforeAll.push(r);
99
+ t.beforeAll.push(e);
90
100
  break;
91
101
  case "afterAll":
92
- n.afterAll.push(r);
102
+ t.afterAll.push(e);
93
103
  break;
94
104
  default:
95
- n.other.push(r);
105
+ t.other.push(e);
96
106
  }
97
- }, t.onFinally = (r, e) => {
98
- switch (e) {
107
+ }, s.onFinally = (e, r) => {
108
+ switch (r) {
99
109
  case "beforeAll":
100
- f.beforeAll.push(r);
110
+ o.beforeAll.push(e);
101
111
  break;
102
112
  case "afterAll":
103
- f.afterAll.push(r);
113
+ o.afterAll.push(e);
104
114
  break;
105
115
  default:
106
- f.other.push(r);
116
+ o.other.push(e);
107
117
  }
108
- }, t;
109
- }, A = function(s, o, c = !0) {
110
- let n = o(...s);
111
- const f = [];
112
- s.forEach((r) => {
113
- r.subscribe(() => {
114
- u(c, () => {
115
- n = o(...s), f.forEach((e) => e(n));
118
+ }, s;
119
+ }, A = function(c, n, f = !0) {
120
+ let t = n(...c);
121
+ const o = [];
122
+ c.forEach((e) => {
123
+ e.subscribe(() => {
124
+ u(f, () => {
125
+ t = n(...c), o.forEach((r) => r(t));
116
126
  });
117
127
  });
118
128
  });
119
- const t = {
129
+ const s = {
120
130
  on: () => {
121
131
  throw new Error("Cannot call 'on' on combined store");
122
132
  },
123
133
  get() {
124
- return n;
134
+ return t;
125
135
  },
126
136
  set() {
127
137
  throw new Error("Cannot call 'set' on combined store");
128
138
  },
129
- subscribe(r) {
130
- return f.push(r), () => {
131
- const e = f.indexOf(r);
132
- ~e && f.splice(e, 1);
139
+ subscribe(e) {
140
+ return o.push(e), () => {
141
+ const r = o.indexOf(e);
142
+ ~r && o.splice(r, 1);
133
143
  };
134
144
  },
135
- enableOn(r) {
136
- return r.subscribe(() => c = !1), t;
145
+ enableOn(e) {
146
+ return e.subscribe(() => f = !1), s;
137
147
  },
138
- disableOn(r) {
139
- return r.subscribe(() => c = !0), t;
148
+ disableOn(e) {
149
+ return e.subscribe(() => f = !0), s;
140
150
  }
141
151
  };
142
- return t;
143
- }, E = function(s) {
144
- const o = [], c = {
145
- on: (n, f) => (n === "onBefore" ? f.onBefore(() => o.forEach((t) => t()), s) : n === "onSuccess" ? f.onSuccess(() => o.forEach((t) => t()), s) : n === "onError" ? f.onError(() => o.forEach((t) => t()), s) : f.onFinally(() => o.forEach((t) => t()), s), c),
146
- subscribe: (n) => {
147
- o.push(n);
152
+ return s;
153
+ }, E = function(c) {
154
+ const n = [], f = {
155
+ on: (t, o) => (t === "onBefore" ? o.onBefore(() => n.forEach((s) => s()), c) : t === "onSuccess" ? o.onSuccess(() => n.forEach((s) => s()), c) : t === "onError" ? o.onError(() => n.forEach((s) => s()), c) : o.onFinally(() => n.forEach((s) => s()), c), f),
156
+ subscribe: (t) => {
157
+ n.push(t);
148
158
  }
149
159
  };
150
- return c;
151
- }, i = function(s) {
152
- return () => s;
153
- }, p = function(s) {
154
- const o = a(!1);
155
- return s.forEach((c) => {
156
- o.on(c, "onBefore", i(!0)), o.on(c, "onFinally", i(!1));
157
- }), o;
160
+ return f;
161
+ }, i = function(c) {
162
+ return () => c;
163
+ }, p = function(c) {
164
+ const n = a(!1);
165
+ return c.forEach((f) => {
166
+ n.on(f, "onBefore", i(!0)), n.on(f, "onFinally", i(!1));
167
+ }), n;
158
168
  };
159
169
  export {
160
170
  A as combine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vanyamate/sec",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "SEC. Store, Effect, Combine. Tiny state manager",
5
5
  "scripts": {
6
6
  "build": "vite build",
@@ -64,32 +64,40 @@ export const store = function <State extends any> (state: State, enabled: boolea
64
64
  effect.onBefore((...args) =>
65
65
  enableCheck(
66
66
  enabled,
67
- () => state = (handler as StoreOnBeforeHandler<State, Action>)(state, { args }),
67
+ () => storeApi.set(
68
+ (handler as StoreOnBeforeHandler<State, Action>)(state, { args }),
69
+ ),
68
70
  ),
69
71
  );
70
72
  } else if (event === 'onSuccess') {
71
73
  effect.onSuccess((result, ...args) =>
72
74
  enableCheck(
73
75
  enabled,
74
- () => state = (handler as StoreOnSuccessHandler<State, Action>)(state, {
75
- result, args,
76
- }),
76
+ () => storeApi.set(
77
+ (handler as StoreOnSuccessHandler<State, Action>)(state, {
78
+ result, args,
79
+ }),
80
+ ),
77
81
  ),
78
82
  );
79
83
  } else if (event === 'onError') {
80
84
  effect.onError((error, ...args) =>
81
85
  enableCheck(
82
86
  enabled,
83
- () => state = (handler as StoreOnErrorHandler<State, Action>)(state, {
84
- error, args,
85
- }),
87
+ () => storeApi.set(
88
+ (handler as StoreOnErrorHandler<State, Action>)(state, {
89
+ error, args,
90
+ }),
91
+ ),
86
92
  ),
87
93
  );
88
94
  } else {
89
95
  effect.onFinally((...args) =>
90
96
  enableCheck(
91
97
  enabled,
92
- () => state = (handler as StoreOnFinallyHandler<State, Action>)(state, { args }),
98
+ () => storeApi.set(
99
+ (handler as StoreOnFinallyHandler<State, Action>)(state, { args }),
100
+ ),
93
101
  ),
94
102
  );
95
103
  }
@@ -101,6 +109,7 @@ export const store = function <State extends any> (state: State, enabled: boolea
101
109
  },
102
110
  set (value: State) {
103
111
  state = value;
112
+ listeners.forEach((listener) => listener(state));
104
113
  },
105
114
  subscribe (listener: StoreListener<State>) {
106
115
  listeners.push(listener);