@typed/async-data 0.11.0 → 0.13.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/.nvmrc +1 -0
- package/biome.json +36 -0
- package/dist/AsyncData.d.ts +196 -0
- package/dist/AsyncData.js +285 -0
- package/dist/AsyncData.js.map +1 -0
- package/dist/LazyRef.d.ts +21 -0
- package/dist/LazyRef.js +27 -0
- package/dist/LazyRef.js.map +1 -0
- package/dist/Progress.d.ts +25 -0
- package/dist/Progress.js +21 -0
- package/dist/Progress.js.map +1 -0
- package/dist/{dts/TypeId.d.ts → TypeId.d.ts} +0 -1
- package/dist/TypeId.js +8 -0
- package/dist/TypeId.js.map +1 -0
- package/dist/_internal.d.ts +16 -0
- package/dist/_internal.js +53 -0
- package/dist/_internal.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/package.json +31 -48
- package/readme.md +218 -0
- package/src/AsyncData.test.ts +89 -0
- package/src/AsyncData.ts +555 -595
- package/src/LazyRef.ts +87 -0
- package/src/Progress.ts +18 -65
- package/src/TypeId.ts +1 -1
- package/src/_internal.ts +114 -0
- package/src/index.ts +4 -0
- package/tsconfig.json +27 -0
- package/AsyncData/package.json +0 -6
- package/LICENSE +0 -21
- package/Progress/package.json +0 -6
- package/README.md +0 -5
- package/Schema/package.json +0 -6
- package/TypeId/package.json +0 -6
- package/dist/cjs/AsyncData.js +0 -399
- package/dist/cjs/AsyncData.js.map +0 -1
- package/dist/cjs/Progress.js +0 -62
- package/dist/cjs/Progress.js.map +0 -1
- package/dist/cjs/Schema.js +0 -538
- package/dist/cjs/Schema.js.map +0 -1
- package/dist/cjs/TypeId.js +0 -14
- package/dist/cjs/TypeId.js.map +0 -1
- package/dist/cjs/internal/async-data.js +0 -94
- package/dist/cjs/internal/async-data.js.map +0 -1
- package/dist/cjs/internal/tag.js +0 -12
- package/dist/cjs/internal/tag.js.map +0 -1
- package/dist/dts/AsyncData.d.ts +0 -386
- package/dist/dts/AsyncData.d.ts.map +0 -1
- package/dist/dts/Progress.d.ts +0 -43
- package/dist/dts/Progress.d.ts.map +0 -1
- package/dist/dts/Schema.d.ts +0 -78
- package/dist/dts/Schema.d.ts.map +0 -1
- package/dist/dts/TypeId.d.ts.map +0 -1
- package/dist/dts/internal/async-data.d.ts +0 -43
- package/dist/dts/internal/async-data.d.ts.map +0 -1
- package/dist/dts/internal/tag.d.ts +0 -6
- package/dist/dts/internal/tag.d.ts.map +0 -1
- package/dist/esm/AsyncData.js +0 -372
- package/dist/esm/AsyncData.js.map +0 -1
- package/dist/esm/Progress.js +0 -49
- package/dist/esm/Progress.js.map +0 -1
- package/dist/esm/Schema.js +0 -500
- package/dist/esm/Schema.js.map +0 -1
- package/dist/esm/TypeId.js +0 -8
- package/dist/esm/TypeId.js.map +0 -1
- package/dist/esm/internal/async-data.js +0 -91
- package/dist/esm/internal/async-data.js.map +0 -1
- package/dist/esm/internal/tag.js +0 -6
- package/dist/esm/internal/tag.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/src/Schema.ts +0 -750
- package/src/internal/async-data.ts +0 -114
- package/src/internal/tag.ts +0 -9
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
// Internal
|
|
2
|
-
|
|
3
|
-
import type * as Cause from "effect/Cause"
|
|
4
|
-
import * as Effect from "effect/Effect"
|
|
5
|
-
import * as Effectable from "effect/Effectable"
|
|
6
|
-
import * as Equal from "effect/Equal"
|
|
7
|
-
import { constant, pipe } from "effect/Function"
|
|
8
|
-
import * as Hash from "effect/Hash"
|
|
9
|
-
import type * as Option from "effect/Option"
|
|
10
|
-
import { hasProperty } from "effect/Predicate"
|
|
11
|
-
import type { AsyncData, Failure, Loading, Optimistic, Success } from "../AsyncData.js"
|
|
12
|
-
import { AsyncDataTypeId } from "../TypeId.js"
|
|
13
|
-
import { FAILURE_TAG, OPTIMISTIC_TAG, SUCCESS_TAG } from "./tag.js"
|
|
14
|
-
|
|
15
|
-
// @ts-expect-error
|
|
16
|
-
export class FailureImpl<E> extends Effectable.Class<never, E, never> implements Failure<E> {
|
|
17
|
-
readonly [AsyncDataTypeId]: AsyncDataTypeId = AsyncDataTypeId
|
|
18
|
-
readonly _tag = FAILURE_TAG
|
|
19
|
-
|
|
20
|
-
commit: () => Effect.Effect<never, E, never>
|
|
21
|
-
|
|
22
|
-
constructor(readonly cause: Cause.Cause<E>, readonly timestamp: number, readonly refreshing: Option.Option<Loading>) {
|
|
23
|
-
super()
|
|
24
|
-
|
|
25
|
-
this.commit = constant(Effect.failCause(cause))
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
[Equal.symbol](that: unknown) {
|
|
29
|
-
if (this === that) return true
|
|
30
|
-
|
|
31
|
-
if (!isAsyncData(that) || that._tag !== FAILURE_TAG) return false
|
|
32
|
-
|
|
33
|
-
return Equal.equals(this.cause, that.cause)
|
|
34
|
-
&& this.timestamp === that.timestamp
|
|
35
|
-
&& Equal.equals(this.refreshing, that.refreshing)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
[Hash.symbol]() {
|
|
39
|
-
return pipe(
|
|
40
|
-
Hash.string(this._tag),
|
|
41
|
-
Hash.combine(Hash.hash(this.cause)),
|
|
42
|
-
Hash.combine(Hash.hash(this.timestamp)),
|
|
43
|
-
Hash.combine(Hash.hash(this.refreshing))
|
|
44
|
-
)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// @ts-expect-error
|
|
49
|
-
export class SuccessImpl<A> extends Effectable.Class<A> implements Success<A> {
|
|
50
|
-
readonly [AsyncDataTypeId]: AsyncDataTypeId = AsyncDataTypeId
|
|
51
|
-
readonly _tag = SUCCESS_TAG
|
|
52
|
-
|
|
53
|
-
commit: () => Effect.Effect<A>
|
|
54
|
-
|
|
55
|
-
constructor(readonly value: A, readonly timestamp: number, readonly refreshing: Option.Option<Loading>) {
|
|
56
|
-
super()
|
|
57
|
-
|
|
58
|
-
this.commit = constant(Effect.succeed(value))
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
[Equal.symbol](that: unknown) {
|
|
62
|
-
return isAsyncData(that) && that._tag === SUCCESS_TAG
|
|
63
|
-
&& Equal.equals(this.value, that.value)
|
|
64
|
-
&& Equal.equals(this.timestamp, that.timestamp)
|
|
65
|
-
&& Equal.equals(this.refreshing, that.refreshing)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
[Hash.symbol]() {
|
|
69
|
-
return pipe(
|
|
70
|
-
Hash.string(this._tag),
|
|
71
|
-
Hash.combine(Hash.hash(this.value)),
|
|
72
|
-
Hash.combine(Hash.hash(this.timestamp)),
|
|
73
|
-
Hash.combine(Hash.hash(this.refreshing))
|
|
74
|
-
)
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// @ts-expect-error
|
|
79
|
-
export class OptimisticImpl<A, E> extends Effectable.Class<A> implements Optimistic<A, E> {
|
|
80
|
-
readonly [AsyncDataTypeId]: AsyncDataTypeId = AsyncDataTypeId
|
|
81
|
-
readonly _tag = OPTIMISTIC_TAG
|
|
82
|
-
|
|
83
|
-
commit: () => Effect.Effect<A>
|
|
84
|
-
|
|
85
|
-
constructor(
|
|
86
|
-
readonly value: A,
|
|
87
|
-
readonly timestamp: number,
|
|
88
|
-
readonly previous: AsyncData<A, E>
|
|
89
|
-
) {
|
|
90
|
-
super()
|
|
91
|
-
|
|
92
|
-
this.commit = constant(Effect.succeed(value))
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
[Equal.symbol](that: unknown) {
|
|
96
|
-
return isAsyncData(that) && that._tag === OPTIMISTIC_TAG
|
|
97
|
-
&& Equal.equals(this.value, that.value)
|
|
98
|
-
&& Equal.equals(this.timestamp, that.timestamp)
|
|
99
|
-
&& Equal.equals(this.previous, that.previous)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
[Hash.symbol]() {
|
|
103
|
-
return pipe(
|
|
104
|
-
Hash.string(this._tag),
|
|
105
|
-
Hash.combine(Hash.hash(this.value)),
|
|
106
|
-
Hash.combine(Hash.hash(this.timestamp)),
|
|
107
|
-
Hash.combine(Hash.hash(this.previous))
|
|
108
|
-
)
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
export function isAsyncData<E, A>(u: unknown): u is AsyncData<E, A> {
|
|
113
|
-
return hasProperty(u, AsyncDataTypeId)
|
|
114
|
-
}
|
package/src/internal/tag.ts
DELETED