@davidsouther/jiffies 2.2.5 → 2026.4.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.
- package/LICENSE +1 -1
- package/package.json +22 -25
- package/src/assert.ts +5 -5
- package/src/components/button_bar.ts +28 -30
- package/src/components/inline_edit.ts +8 -7
- package/src/components/logger.ts +6 -6
- package/src/components/select.ts +7 -7
- package/src/components/test.ts +5 -0
- package/src/components/virtual_scroll.test.ts +9 -6
- package/src/components/virtual_scroll.ts +29 -24
- package/src/context.test.ts +4 -4
- package/src/context.ts +16 -11
- package/src/debounce.ts +9 -3
- package/src/diff.test.ts +4 -4
- package/src/diff.ts +14 -16
- package/src/dom/css/border.ts +11 -11
- package/src/dom/css/core.ts +1 -1
- package/src/dom/css/fstyle.ts +4 -4
- package/src/dom/css/sizing.ts +1 -1
- package/src/dom/dom.ts +59 -47
- package/src/dom/fc.test.ts +8 -8
- package/src/dom/fc.ts +32 -35
- package/src/dom/form/form.app.ts +9 -9
- package/src/dom/form/form.ts +21 -15
- package/src/dom/form/index.html +3 -2
- package/src/dom/html.test.ts +12 -10
- package/src/dom/html.ts +2 -3
- package/src/dom/index.ts +2 -0
- package/src/dom/observable.test.ts +6 -6
- package/src/dom/observable.ts +2 -2
- package/src/dom/provide.ts +1 -1
- package/src/dom/router/link.ts +3 -3
- package/src/dom/router/router.ts +5 -5
- package/src/dom/svg.ts +7 -6
- package/src/dom/test.ts +3 -0
- package/src/dom/types/css.ts +43 -61
- package/src/dom/types/html.ts +2 -4
- package/src/dom/xml.ts +2 -2
- package/src/equal.test.ts +3 -3
- package/src/equal.ts +27 -14
- package/src/flags.test.ts +2 -2
- package/src/flags.ts +2 -2
- package/src/fs.test.ts +5 -5
- package/src/fs.ts +26 -20
- package/src/fs_node.ts +4 -4
- package/src/fs_win.test.ts +1 -1
- package/src/generator.test.ts +4 -3
- package/src/generator.ts +1 -1
- package/src/hooks/_notes +4 -1
- package/src/index.html +7 -7
- package/src/lock.test.ts +4 -4
- package/src/lock.ts +8 -7
- package/src/log.ts +17 -18
- package/src/observable/event.ts +7 -7
- package/src/observable/observable.test.ts +3 -3
- package/src/observable/observable.ts +73 -52
- package/src/result.test.ts +7 -10
- package/src/result.ts +51 -47
- package/src/safe.ts +1 -1
- package/src/scope/describe.ts +12 -11
- package/src/scope/display/console.ts +4 -4
- package/src/scope/display/dom.ts +9 -9
- package/src/scope/display/junit.ts +21 -24
- package/src/scope/execute.ts +17 -12
- package/src/scope/expect.ts +22 -22
- package/src/scope/fix.ts +8 -7
- package/src/scope/index.ts +3 -3
- package/src/scope/scope.ts +2 -2
- package/src/scope/state.ts +2 -2
- package/src/server/http/apps.ts +5 -5
- package/src/server/http/css.ts +10 -26
- package/src/server/http/index.ts +30 -24
- package/src/server/http/response.ts +12 -5
- package/src/server/http/sitemap.ts +8 -8
- package/src/server/http/static.ts +9 -6
- package/src/server/http/typescript.ts +25 -25
- package/src/server/main.ts +7 -4
- package/src/test.mjs +8 -8
- package/src/test_all.ts +16 -13
- package/src/transpile.mjs +5 -18
- package/tsconfig.json +34 -0
- package/build/pico.css +0 -2466
- package/build/pico.css.map +0 -1
- package/lib/cjs/assert.d.ts +0 -26
- package/lib/cjs/assert.js +0 -46
- package/lib/cjs/awaitable.d.ts +0 -1
- package/lib/cjs/awaitable.js +0 -2
- package/lib/cjs/case.d.ts +0 -1
- package/lib/cjs/case.js +0 -9
- package/lib/cjs/components/button_bar.d.ts +0 -8
- package/lib/cjs/components/button_bar.js +0 -29
- package/lib/cjs/components/inline_edit.d.ts +0 -12
- package/lib/cjs/components/inline_edit.js +0 -51
- package/lib/cjs/components/logger.d.ts +0 -6
- package/lib/cjs/components/logger.js +0 -27
- package/lib/cjs/components/select.d.ts +0 -13
- package/lib/cjs/components/select.js +0 -6
- package/lib/cjs/components/test.d.ts +0 -1
- package/lib/cjs/components/test.js +0 -7
- package/lib/cjs/components/virtual_scroll.d.ts +0 -40
- package/lib/cjs/components/virtual_scroll.js +0 -102
- package/lib/cjs/components/virtual_scroll.test.d.ts +0 -1
- package/lib/cjs/components/virtual_scroll.test.js +0 -22
- package/lib/cjs/context.d.ts +0 -15
- package/lib/cjs/context.js +0 -48
- package/lib/cjs/context.test.d.ts +0 -1
- package/lib/cjs/context.test.js +0 -48
- package/lib/cjs/debounce.d.ts +0 -1
- package/lib/cjs/debounce.js +0 -12
- package/lib/cjs/diff.d.ts +0 -15
- package/lib/cjs/diff.js +0 -58
- package/lib/cjs/diff.test.d.ts +0 -1
- package/lib/cjs/diff.test.js +0 -41
- package/lib/cjs/display.d.ts +0 -5
- package/lib/cjs/display.js +0 -16
- package/lib/cjs/dom/css/border.d.ts +0 -11
- package/lib/cjs/dom/css/border.js +0 -33
- package/lib/cjs/dom/css/constants.d.ts +0 -31
- package/lib/cjs/dom/css/constants.js +0 -31
- package/lib/cjs/dom/css/core.d.ts +0 -5
- package/lib/cjs/dom/css/core.js +0 -31
- package/lib/cjs/dom/css/fstyle.d.ts +0 -5
- package/lib/cjs/dom/css/fstyle.js +0 -36
- package/lib/cjs/dom/css/sizing.d.ts +0 -5
- package/lib/cjs/dom/css/sizing.js +0 -14
- package/lib/cjs/dom/dom.d.ts +0 -27
- package/lib/cjs/dom/dom.js +0 -110
- package/lib/cjs/dom/fc.d.ts +0 -14
- package/lib/cjs/dom/fc.js +0 -39
- package/lib/cjs/dom/fc.test.d.ts +0 -1
- package/lib/cjs/dom/fc.test.js +0 -23
- package/lib/cjs/dom/form/form.app.d.ts +0 -1
- package/lib/cjs/dom/form/form.app.js +0 -27
- package/lib/cjs/dom/form/form.d.ts +0 -26
- package/lib/cjs/dom/form/form.js +0 -49
- package/lib/cjs/dom/form/form.test.d.ts +0 -0
- package/lib/cjs/dom/form/form.test.js +0 -1
- package/lib/cjs/dom/html.d.ts +0 -113
- package/lib/cjs/dom/html.js +0 -119
- package/lib/cjs/dom/html.test.d.ts +0 -1
- package/lib/cjs/dom/html.test.js +0 -60
- package/lib/cjs/dom/observable.d.ts +0 -2
- package/lib/cjs/dom/observable.js +0 -10
- package/lib/cjs/dom/observable.test.d.ts +0 -1
- package/lib/cjs/dom/observable.test.js +0 -35
- package/lib/cjs/dom/provide.d.ts +0 -3
- package/lib/cjs/dom/provide.js +0 -12
- package/lib/cjs/dom/router/link.d.ts +0 -6
- package/lib/cjs/dom/router/link.js +0 -7
- package/lib/cjs/dom/router/router.d.ts +0 -13
- package/lib/cjs/dom/router/router.js +0 -55
- package/lib/cjs/dom/svg.d.ts +0 -64
- package/lib/cjs/dom/svg.js +0 -69
- package/lib/cjs/dom/test.d.ts +0 -1
- package/lib/cjs/dom/test.js +0 -13
- package/lib/cjs/dom/types/css.d.ts +0 -6612
- package/lib/cjs/dom/types/css.js +0 -24
- package/lib/cjs/dom/types/dom.d.ts +0 -0
- package/lib/cjs/dom/types/dom.js +0 -1
- package/lib/cjs/dom/types/html.d.ts +0 -616
- package/lib/cjs/dom/types/html.js +0 -2
- package/lib/cjs/dom/xml.d.ts +0 -1
- package/lib/cjs/dom/xml.js +0 -8
- package/lib/cjs/equal.d.ts +0 -8
- package/lib/cjs/equal.js +0 -48
- package/lib/cjs/equal.test.d.ts +0 -1
- package/lib/cjs/equal.test.js +0 -22
- package/lib/cjs/flags.d.ts +0 -7
- package/lib/cjs/flags.js +0 -52
- package/lib/cjs/flags.test.d.ts +0 -1
- package/lib/cjs/flags.test.js +0 -37
- package/lib/cjs/fs.d.ts +0 -72
- package/lib/cjs/fs.js +0 -235
- package/lib/cjs/fs.test.d.ts +0 -1
- package/lib/cjs/fs.test.js +0 -86
- package/lib/cjs/fs_node.d.ts +0 -15
- package/lib/cjs/fs_node.js +0 -50
- package/lib/cjs/fs_win.test.d.ts +0 -1
- package/lib/cjs/fs_win.test.js +0 -10
- package/lib/cjs/generator.d.ts +0 -1
- package/lib/cjs/generator.js +0 -14
- package/lib/cjs/generator.test.d.ts +0 -1
- package/lib/cjs/generator.test.js +0 -26
- package/lib/cjs/is_browser.d.ts +0 -1
- package/lib/cjs/is_browser.js +0 -4
- package/lib/cjs/loader-register.d.mts +0 -1
- package/lib/cjs/loader-register.d.ts +0 -1
- package/lib/cjs/loader-register.js +0 -4
- package/lib/cjs/loader-register.mjs +0 -4
- package/lib/cjs/loader.d.mts +0 -23
- package/lib/cjs/loader.mjs +0 -41
- package/lib/cjs/lock.d.ts +0 -1
- package/lib/cjs/lock.js +0 -27
- package/lib/cjs/lock.test.d.ts +0 -1
- package/lib/cjs/lock.test.js +0 -18
- package/lib/cjs/log.d.ts +0 -56
- package/lib/cjs/log.js +0 -103
- package/lib/cjs/observable/event.d.ts +0 -35
- package/lib/cjs/observable/event.js +0 -61
- package/lib/cjs/observable/observable.d.ts +0 -132
- package/lib/cjs/observable/observable.js +0 -363
- package/lib/cjs/observable/observable.test.d.ts +0 -1
- package/lib/cjs/observable/observable.test.js +0 -65
- package/lib/cjs/package.json +0 -1
- package/lib/cjs/range.d.ts +0 -1
- package/lib/cjs/range.js +0 -11
- package/lib/cjs/result.d.ts +0 -31
- package/lib/cjs/result.js +0 -80
- package/lib/cjs/result.test.d.ts +0 -1
- package/lib/cjs/result.test.js +0 -78
- package/lib/cjs/safe.d.ts +0 -1
- package/lib/cjs/safe.js +0 -14
- package/lib/cjs/scope/describe.d.ts +0 -18
- package/lib/cjs/scope/describe.js +0 -73
- package/lib/cjs/scope/display/console.d.ts +0 -2
- package/lib/cjs/scope/display/console.js +0 -25
- package/lib/cjs/scope/display/dom.d.ts +0 -3
- package/lib/cjs/scope/display/dom.js +0 -30
- package/lib/cjs/scope/display/junit.d.ts +0 -2
- package/lib/cjs/scope/display/junit.js +0 -21
- package/lib/cjs/scope/execute.d.ts +0 -12
- package/lib/cjs/scope/execute.js +0 -91
- package/lib/cjs/scope/expect.d.ts +0 -23
- package/lib/cjs/scope/expect.js +0 -110
- package/lib/cjs/scope/fix.d.ts +0 -4
- package/lib/cjs/scope/fix.js +0 -26
- package/lib/cjs/scope/index.d.ts +0 -3
- package/lib/cjs/scope/index.js +0 -15
- package/lib/cjs/scope/scope.d.ts +0 -17
- package/lib/cjs/scope/scope.js +0 -2
- package/lib/cjs/scope/state.d.ts +0 -2
- package/lib/cjs/scope/state.js +0 -12
- package/lib/cjs/server/http/apps.d.ts +0 -5
- package/lib/cjs/server/http/apps.js +0 -27
- package/lib/cjs/server/http/css.d.ts +0 -5
- package/lib/cjs/server/http/css.js +0 -54
- package/lib/cjs/server/http/index.d.ts +0 -21
- package/lib/cjs/server/http/index.js +0 -77
- package/lib/cjs/server/http/response.d.ts +0 -4
- package/lib/cjs/server/http/response.js +0 -45
- package/lib/cjs/server/http/sitemap.d.ts +0 -2
- package/lib/cjs/server/http/sitemap.js +0 -46
- package/lib/cjs/server/http/static.d.ts +0 -2
- package/lib/cjs/server/http/static.js +0 -25
- package/lib/cjs/server/http/typescript.d.ts +0 -5
- package/lib/cjs/server/http/typescript.js +0 -44
- package/lib/cjs/server/main.d.ts +0 -2
- package/lib/cjs/server/main.js +0 -14
- package/lib/cjs/test.d.mts +0 -2
- package/lib/cjs/test.mjs +0 -28
- package/lib/cjs/test_all.d.ts +0 -9
- package/lib/cjs/test_all.js +0 -30
- package/lib/cjs/transpile.d.mts +0 -3
- package/lib/cjs/transpile.mjs +0 -22
- package/lib/cjs/tsconfig.tsbuildinfo +0 -1
- package/lib/esm/assert.d.ts +0 -26
- package/lib/esm/assert.js +0 -38
- package/lib/esm/awaitable.d.ts +0 -1
- package/lib/esm/awaitable.js +0 -1
- package/lib/esm/case.d.ts +0 -1
- package/lib/esm/case.js +0 -5
- package/lib/esm/components/button_bar.d.ts +0 -8
- package/lib/esm/components/button_bar.js +0 -27
- package/lib/esm/components/inline_edit.d.ts +0 -12
- package/lib/esm/components/inline_edit.js +0 -48
- package/lib/esm/components/logger.d.ts +0 -6
- package/lib/esm/components/logger.js +0 -22
- package/lib/esm/components/select.d.ts +0 -10
- package/lib/esm/components/select.js +0 -3
- package/lib/esm/components/test.d.ts +0 -1
- package/lib/esm/components/test.js +0 -3
- package/lib/esm/components/virtual_scroll.d.ts +0 -40
- package/lib/esm/components/virtual_scroll.js +0 -94
- package/lib/esm/components/virtual_scroll.test.d.ts +0 -1
- package/lib/esm/components/virtual_scroll.test.js +0 -20
- package/lib/esm/context.d.ts +0 -15
- package/lib/esm/context.js +0 -43
- package/lib/esm/context.test.d.ts +0 -1
- package/lib/esm/context.test.js +0 -46
- package/lib/esm/debounce.d.ts +0 -2
- package/lib/esm/debounce.js +0 -8
- package/lib/esm/diff.d.ts +0 -15
- package/lib/esm/diff.js +0 -54
- package/lib/esm/diff.test.d.ts +0 -1
- package/lib/esm/diff.test.js +0 -39
- package/lib/esm/display.d.ts +0 -5
- package/lib/esm/display.js +0 -11
- package/lib/esm/dom/css/border.d.ts +0 -11
- package/lib/esm/dom/css/border.js +0 -27
- package/lib/esm/dom/css/constants.d.ts +0 -31
- package/lib/esm/dom/css/constants.js +0 -28
- package/lib/esm/dom/css/core.d.ts +0 -5
- package/lib/esm/dom/css/core.js +0 -24
- package/lib/esm/dom/css/fstyle.d.ts +0 -5
- package/lib/esm/dom/css/fstyle.js +0 -32
- package/lib/esm/dom/css/sizing.d.ts +0 -5
- package/lib/esm/dom/css/sizing.js +0 -10
- package/lib/esm/dom/dom.d.ts +0 -27
- package/lib/esm/dom/dom.js +0 -104
- package/lib/esm/dom/fc.d.ts +0 -14
- package/lib/esm/dom/fc.js +0 -35
- package/lib/esm/dom/fc.test.d.ts +0 -1
- package/lib/esm/dom/fc.test.js +0 -21
- package/lib/esm/dom/form/form.app.d.ts +0 -1
- package/lib/esm/dom/form/form.app.js +0 -23
- package/lib/esm/dom/form/form.d.ts +0 -26
- package/lib/esm/dom/form/form.js +0 -34
- package/lib/esm/dom/form/form.test.d.ts +0 -0
- package/lib/esm/dom/form/form.test.js +0 -1
- package/lib/esm/dom/html.d.ts +0 -113
- package/lib/esm/dom/html.js +0 -114
- package/lib/esm/dom/html.test.d.ts +0 -1
- package/lib/esm/dom/html.test.js +0 -58
- package/lib/esm/dom/observable.d.ts +0 -2
- package/lib/esm/dom/observable.js +0 -6
- package/lib/esm/dom/observable.test.d.ts +0 -1
- package/lib/esm/dom/observable.test.js +0 -33
- package/lib/esm/dom/provide.d.ts +0 -3
- package/lib/esm/dom/provide.js +0 -7
- package/lib/esm/dom/router/link.d.ts +0 -6
- package/lib/esm/dom/router/link.js +0 -3
- package/lib/esm/dom/router/router.d.ts +0 -13
- package/lib/esm/dom/router/router.js +0 -52
- package/lib/esm/dom/svg.d.ts +0 -64
- package/lib/esm/dom/svg.js +0 -65
- package/lib/esm/dom/test.d.ts +0 -1
- package/lib/esm/dom/test.js +0 -9
- package/lib/esm/dom/types/css.d.ts +0 -6612
- package/lib/esm/dom/types/css.js +0 -23
- package/lib/esm/dom/types/dom.d.ts +0 -0
- package/lib/esm/dom/types/dom.js +0 -1
- package/lib/esm/dom/types/html.d.ts +0 -616
- package/lib/esm/dom/types/html.js +0 -1
- package/lib/esm/dom/xml.d.ts +0 -1
- package/lib/esm/dom/xml.js +0 -4
- package/lib/esm/equal.d.ts +0 -8
- package/lib/esm/equal.js +0 -41
- package/lib/esm/equal.test.d.ts +0 -1
- package/lib/esm/equal.test.js +0 -20
- package/lib/esm/flags.d.ts +0 -7
- package/lib/esm/flags.js +0 -48
- package/lib/esm/flags.test.d.ts +0 -1
- package/lib/esm/flags.test.js +0 -35
- package/lib/esm/fs.d.ts +0 -72
- package/lib/esm/fs.js +0 -226
- package/lib/esm/fs.test.d.ts +0 -1
- package/lib/esm/fs.test.js +0 -84
- package/lib/esm/fs_node.d.ts +0 -15
- package/lib/esm/fs_node.js +0 -45
- package/lib/esm/fs_win.test.d.ts +0 -1
- package/lib/esm/fs_win.test.js +0 -8
- package/lib/esm/generator.d.ts +0 -1
- package/lib/esm/generator.js +0 -10
- package/lib/esm/generator.test.d.ts +0 -1
- package/lib/esm/generator.test.js +0 -24
- package/lib/esm/is_browser.d.ts +0 -1
- package/lib/esm/is_browser.js +0 -1
- package/lib/esm/loader-register.d.mts +0 -1
- package/lib/esm/loader-register.mjs +0 -2
- package/lib/esm/loader.d.mts +0 -23
- package/lib/esm/loader.mjs +0 -36
- package/lib/esm/lock.d.ts +0 -1
- package/lib/esm/lock.js +0 -23
- package/lib/esm/lock.test.d.ts +0 -1
- package/lib/esm/lock.test.js +0 -16
- package/lib/esm/log.d.ts +0 -56
- package/lib/esm/log.js +0 -93
- package/lib/esm/observable/event.d.ts +0 -35
- package/lib/esm/observable/event.js +0 -46
- package/lib/esm/observable/observable.d.ts +0 -132
- package/lib/esm/observable/observable.js +0 -343
- package/lib/esm/observable/observable.test.d.ts +0 -1
- package/lib/esm/observable/observable.test.js +0 -63
- package/lib/esm/range.d.ts +0 -1
- package/lib/esm/range.js +0 -7
- package/lib/esm/result.d.ts +0 -31
- package/lib/esm/result.js +0 -65
- package/lib/esm/result.test.d.ts +0 -1
- package/lib/esm/result.test.js +0 -76
- package/lib/esm/safe.d.ts +0 -1
- package/lib/esm/safe.js +0 -10
- package/lib/esm/scope/describe.d.ts +0 -18
- package/lib/esm/scope/describe.js +0 -60
- package/lib/esm/scope/display/console.d.ts +0 -2
- package/lib/esm/scope/display/console.js +0 -21
- package/lib/esm/scope/display/dom.d.ts +0 -3
- package/lib/esm/scope/display/dom.js +0 -26
- package/lib/esm/scope/display/junit.d.ts +0 -2
- package/lib/esm/scope/display/junit.js +0 -17
- package/lib/esm/scope/execute.d.ts +0 -12
- package/lib/esm/scope/execute.js +0 -85
- package/lib/esm/scope/expect.d.ts +0 -23
- package/lib/esm/scope/expect.js +0 -104
- package/lib/esm/scope/fix.d.ts +0 -4
- package/lib/esm/scope/fix.js +0 -22
- package/lib/esm/scope/index.d.ts +0 -3
- package/lib/esm/scope/index.js +0 -3
- package/lib/esm/scope/scope.d.ts +0 -17
- package/lib/esm/scope/scope.js +0 -1
- package/lib/esm/scope/state.d.ts +0 -2
- package/lib/esm/scope/state.js +0 -8
- package/lib/esm/server/http/apps.d.ts +0 -5
- package/lib/esm/server/http/apps.js +0 -23
- package/lib/esm/server/http/css.d.ts +0 -5
- package/lib/esm/server/http/css.js +0 -50
- package/lib/esm/server/http/index.d.ts +0 -21
- package/lib/esm/server/http/index.js +0 -73
- package/lib/esm/server/http/response.d.ts +0 -4
- package/lib/esm/server/http/response.js +0 -40
- package/lib/esm/server/http/sitemap.d.ts +0 -2
- package/lib/esm/server/http/sitemap.js +0 -42
- package/lib/esm/server/http/static.d.ts +0 -2
- package/lib/esm/server/http/static.js +0 -21
- package/lib/esm/server/http/typescript.d.ts +0 -5
- package/lib/esm/server/http/typescript.js +0 -40
- package/lib/esm/server/main.d.ts +0 -2
- package/lib/esm/server/main.js +0 -12
- package/lib/esm/test.d.mts +0 -2
- package/lib/esm/test.mjs +0 -26
- package/lib/esm/test_all.d.ts +0 -9
- package/lib/esm/test_all.js +0 -28
- package/lib/esm/transpile.d.mts +0 -3
- package/lib/esm/transpile.mjs +0 -18
- package/lib/esm/tsconfig.tsbuildinfo +0 -1
- package/src/components/test.js +0 -3
- package/src/loader-register.mjs +0 -3
- package/src/loader.mjs +0 -46
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.operator = exports.tap = exports.takeUntil = exports.reduce = exports.replay = exports.map = exports.last = exports.first = exports.distinct = exports.filter = exports.TapOperator = exports.TakeUntilOperator = exports.watch = exports.EventHandler = exports.eventListener = exports.ReplaySubject = exports.BehaviorSubject = exports.Subject = exports.SyncScheduler = exports.AsyncScheduler = exports.Observable = void 0;
|
|
4
|
-
const log_js_1 = require("../log.js");
|
|
5
|
-
exports.Observable = {
|
|
6
|
-
of(...ts) {
|
|
7
|
-
const subject = new Subject();
|
|
8
|
-
(async function next() {
|
|
9
|
-
if (subject.cold) {
|
|
10
|
-
subject.onWarm(next);
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
if (ts.length === 0) {
|
|
14
|
-
subject.complete();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const t = ts.shift();
|
|
18
|
-
await subject.next(t);
|
|
19
|
-
next();
|
|
20
|
-
})();
|
|
21
|
-
return subject;
|
|
22
|
-
},
|
|
23
|
-
combineLatest(o1, o2) {
|
|
24
|
-
let latestSubject = new Subject();
|
|
25
|
-
let o1LatestSet = false;
|
|
26
|
-
let o1Latest;
|
|
27
|
-
let o2LatestSet = false;
|
|
28
|
-
let o2Latest;
|
|
29
|
-
function next() {
|
|
30
|
-
if (o1LatestSet && o2LatestSet) {
|
|
31
|
-
latestSubject.next([o1Latest, o2Latest]);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function error(e) {
|
|
35
|
-
latestSubject.error(e);
|
|
36
|
-
}
|
|
37
|
-
function complete() {
|
|
38
|
-
latestSubject.complete();
|
|
39
|
-
o1sub.unsubscribe();
|
|
40
|
-
o2sub.unsubscribe();
|
|
41
|
-
}
|
|
42
|
-
let o1sub = o1.subscribe({
|
|
43
|
-
next(t) {
|
|
44
|
-
o1Latest = t;
|
|
45
|
-
o1LatestSet = true;
|
|
46
|
-
next();
|
|
47
|
-
},
|
|
48
|
-
error,
|
|
49
|
-
complete,
|
|
50
|
-
});
|
|
51
|
-
let o2sub = o2.subscribe({
|
|
52
|
-
next(t) {
|
|
53
|
-
o2Latest = t;
|
|
54
|
-
o2LatestSet = true;
|
|
55
|
-
next();
|
|
56
|
-
},
|
|
57
|
-
error,
|
|
58
|
-
complete,
|
|
59
|
-
});
|
|
60
|
-
return latestSubject;
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
exports.AsyncScheduler = {
|
|
64
|
-
execute(fn) {
|
|
65
|
-
return Promise.all(fn()).then(() => undefined);
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
exports.SyncScheduler = {
|
|
69
|
-
execute(fn) {
|
|
70
|
-
fn();
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
class Subject {
|
|
74
|
-
scheduler;
|
|
75
|
-
#coldWaiters = new Set();
|
|
76
|
-
#subscribers = new Set();
|
|
77
|
-
#complete = false;
|
|
78
|
-
get $() {
|
|
79
|
-
return this;
|
|
80
|
-
}
|
|
81
|
-
get hot() {
|
|
82
|
-
return this.#subscribers.size > 0;
|
|
83
|
-
}
|
|
84
|
-
get cold() {
|
|
85
|
-
return !this.hot;
|
|
86
|
-
}
|
|
87
|
-
constructor(scheduler = exports.AsyncScheduler) {
|
|
88
|
-
this.scheduler = scheduler;
|
|
89
|
-
}
|
|
90
|
-
onWarm(fn) {
|
|
91
|
-
if (this.cold)
|
|
92
|
-
this.#coldWaiters.add(fn);
|
|
93
|
-
}
|
|
94
|
-
next(t) {
|
|
95
|
-
if (this.#complete)
|
|
96
|
-
throw new Error("Cannot call next on a completed subject");
|
|
97
|
-
return this.scheduler.execute(() => [...this.#subscribers].map((s) => s.next?.(t)));
|
|
98
|
-
}
|
|
99
|
-
error(e) {
|
|
100
|
-
if (this.#complete)
|
|
101
|
-
throw new Error("Cannot call error on a completed subject");
|
|
102
|
-
return this.scheduler.execute(() => [...this.#subscribers].map((s) => s.error?.(e)));
|
|
103
|
-
}
|
|
104
|
-
complete() {
|
|
105
|
-
if (this.#complete)
|
|
106
|
-
throw new Error("Cannot call complete on a completed subject");
|
|
107
|
-
this.#complete = true;
|
|
108
|
-
const finished = this.scheduler.execute(() => [...this.#subscribers].map((s) => s.complete?.()));
|
|
109
|
-
this.#subscribers.clear(); // Free subscribers for garbage collection
|
|
110
|
-
return finished;
|
|
111
|
-
}
|
|
112
|
-
subscribe(subscriber) {
|
|
113
|
-
if (this.#complete)
|
|
114
|
-
throw new Error("Cannot call subscribe on a completed subject");
|
|
115
|
-
if (subscriber instanceof Function) {
|
|
116
|
-
subscriber = { next: subscriber };
|
|
117
|
-
}
|
|
118
|
-
this.#subscribers.add(subscriber);
|
|
119
|
-
[...this.#coldWaiters].forEach((w) => w());
|
|
120
|
-
this.#coldWaiters.clear();
|
|
121
|
-
return {
|
|
122
|
-
unsubscribe: () => this.#subscribers.delete(subscriber),
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
pipe(...os) {
|
|
126
|
-
this.subscribe(os[0]);
|
|
127
|
-
for (let i = 1; i < os.length; i++) {
|
|
128
|
-
os[i - 1].subscribe(os[i]);
|
|
129
|
-
}
|
|
130
|
-
return os[os.length - 1];
|
|
131
|
-
}
|
|
132
|
-
filter(fn) {
|
|
133
|
-
return this.pipe(exports.operator.filter(fn));
|
|
134
|
-
}
|
|
135
|
-
distinct(fn = Object.is) {
|
|
136
|
-
return this.pipe(exports.operator.distinct(fn));
|
|
137
|
-
}
|
|
138
|
-
map(fn) {
|
|
139
|
-
return this.pipe(exports.operator.map(fn));
|
|
140
|
-
}
|
|
141
|
-
reduce(fn, init) {
|
|
142
|
-
return this.pipe(exports.operator.reduce(fn, init));
|
|
143
|
-
}
|
|
144
|
-
replay(n) {
|
|
145
|
-
return this.pipe(exports.operator.replay(n));
|
|
146
|
-
}
|
|
147
|
-
tap(s) {
|
|
148
|
-
return this.pipe(exports.operator.tap(s));
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
exports.Subject = Subject;
|
|
152
|
-
class BehaviorSubject extends Subject {
|
|
153
|
-
#current;
|
|
154
|
-
constructor(t, scheduler) {
|
|
155
|
-
super(scheduler);
|
|
156
|
-
this.#current = t;
|
|
157
|
-
}
|
|
158
|
-
next(t) {
|
|
159
|
-
this.#current = t;
|
|
160
|
-
return super.next(t);
|
|
161
|
-
}
|
|
162
|
-
subscribe(subscriber) {
|
|
163
|
-
if (subscriber instanceof Function) {
|
|
164
|
-
subscriber = { next: subscriber };
|
|
165
|
-
}
|
|
166
|
-
subscriber.next?.(this.#current);
|
|
167
|
-
return super.subscribe(subscriber);
|
|
168
|
-
}
|
|
169
|
-
get current() {
|
|
170
|
-
return this.#current;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
exports.BehaviorSubject = BehaviorSubject;
|
|
174
|
-
class ReplaySubject extends Subject {
|
|
175
|
-
n;
|
|
176
|
-
#history = [];
|
|
177
|
-
constructor(n, scheduler) {
|
|
178
|
-
super(scheduler);
|
|
179
|
-
this.n = n;
|
|
180
|
-
}
|
|
181
|
-
next(t) {
|
|
182
|
-
this.#history.push(t);
|
|
183
|
-
if (this.#history.length > this.n) {
|
|
184
|
-
this.#history.shift();
|
|
185
|
-
}
|
|
186
|
-
return super.next(t);
|
|
187
|
-
}
|
|
188
|
-
subscribe(subscriber) {
|
|
189
|
-
if (subscriber instanceof Function) {
|
|
190
|
-
subscriber = { next: subscriber };
|
|
191
|
-
}
|
|
192
|
-
const history = [...this.#history];
|
|
193
|
-
(function send() {
|
|
194
|
-
if (history.length == 0)
|
|
195
|
-
return;
|
|
196
|
-
const t = history.shift();
|
|
197
|
-
subscriber.next?.(t);
|
|
198
|
-
new Promise(send);
|
|
199
|
-
})();
|
|
200
|
-
return super.subscribe(subscriber);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
exports.ReplaySubject = ReplaySubject;
|
|
204
|
-
function eventListener() {
|
|
205
|
-
const observable = new Subject();
|
|
206
|
-
function listener(e) {
|
|
207
|
-
e.preventDefault();
|
|
208
|
-
observable.next(e);
|
|
209
|
-
}
|
|
210
|
-
return [observable, listener];
|
|
211
|
-
}
|
|
212
|
-
exports.eventListener = eventListener;
|
|
213
|
-
class EventHandler extends Subject {
|
|
214
|
-
eventFn;
|
|
215
|
-
constructor(eventFn) {
|
|
216
|
-
super();
|
|
217
|
-
this.eventFn = eventFn;
|
|
218
|
-
}
|
|
219
|
-
next(e) {
|
|
220
|
-
e.preventDefault();
|
|
221
|
-
super.next(e);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
exports.EventHandler = EventHandler;
|
|
225
|
-
const watch = (logger = log_js_1.DEFAULT_LOGGER) => (observable) => {
|
|
226
|
-
observable.tap({
|
|
227
|
-
next(t) {
|
|
228
|
-
logger.info(t);
|
|
229
|
-
},
|
|
230
|
-
complete() {
|
|
231
|
-
logger.info("Observable completed");
|
|
232
|
-
},
|
|
233
|
-
error(e) {
|
|
234
|
-
logger.warn(e);
|
|
235
|
-
},
|
|
236
|
-
});
|
|
237
|
-
};
|
|
238
|
-
exports.watch = watch;
|
|
239
|
-
class MapOperator extends Subject {
|
|
240
|
-
mapFn;
|
|
241
|
-
constructor(mapFn) {
|
|
242
|
-
super();
|
|
243
|
-
this.mapFn = mapFn;
|
|
244
|
-
}
|
|
245
|
-
next(t) {
|
|
246
|
-
return super.next(this.mapFn(t));
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
class FilterOperator extends Subject {
|
|
250
|
-
filterFn;
|
|
251
|
-
constructor(filterFn) {
|
|
252
|
-
super();
|
|
253
|
-
this.filterFn = filterFn;
|
|
254
|
-
}
|
|
255
|
-
next(t) {
|
|
256
|
-
return this.filterFn(t) ? super.next(t) : undefined;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
class DistinctOperator extends Subject {
|
|
260
|
-
distinctFn;
|
|
261
|
-
#prior = undefined;
|
|
262
|
-
constructor(distinctFn = Object.is) {
|
|
263
|
-
super();
|
|
264
|
-
this.distinctFn = distinctFn;
|
|
265
|
-
}
|
|
266
|
-
next(t) {
|
|
267
|
-
if (this.#prior === undefined) {
|
|
268
|
-
this.#prior = t;
|
|
269
|
-
return super.next(t);
|
|
270
|
-
}
|
|
271
|
-
const same = this.distinctFn(this.#prior, t);
|
|
272
|
-
if (!same) {
|
|
273
|
-
this.#prior = t;
|
|
274
|
-
return super.next(t);
|
|
275
|
-
}
|
|
276
|
-
return undefined;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
class ReduceOperator extends BehaviorSubject {
|
|
280
|
-
fn;
|
|
281
|
-
constructor(fn, init) {
|
|
282
|
-
super(init);
|
|
283
|
-
this.fn = fn;
|
|
284
|
-
}
|
|
285
|
-
next(t) {
|
|
286
|
-
return super.next(this.fn(this.current, t));
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
class TakeUntilOperator extends Subject {
|
|
290
|
-
constructor(o) {
|
|
291
|
-
super();
|
|
292
|
-
o.subscribe(() => this.complete());
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
exports.TakeUntilOperator = TakeUntilOperator;
|
|
296
|
-
class TapOperator extends Subject {
|
|
297
|
-
subscriber;
|
|
298
|
-
constructor(fn) {
|
|
299
|
-
super();
|
|
300
|
-
this.subscriber = fn instanceof Function ? { next: fn } : fn;
|
|
301
|
-
}
|
|
302
|
-
next(t) {
|
|
303
|
-
this.subscriber.next?.(t);
|
|
304
|
-
return super.next(t);
|
|
305
|
-
}
|
|
306
|
-
error(e) {
|
|
307
|
-
this.subscriber.error?.(e);
|
|
308
|
-
return super.error(e);
|
|
309
|
-
}
|
|
310
|
-
complete() {
|
|
311
|
-
this.subscriber.complete?.();
|
|
312
|
-
return super.complete();
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
exports.TapOperator = TapOperator;
|
|
316
|
-
class FirstOperator extends Subject {
|
|
317
|
-
next(t) {
|
|
318
|
-
const next = super.next(t);
|
|
319
|
-
this.complete();
|
|
320
|
-
return next;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
class LastOperator extends Subject {
|
|
324
|
-
#latest;
|
|
325
|
-
next(t) {
|
|
326
|
-
this.#latest = t;
|
|
327
|
-
}
|
|
328
|
-
complete() {
|
|
329
|
-
if (this.#latest !== undefined) {
|
|
330
|
-
super.next(this.#latest);
|
|
331
|
-
}
|
|
332
|
-
return super.complete();
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
const filter = (fn) => new FilterOperator(fn);
|
|
336
|
-
exports.filter = filter;
|
|
337
|
-
const distinct = (fn) => new DistinctOperator(fn ?? Object.is);
|
|
338
|
-
exports.distinct = distinct;
|
|
339
|
-
const first = () => new FirstOperator();
|
|
340
|
-
exports.first = first;
|
|
341
|
-
const last = () => new LastOperator();
|
|
342
|
-
exports.last = last;
|
|
343
|
-
const map = (fn) => new MapOperator(fn);
|
|
344
|
-
exports.map = map;
|
|
345
|
-
const replay = (n) => new ReplaySubject(n);
|
|
346
|
-
exports.replay = replay;
|
|
347
|
-
const reduce = (fn, init) => new ReduceOperator(fn, init);
|
|
348
|
-
exports.reduce = reduce;
|
|
349
|
-
const takeUntil = (o) => new TakeUntilOperator(o);
|
|
350
|
-
exports.takeUntil = takeUntil;
|
|
351
|
-
const tap = (fn) => new TapOperator(fn);
|
|
352
|
-
exports.tap = tap;
|
|
353
|
-
exports.operator = {
|
|
354
|
-
filter: exports.filter,
|
|
355
|
-
distinct: exports.distinct,
|
|
356
|
-
first: exports.first,
|
|
357
|
-
last: exports.last,
|
|
358
|
-
map: exports.map,
|
|
359
|
-
replay: exports.replay,
|
|
360
|
-
reduce: exports.reduce,
|
|
361
|
-
takeUntil: exports.takeUntil,
|
|
362
|
-
tap: exports.tap,
|
|
363
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const index_js_1 = require("../scope/index.js");
|
|
4
|
-
const observable_js_1 = require("./observable.js");
|
|
5
|
-
(0, index_js_1.describe)("Observables", () => {
|
|
6
|
-
(0, index_js_1.describe)("basics", () => {
|
|
7
|
-
(0, index_js_1.it)("can create and observe a scalar subject", async () => {
|
|
8
|
-
const subject = new observable_js_1.Subject();
|
|
9
|
-
let resolved = 42;
|
|
10
|
-
subject.subscribe({
|
|
11
|
-
next: (n) => {
|
|
12
|
-
resolved = n;
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
(0, index_js_1.expect)(resolved).toBe(42);
|
|
16
|
-
await subject.next(64);
|
|
17
|
-
(0, index_js_1.expect)(resolved).toBe(64);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
(0, index_js_1.describe)("creation", () => {
|
|
21
|
-
(0, index_js_1.it)("builds an observable of items", async () => {
|
|
22
|
-
const stream = observable_js_1.Observable.of(2, 4, 8, 16);
|
|
23
|
-
let values = [];
|
|
24
|
-
await new Promise((resolve) => {
|
|
25
|
-
stream.subscribe({
|
|
26
|
-
next: (n) => {
|
|
27
|
-
values.unshift(n);
|
|
28
|
-
},
|
|
29
|
-
complete: () => {
|
|
30
|
-
resolve();
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
(0, index_js_1.expect)(values).toEqual([16, 8, 4, 2]);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
(0, index_js_1.describe)("pipes", () => {
|
|
38
|
-
(0, index_js_1.it)("runs a pipe", async () => {
|
|
39
|
-
const subject = new observable_js_1.Subject();
|
|
40
|
-
let resolved = 0;
|
|
41
|
-
const inflate = (i) => (n) => n + i;
|
|
42
|
-
const biggerThan = (i) => (n) => n > i;
|
|
43
|
-
const assign = (n) => {
|
|
44
|
-
resolved = n;
|
|
45
|
-
};
|
|
46
|
-
subject.pipe((0, observable_js_1.map)(inflate(22)), (0, observable_js_1.filter)(biggerThan(70))).subscribe(assign);
|
|
47
|
-
(0, index_js_1.expect)(resolved).toBe(0);
|
|
48
|
-
await subject.next(42);
|
|
49
|
-
(0, index_js_1.expect)(resolved).toBe(0);
|
|
50
|
-
await subject.next(50);
|
|
51
|
-
(0, index_js_1.expect)(resolved).toBe(72);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
(0, index_js_1.describe)("Subject", () => {
|
|
55
|
-
(0, index_js_1.it)("is callable", async () => {
|
|
56
|
-
const subject = new observable_js_1.Subject();
|
|
57
|
-
let resolved = 0;
|
|
58
|
-
subject.subscribe((n) => {
|
|
59
|
-
resolved = n;
|
|
60
|
-
});
|
|
61
|
-
await subject.next(42);
|
|
62
|
-
(0, index_js_1.expect)(resolved).toBe(42);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
package/lib/cjs/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"module":"commonjs"}
|
package/lib/cjs/range.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function range(start: number, end: number, stride?: number): number[];
|
package/lib/cjs/range.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.range = void 0;
|
|
4
|
-
function range(start, end, stride = 1) {
|
|
5
|
-
const range = [];
|
|
6
|
-
for (let i = start; i < end; i += stride) {
|
|
7
|
-
range.push(i);
|
|
8
|
-
}
|
|
9
|
-
return range;
|
|
10
|
-
}
|
|
11
|
-
exports.range = range;
|
package/lib/cjs/result.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export declare type None = null;
|
|
2
|
-
export declare type Some<T> = T;
|
|
3
|
-
export declare type Option<T> = Some<T> | None;
|
|
4
|
-
export declare type Err<E = Error> = {
|
|
5
|
-
err: E;
|
|
6
|
-
map: <U>(fn: (t: unknown) => Result<U>) => Result<U>;
|
|
7
|
-
};
|
|
8
|
-
export declare type Ok<T> = {
|
|
9
|
-
ok: T;
|
|
10
|
-
map: <U>(fn: (t: T) => Result<U>) => Result<U>;
|
|
11
|
-
};
|
|
12
|
-
export declare type Result<T, E = Error> = Ok<T> | Err<E>;
|
|
13
|
-
export declare const isNone: <T>(s: Option<T>) => s is null;
|
|
14
|
-
export declare const isSome: <T>(s: Option<T>) => s is T;
|
|
15
|
-
export declare function None<T = unknown>(_?: T): Option<T>;
|
|
16
|
-
export declare function Some<T>(t: Option<T>): Option<T>;
|
|
17
|
-
export declare function Some<T>(t: T): Option<T>;
|
|
18
|
-
export declare const isOk: <T, E>(t: Result<T, E>) => t is Ok<T>;
|
|
19
|
-
export declare const isErr: <T, E>(e: Result<T, E>) => e is Err<E>;
|
|
20
|
-
export declare const isResult: <T, E>(t: Result<T, E>) => t is Result<T, E>;
|
|
21
|
-
export declare function Ok<T>(ok: Ok<T>): T;
|
|
22
|
-
export declare function Ok<T>(t?: T): Ok<T>;
|
|
23
|
-
export declare function Err<E>(e: Err<E>): E;
|
|
24
|
-
export declare function Err<E>(e: E): Err<E>;
|
|
25
|
-
export declare function Err<E>(e: string): Err<E>;
|
|
26
|
-
export declare function unwrap<T, E>(result: Result<T, E>): T | never;
|
|
27
|
-
export declare function unwrap<O>(some: Option<O>): O | never;
|
|
28
|
-
export declare function unwrapOr<T, E>(result: Result<T, E>, def: T): T;
|
|
29
|
-
export declare function unwrapOr<T>(some: Some<T>, def: T): T;
|
|
30
|
-
export declare function unwrapOrElse<T, E>(result: Result<T, Error>, def: () => T): T;
|
|
31
|
-
export declare function unwrapOrElse<T>(some: Some<T>, def: () => T): T;
|
package/lib/cjs/result.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.unwrapOrElse = exports.unwrapOr = exports.unwrap = exports.Err = exports.Ok = exports.isResult = exports.isErr = exports.isOk = exports.Some = exports.None = exports.isSome = exports.isNone = void 0;
|
|
4
|
-
const isNone = (s) => s === null;
|
|
5
|
-
exports.isNone = isNone;
|
|
6
|
-
const isSome = (s) => s != null;
|
|
7
|
-
exports.isSome = isSome;
|
|
8
|
-
function None(_) {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
exports.None = None;
|
|
12
|
-
function Some(t) {
|
|
13
|
-
return t;
|
|
14
|
-
}
|
|
15
|
-
exports.Some = Some;
|
|
16
|
-
const isOk = (t) => Object.prototype.hasOwnProperty.call(t ?? {}, "ok");
|
|
17
|
-
exports.isOk = isOk;
|
|
18
|
-
const isErr = (e) => Object.prototype.hasOwnProperty.call(e, "err");
|
|
19
|
-
exports.isErr = isErr;
|
|
20
|
-
const isResult = (t) => (0, exports.isOk)(t) || (0, exports.isErr)(t);
|
|
21
|
-
exports.isResult = isResult;
|
|
22
|
-
function Ok(t) {
|
|
23
|
-
return (0, exports.isOk)(t)
|
|
24
|
-
? t.ok
|
|
25
|
-
: {
|
|
26
|
-
ok: t,
|
|
27
|
-
map(fn) {
|
|
28
|
-
return fn(Ok(this));
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
exports.Ok = Ok;
|
|
33
|
-
function Err(e) {
|
|
34
|
-
return (e.err ?? {
|
|
35
|
-
err: e,
|
|
36
|
-
map(_fn) {
|
|
37
|
-
return this;
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
exports.Err = Err;
|
|
42
|
-
function unwrap(t) {
|
|
43
|
-
if ((0, exports.isNone)(t)) {
|
|
44
|
-
throw new Error(`Attempted to unwrap None`);
|
|
45
|
-
}
|
|
46
|
-
if ((0, exports.isErr)(t)) {
|
|
47
|
-
throw Err(t);
|
|
48
|
-
}
|
|
49
|
-
if ((0, exports.isOk)(t)) {
|
|
50
|
-
return Ok(t);
|
|
51
|
-
}
|
|
52
|
-
return t;
|
|
53
|
-
}
|
|
54
|
-
exports.unwrap = unwrap;
|
|
55
|
-
function unwrapOr(t, def) {
|
|
56
|
-
if ((0, exports.isNone)(t)) {
|
|
57
|
-
return def;
|
|
58
|
-
}
|
|
59
|
-
if ((0, exports.isErr)(t)) {
|
|
60
|
-
return def;
|
|
61
|
-
}
|
|
62
|
-
if ((0, exports.isOk)(t)) {
|
|
63
|
-
return Ok(t);
|
|
64
|
-
}
|
|
65
|
-
return t;
|
|
66
|
-
}
|
|
67
|
-
exports.unwrapOr = unwrapOr;
|
|
68
|
-
function unwrapOrElse(t, def) {
|
|
69
|
-
if ((0, exports.isNone)(t)) {
|
|
70
|
-
return def();
|
|
71
|
-
}
|
|
72
|
-
if ((0, exports.isErr)(t)) {
|
|
73
|
-
return def();
|
|
74
|
-
}
|
|
75
|
-
if ((0, exports.isOk)(t)) {
|
|
76
|
-
return Ok(t);
|
|
77
|
-
}
|
|
78
|
-
return t;
|
|
79
|
-
}
|
|
80
|
-
exports.unwrapOrElse = unwrapOrElse;
|
package/lib/cjs/result.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/lib/cjs/result.test.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const result_js_1 = require("./result.js");
|
|
4
|
-
const describe_js_1 = require("./scope/describe.js");
|
|
5
|
-
const expect_js_1 = require("./scope/expect.js");
|
|
6
|
-
(0, describe_js_1.describe)("Result", () => {
|
|
7
|
-
(0, describe_js_1.it)("converts Nones", () => {
|
|
8
|
-
const a = (0, result_js_1.None)();
|
|
9
|
-
(0, expect_js_1.expect)(a).toBeNull();
|
|
10
|
-
const b = (0, result_js_1.None)();
|
|
11
|
-
(0, expect_js_1.expect)(b).toBeNull();
|
|
12
|
-
const c = (0, result_js_1.Some)(a);
|
|
13
|
-
(0, expect_js_1.expect)(c).toBeNull();
|
|
14
|
-
const d = (0, result_js_1.Some)(b);
|
|
15
|
-
(0, expect_js_1.expect)(d).toBeNull();
|
|
16
|
-
});
|
|
17
|
-
(0, describe_js_1.it)("converts Somes", () => {
|
|
18
|
-
const a = (0, result_js_1.Some)("a");
|
|
19
|
-
(0, expect_js_1.expect)(a).toBe("a");
|
|
20
|
-
const b = (0, result_js_1.Some)(a);
|
|
21
|
-
(0, expect_js_1.expect)(b).toBe("a");
|
|
22
|
-
});
|
|
23
|
-
(0, describe_js_1.it)("converts Errs", () => {
|
|
24
|
-
const a = (0, result_js_1.Err)(new Error("a error"));
|
|
25
|
-
const b = (0, result_js_1.Err)(a);
|
|
26
|
-
(0, expect_js_1.expect)(b).toMatchObject({ message: "a error" });
|
|
27
|
-
// Assign Err to Result
|
|
28
|
-
const c = a;
|
|
29
|
-
});
|
|
30
|
-
(0, describe_js_1.it)("converts Oks", () => {
|
|
31
|
-
const a = (0, result_js_1.Ok)("a ok");
|
|
32
|
-
const b = (0, result_js_1.Ok)(a);
|
|
33
|
-
(0, expect_js_1.expect)(b).toBe("a ok");
|
|
34
|
-
// Assign ok to Result
|
|
35
|
-
const c = a;
|
|
36
|
-
});
|
|
37
|
-
(0, describe_js_1.it)("unwraps", () => {
|
|
38
|
-
const a = (0, result_js_1.Some)("some");
|
|
39
|
-
const b = (0, result_js_1.None)();
|
|
40
|
-
const c = (0, result_js_1.Ok)("ok");
|
|
41
|
-
const d = (0, result_js_1.Err)(new Error("err"));
|
|
42
|
-
const e = "else";
|
|
43
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrap)(a)).toBe("some");
|
|
44
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrap)(c)).toBe("ok");
|
|
45
|
-
(0, expect_js_1.expect)(() => (0, result_js_1.unwrap)(b)).toThrow("Attempted to unwrap None");
|
|
46
|
-
(0, expect_js_1.expect)(() => (0, result_js_1.unwrap)(d)).toThrow("err");
|
|
47
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrap)(e)).toBe("else");
|
|
48
|
-
});
|
|
49
|
-
(0, describe_js_1.it)("unwrapsOrs", () => {
|
|
50
|
-
const a = (0, result_js_1.Some)("some");
|
|
51
|
-
const b = (0, result_js_1.None)();
|
|
52
|
-
const c = (0, result_js_1.Ok)("ok");
|
|
53
|
-
const d = (0, result_js_1.Err)(new Error("err"));
|
|
54
|
-
const e = "else";
|
|
55
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOr)(a, "z")).toBe("some");
|
|
56
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOr)(c, "z")).toBe("ok");
|
|
57
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOr)(b, "z")).toBe("z");
|
|
58
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOr)(d, "z")).toBe("z");
|
|
59
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOr)(e, "z")).toBe("else");
|
|
60
|
-
});
|
|
61
|
-
(0, describe_js_1.it)("unwrapsOrElse", () => {
|
|
62
|
-
const a = (0, result_js_1.Some)("some");
|
|
63
|
-
const b = (0, result_js_1.None)();
|
|
64
|
-
const c = (0, result_js_1.Ok)("ok");
|
|
65
|
-
const d = (0, result_js_1.Err)(new Error("err"));
|
|
66
|
-
const e = "else";
|
|
67
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOrElse)(a, () => "z")).toBe("some");
|
|
68
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOrElse)(c, () => "z")).toBe("ok");
|
|
69
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOrElse)(b, () => "z")).toBe("z");
|
|
70
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOrElse)(d, () => "z")).toBe("z");
|
|
71
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrapOrElse)(e, () => "z")).toBe("else");
|
|
72
|
-
});
|
|
73
|
-
(0, describe_js_1.it)("allows Result<void> with Ok()", () => {
|
|
74
|
-
let a;
|
|
75
|
-
a = (0, result_js_1.Ok)();
|
|
76
|
-
(0, expect_js_1.expect)((0, result_js_1.unwrap)(a)).toBe(undefined);
|
|
77
|
-
});
|
|
78
|
-
});
|
package/lib/cjs/safe.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const safe: <A extends unknown[], R>(fn: (...args: A) => R, r: R) => (...args: A) => R;
|
package/lib/cjs/safe.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.safe = void 0;
|
|
4
|
-
const log_js_1 = require("./log.js");
|
|
5
|
-
const safe = (fn, r) => (...args) => {
|
|
6
|
-
try {
|
|
7
|
-
return fn(...args);
|
|
8
|
-
}
|
|
9
|
-
catch (e) {
|
|
10
|
-
(0, log_js_1.error)(`${e}`);
|
|
11
|
-
return r;
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
exports.safe = safe;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { TestCase } from "./scope.js";
|
|
2
|
-
export declare const beforeall: unique symbol;
|
|
3
|
-
export declare const beforeeach: unique symbol;
|
|
4
|
-
export declare const afterall: unique symbol;
|
|
5
|
-
export declare const aftereach: unique symbol;
|
|
6
|
-
export declare function rootCases(): TestCase;
|
|
7
|
-
export declare function getTotalCases(): number;
|
|
8
|
-
export declare function getSkippedCases(): number;
|
|
9
|
-
export declare function describe(title: string, block: Function): void;
|
|
10
|
-
export declare function it(title: string, block: Function): void;
|
|
11
|
-
export declare namespace it {
|
|
12
|
-
var skip: (title: string, _block: Function) => void;
|
|
13
|
-
}
|
|
14
|
-
export declare function beforeEach(fn: () => void): void;
|
|
15
|
-
export declare function beforeAll(fn: () => void): void;
|
|
16
|
-
export declare function afterEach(fn: () => void): void;
|
|
17
|
-
export declare function afterAll(fn: () => void): void;
|
|
18
|
-
export declare function cleanState<State extends {}>(init: () => State, runner?: (action: () => void) => void): State;
|