Skip to content

Commit 846cf43

Browse files
committed
restructure args in sub function
1 parent 61f3e1c commit 846cf43

File tree

5 files changed

+33
-33
lines changed

5 files changed

+33
-33
lines changed

README.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ const observable = {
9292
},
9393
};
9494

95-
const unsubscribe = sub(observable)(console.log, console.error, () =>
95+
const unsubscribe = sub(observable, console.log, console.error, () =>
9696
console.log("Complete")
9797
);
9898
```
@@ -119,7 +119,7 @@ console.log(is(observable)); // Output: true
119119
}, 1000);
120120
});
121121

122-
sub(promise)(
122+
sub(promise,
123123
(value) => console.log("Resolved value:", value),
124124
(error) => console.error("Error:", error),
125125
() => console.log("Promise complete")
@@ -182,7 +182,7 @@ export let v =
182182
api.any = (target) => (next, error, complete) => target?.((v) => next(v));
183183

184184
const num = v(42);
185-
let off = sub(num)(console.log);
185+
let off = sub(num, console.log);
186186
num(20);
187187
num(3);
188188
off();
@@ -201,7 +201,7 @@ api.cleanup = cleanup; //optional
201201

202202
const [val, setVal] = createSignal(0);
203203

204-
sub(val)(console.log);
204+
sub(val, console.log);
205205
setVal(10);
206206
setVal(20);
207207
```
@@ -217,7 +217,7 @@ api.get = (v) => v?.value;
217217

218218
const val = signal(0);
219219

220-
const stop = sub(val)((v) => {
220+
const stop = sub(val, (v) => {
221221
console.log(v);
222222
});
223223

@@ -238,7 +238,7 @@ api.get = (v) => v?.value;
238238

239239
const val = signal(0);
240240

241-
const stop = sub(val)((v) => {
241+
const stop = sub(val, (v) => {
242242
console.log(v);
243243
});
244244

@@ -259,7 +259,7 @@ api.get = (v) => v?.value;
259259

260260
const val = signal(0);
261261

262-
const stop = sub(val)((v) => {
262+
const stop = sub(val, (v) => {
263263
console.log(v);
264264
});
265265

@@ -280,7 +280,7 @@ api.get = (v) => v?.value;
280280

281281
const val = signal(0);
282282

283-
const stop = sub(val)((v) => {
283+
const stop = sub(val, (v) => {
284284
console.log(v);
285285
});
286286

@@ -297,7 +297,7 @@ const { Subject } = require("rxjs");
297297
const subject = new Subject();
298298

299299
let arr = [];
300-
const unsub = sub(subject)(
300+
const unsub = sub(subject,
301301
(v) => arr.push(v),
302302
(err) => arr.push(err),
303303
() => arr.push("end")
@@ -329,7 +329,7 @@ const asyncIterable = {
329329
},
330330
};
331331

332-
sub(asyncIterable)(console.log, console.error, () => console.log("end"));
332+
sub(asyncIterable, console.log, console.error, () => console.log("end"));
333333
```
334334
335335
### Finalization and Cleanup

lite/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const
2828
),
2929

3030
// Subscribe to an observable or value, and provide a callback for each value
31-
sub = (target, stop, unsub) => (next, error, cleanup) => target && (
31+
sub = (target, next, error, cleanup, stop, unsub) => target && (
3232
unsub = ((!api.any && (api.is(target) || target.call)) && api.effect(() => (next(get(target)), api.cleanup?.(cleanup), cleanup))) ||
3333
(
3434
target.then?.(v => (!stop && next(get(v)), cleanup?.()), error) ||

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "usub",
33
"description": "Subscribe to any reactive sources",
4-
"version": "0.5.1",
4+
"version": "0.6.0",
55
"type": "module",
66
"source": "./src/index.js",
77
"main": "./dist/index.js",

src/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ const
3838
arg.call // Function
3939
),
4040
// Subscribe to an observable or value, and provide a callback for each value
41-
sub = (target, stop, unsub) => (next, error, cleanup) => target && (
41+
sub = (target, next, error, cleanup, stop, unsub) => target && (
4242
unsub = unsubr((target[Symbol.observable]?.() || target).subscribe?.((v) => next(get(v)), error, cleanup), cleanup) ||
4343
target.set && target.call?.(stop, next) ||
4444
((!api.any && (api.is(target) || target.call)) && api.effect(() => (next(get(target)), api.cleanup?.(cleanup), cleanup))) ||

test/index.js

+20-20
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function tick(n = 1) {
2020
t('Promise: next', async () => {
2121
let arr = []
2222
let p = new Promise(ok => setTimeout(() => ok(1)))
23-
sub(p)(v => arr.push(v), e => arr.push(e), () => arr.push('end'))
23+
sub(p, v => arr.push(v), e => arr.push(e), () => arr.push('end'))
2424

2525
is(arr, [])
2626
await time()
@@ -30,7 +30,7 @@ t('Promise: next', async () => {
3030
t('Promise: error', async () => {
3131
let arr = []
3232
let p = new Promise((ok, err) => setTimeout(() => { err(Error('xyz')) }))
33-
sub(p)(null, err => arr.push(err.message), done => arr.push(done))
33+
sub(p, null, err => arr.push(err.message), done => arr.push(done))
3434

3535
is(arr, [])
3636
await time()
@@ -42,7 +42,7 @@ t('rxjs', async () => {
4242
const { Subject } = await import('https://cdn.skypack.dev/rxjs')
4343
const subject = new Subject();
4444

45-
const unsub = sub(subject)(v => arr.push(v), err => arr.push(err), () => arr.push('end'))
45+
const unsub = sub(subject, v => arr.push(v), err => arr.push(err), () => arr.push('end'))
4646

4747
is(arr, [])
4848
subject.next(1);
@@ -61,7 +61,7 @@ t('observ', async () => {
6161
const { default: Observable } = await import('https://cdn.skypack.dev/observ')
6262

6363
var v = Observable(1)
64-
sub(v)(v => arr.push(v))
64+
sub(v, v => arr.push(v))
6565
is(arr, [])
6666
v.set(2)
6767
is(arr, [2])
@@ -72,7 +72,7 @@ t('observable', async () => {
7272
const { default: Observable } = await import('https://cdn.skypack.dev/observable')
7373

7474
var v = Observable(1)
75-
sub(v)(v => arr.push(v))
75+
sub(v, v => arr.push(v))
7676
is(arr, [1])
7777
v(2)
7878
is(arr, [1, 2])
@@ -94,7 +94,7 @@ t('asyncIterable', async () => {
9494
}
9595
};
9696

97-
sub(asyncIterable)(v => arr.push(v), err => err, v => arr.push('end'))
97+
sub(asyncIterable, v => arr.push(v), err => err, v => arr.push('end'))
9898
is(arr, [])
9999
await tick()
100100
is(arr, [0, 1])
@@ -106,7 +106,7 @@ t('does not keep observer refs for mock', async () => {
106106
let arr = []
107107
let mock = { subscribe() { arr.push('sub'); return { unsubscribe: () => arr.push('unsub') } } }
108108

109-
let unsub = sub(mock)(v => arr.push(v))
109+
let unsub = sub(mock, v => arr.push(v))
110110
is(arr, ['sub'])
111111

112112
mock = null
@@ -120,7 +120,7 @@ t('collecting callback doesnt invoke unsubscribe', async () => {
120120
let arr = []
121121
let mock = { subscribe() { arr.push('sub'); return { unsubscribe: () => arr.push('unsub') } } }
122122
let cb = v => arr.push(v)
123-
let unsub = sub(mock)(cb)
123+
let unsub = sub(mock, cb)
124124
is(arr, ['sub'])
125125

126126
cb = null
@@ -137,7 +137,7 @@ t('does not keep observer refs for signal', async () => {
137137
let arr = []
138138
let s1 = signal(0)
139139

140-
const unsub = sub(s1)(v => arr.push(v), null, () => arr.push('end'))
140+
const unsub = sub(s1, v => arr.push(v), null, () => arr.push('end'))
141141

142142
is(arr, [0])
143143

@@ -173,7 +173,7 @@ t('solid.js', async () => {
173173
api.cleanup = onCleanup;
174174

175175
let [val, setVal] = createSignal(0);
176-
sub(val)((v) => arr.push(v), null, () => arr.push('clean'));
176+
sub(val, (v) => arr.push(v), null, () => arr.push('clean'));
177177
setVal(10);
178178
setVal(20);
179179
setVal = null;
@@ -184,7 +184,7 @@ t('solid.js', async () => {
184184

185185
arr = [];
186186
let [val1, setVal1] = createSignal(0);
187-
const off = sub(val1)((v) => arr.push(v), null, () => arr.push('clean'));
187+
const off = sub(val1, (v) => arr.push(v), null, () => arr.push('clean'));
188188
setVal1(10);
189189
setVal1(20);
190190
off();
@@ -203,7 +203,7 @@ t('usignal', async () => {
203203
api.get = (v) => v?.value;
204204

205205
let val = signal(0);
206-
sub(val)((v) => arr.push(v), null, () => arr.push('clean'));
206+
sub(val, (v) => arr.push(v), null, () => arr.push('clean'));
207207
await tick();
208208
val.value = 10;
209209
await tick();
@@ -216,7 +216,7 @@ t('usignal', async () => {
216216

217217
arr = [];
218218
let val1 = signal(0);
219-
let off = sub(val1)((v) => arr.push(v), null, () => arr.push('clean'));
219+
let off = sub(val1, (v) => arr.push(v), null, () => arr.push('clean'));
220220
await tick();
221221
val1.value = 10;
222222
await tick();
@@ -237,7 +237,7 @@ t('@webreflection/signal', async () => {
237237

238238
let val = signal(0);
239239

240-
sub(val)((v) => arr.push(v), null, () => arr.push('clean'));
240+
sub(val, (v) => arr.push(v), null, () => arr.push('clean'));
241241
val.value = 10;
242242
val.value = 20;
243243
val = null;
@@ -248,7 +248,7 @@ t('@webreflection/signal', async () => {
248248

249249
arr = [];
250250
let val1 = signal(0);
251-
let off = sub(val1)((v) => arr.push(v), null, () => arr.push('clean'));
251+
let off = sub(val1, (v) => arr.push(v), null, () => arr.push('clean'));
252252
val1.value = 10;
253253
val1.value = 20;
254254
off();
@@ -265,7 +265,7 @@ t('ulive', async () => {
265265
api.get = (v) => v?.value;
266266

267267
let val = signal(0);
268-
sub(val)((v) => arr.push(v), null, () => arr.push('clean'));
268+
sub(val, (v) => arr.push(v), null, () => arr.push('clean'));
269269
val.value = 10;
270270
val.value = 20;
271271
// off();
@@ -277,7 +277,7 @@ t('ulive', async () => {
277277

278278
arr = [];
279279
let val1 = signal(0);
280-
let off = sub(val1)((v) => arr.push(v), null, () => arr.push('clean'));
280+
let off = sub(val1, (v) => arr.push(v), null, () => arr.push('clean'));
281281
val1.value = 10;
282282
val1.value = 20;
283283
off();
@@ -293,7 +293,7 @@ t('function', async () => {
293293
api.get = v => v?.call?.();
294294

295295
let arr = [];
296-
sub(fun)((v) => arr.push(v));
296+
sub(fun, (v) => arr.push(v));
297297
is(arr, ['fun'])
298298
});
299299

@@ -312,7 +312,7 @@ t('api.any', async () => {
312312

313313
let arr = [];
314314
let val = v(0);
315-
sub(val)((v) => arr.push(v));
315+
sub(val, (v) => arr.push(v));
316316
val(10);
317317
val(20);
318318
val = null;
@@ -323,7 +323,7 @@ t('api.any', async () => {
323323

324324
arr = [];
325325
let val1 = v(0);
326-
let off = sub(val1)((v) => arr.push(v));
326+
let off = sub(val1, (v) => arr.push(v));
327327
val1(10);
328328
val1(20);
329329
off();

0 commit comments

Comments
 (0)