@typed/async-data 0.13.0 → 1.0.0-beta.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/README.md +159 -0
- package/dist/index.d.ts +92 -4
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +169 -5
- package/package.json +18 -28
- package/src/AsyncData.test.ts +417 -62
- package/src/index.test.ts +497 -0
- package/src/index.ts +291 -4
- package/tsconfig.json +5 -26
- package/.nvmrc +0 -1
- package/biome.json +0 -36
- package/dist/AsyncData.d.ts +0 -196
- package/dist/AsyncData.js +0 -285
- package/dist/AsyncData.js.map +0 -1
- package/dist/LazyRef.d.ts +0 -21
- package/dist/LazyRef.js +0 -27
- package/dist/LazyRef.js.map +0 -1
- package/dist/Progress.d.ts +0 -25
- package/dist/Progress.js +0 -21
- package/dist/Progress.js.map +0 -1
- package/dist/TypeId.d.ts +0 -11
- package/dist/TypeId.js +0 -8
- package/dist/TypeId.js.map +0 -1
- package/dist/_internal.d.ts +0 -16
- package/dist/_internal.js +0 -53
- package/dist/_internal.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/readme.md +0 -218
- package/src/AsyncData.ts +0 -654
- package/src/LazyRef.ts +0 -87
- package/src/Progress.ts +0 -33
- package/src/TypeId.ts +0 -13
- package/src/_internal.ts +0 -114
package/dist/AsyncData.js
DELETED
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
import { Cause, Effect, Either, Equal, Equivalence, Exit, identity, Option, Schema, SchemaAST, Unify, } from 'effect';
|
|
2
|
-
import { dual } from 'effect/Function';
|
|
3
|
-
import { Progress } from './Progress.js';
|
|
4
|
-
import { DataEffect, LiteralWithDefault } from './_internal.js';
|
|
5
|
-
export class NoData extends Schema.TaggedError()('NoData', {}) {
|
|
6
|
-
}
|
|
7
|
-
export const noData = () => NoData.make();
|
|
8
|
-
export class Loading extends Schema.TaggedError()('Loading', {
|
|
9
|
-
progress: Schema.optionalWith(Progress, { as: 'Option', default: undefined }),
|
|
10
|
-
}) {
|
|
11
|
-
}
|
|
12
|
-
export function loading(progress) {
|
|
13
|
-
return Loading.make({ progress: Option.fromNullable(progress) });
|
|
14
|
-
}
|
|
15
|
-
export class Success extends DataEffect('Success') {
|
|
16
|
-
constructor(value) {
|
|
17
|
-
super({ value }, Effect.succeed(value));
|
|
18
|
-
}
|
|
19
|
-
static schema(value) {
|
|
20
|
-
return Schema.Struct({
|
|
21
|
-
_tag: LiteralWithDefault()('Success'),
|
|
22
|
-
value,
|
|
23
|
-
}).pipe(Schema.transform(Schema.instanceOf((Success)), {
|
|
24
|
-
strict: true,
|
|
25
|
-
decode: (from) => new Success(from.value),
|
|
26
|
-
encode: identity,
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export function success(value) {
|
|
31
|
-
return new Success(value);
|
|
32
|
-
}
|
|
33
|
-
export class Failure extends DataEffect('Failure') {
|
|
34
|
-
constructor(cause) {
|
|
35
|
-
super({ cause }, Effect.failCause(cause));
|
|
36
|
-
}
|
|
37
|
-
static schema(error) {
|
|
38
|
-
return Schema.Struct({
|
|
39
|
-
_tag: LiteralWithDefault()('Failure'),
|
|
40
|
-
cause: Schema.Cause({
|
|
41
|
-
error,
|
|
42
|
-
defect: Schema.Unknown,
|
|
43
|
-
}),
|
|
44
|
-
}).pipe(Schema.transform(Schema.instanceOf((Failure)), {
|
|
45
|
-
strict: true,
|
|
46
|
-
decode: (from) => new Failure(from.cause),
|
|
47
|
-
encode: identity,
|
|
48
|
-
}));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export function failure(cause) {
|
|
52
|
-
return new Failure(cause);
|
|
53
|
-
}
|
|
54
|
-
export function die(cause) {
|
|
55
|
-
return new Failure(Cause.die(cause));
|
|
56
|
-
}
|
|
57
|
-
export function fail(error) {
|
|
58
|
-
return new Failure(Cause.fail(error));
|
|
59
|
-
}
|
|
60
|
-
export class Refreshing extends DataEffect('Refreshing') {
|
|
61
|
-
constructor(previous, progress) {
|
|
62
|
-
super({ previous, progress }, previous);
|
|
63
|
-
}
|
|
64
|
-
static schema(previous) {
|
|
65
|
-
return Schema.Struct({
|
|
66
|
-
_tag: LiteralWithDefault()('Refreshing'),
|
|
67
|
-
previous,
|
|
68
|
-
progress: Schema.optionalWith(Progress, { as: 'Option', default: undefined }),
|
|
69
|
-
}).pipe(Schema.transform(Schema.instanceOf((Refreshing)), {
|
|
70
|
-
strict: true,
|
|
71
|
-
decode: (from) => new Refreshing(from.previous, from.progress),
|
|
72
|
-
encode: identity,
|
|
73
|
-
}));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
export function refreshing(previous, progress) {
|
|
77
|
-
return new Refreshing(previous, Option.fromNullable(progress));
|
|
78
|
-
}
|
|
79
|
-
export class Optimistic extends DataEffect('Optimistic') {
|
|
80
|
-
constructor(previous, value) {
|
|
81
|
-
super({ previous, value }, Effect.succeed(value));
|
|
82
|
-
}
|
|
83
|
-
static schema(previous, value) {
|
|
84
|
-
return Schema.Struct({
|
|
85
|
-
_tag: LiteralWithDefault()('Optimistic'),
|
|
86
|
-
previous,
|
|
87
|
-
value,
|
|
88
|
-
}).pipe(Schema.transform(Schema.instanceOf((Optimistic)), {
|
|
89
|
-
strict: true,
|
|
90
|
-
decode: (from) => new Optimistic(from.previous, from.value),
|
|
91
|
-
encode: identity,
|
|
92
|
-
}));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
export const optimistic = dual(2, function optimistic(previous, value) {
|
|
96
|
-
return new Optimistic(previous, value);
|
|
97
|
-
});
|
|
98
|
-
export const matchAll = dual(2, function matchAll(data, matchers) {
|
|
99
|
-
switch (data._tag) {
|
|
100
|
-
case 'NoData':
|
|
101
|
-
return matchers.NoData();
|
|
102
|
-
case 'Loading':
|
|
103
|
-
return matchers.Loading(data.progress);
|
|
104
|
-
case 'Success':
|
|
105
|
-
return matchers.Success(data.value);
|
|
106
|
-
case 'Failure':
|
|
107
|
-
return matchers.Failure(data.cause);
|
|
108
|
-
case 'Refreshing':
|
|
109
|
-
return matchers.Refreshing(data.previous, data.progress);
|
|
110
|
-
case 'Optimistic':
|
|
111
|
-
return matchers.Optimistic(data.value, data.previous);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
export const match = dual(2, function match(data, matchers) {
|
|
115
|
-
const match_ = (data, params) => matchAll(data, {
|
|
116
|
-
NoData: matchers.NoData,
|
|
117
|
-
Loading: matchers.Loading,
|
|
118
|
-
Success: (value) => matchers.Success(value, params),
|
|
119
|
-
Failure: (cause) => matchers.Failure(cause, params),
|
|
120
|
-
Refreshing: (previous, progress) => match_(previous, { ...params, isRefreshing: true, progress }),
|
|
121
|
-
Optimistic: (value) => matchers.Success(value, { ...params, isOptimistic: true }),
|
|
122
|
-
});
|
|
123
|
-
return Unify.unify(match_(data, {
|
|
124
|
-
isRefreshing: false,
|
|
125
|
-
isOptimistic: false,
|
|
126
|
-
progress: Option.none(),
|
|
127
|
-
}));
|
|
128
|
-
});
|
|
129
|
-
export function startLoading(data, progress) {
|
|
130
|
-
switch (data._tag) {
|
|
131
|
-
case 'Success':
|
|
132
|
-
case 'Failure':
|
|
133
|
-
return refreshing(data, progress);
|
|
134
|
-
case 'NoData':
|
|
135
|
-
return loading(progress);
|
|
136
|
-
case 'Optimistic':
|
|
137
|
-
return optimistic(startLoading(data.previous, progress), data.value);
|
|
138
|
-
default:
|
|
139
|
-
return data;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
export function stopLoading(data) {
|
|
143
|
-
switch (data._tag) {
|
|
144
|
-
case 'Refreshing':
|
|
145
|
-
return data.previous;
|
|
146
|
-
case 'Loading':
|
|
147
|
-
return noData();
|
|
148
|
-
case 'Optimistic':
|
|
149
|
-
return optimistic(stopLoading(data.previous), data.value);
|
|
150
|
-
default:
|
|
151
|
-
return data;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
export function updateProgress(data, progress) {
|
|
155
|
-
switch (data._tag) {
|
|
156
|
-
case 'Refreshing':
|
|
157
|
-
return refreshing(data.previous, progress);
|
|
158
|
-
case 'Loading':
|
|
159
|
-
return loading(progress);
|
|
160
|
-
case 'Optimistic':
|
|
161
|
-
return optimistic(updateProgress(data.previous, progress), data.value);
|
|
162
|
-
default:
|
|
163
|
-
return data;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
export function AsyncData(schemas, annotations) {
|
|
167
|
-
const identifier = Option.all({
|
|
168
|
-
E: getIdentifier(schemas.failure.ast),
|
|
169
|
-
A: getIdentifier(schemas.success.ast),
|
|
170
|
-
}).pipe(Option.match({
|
|
171
|
-
onNone: () => 'AsyncData',
|
|
172
|
-
onSome: ({ E, A }) => `AsyncData<${E}, ${A}>`,
|
|
173
|
-
}));
|
|
174
|
-
const equivalence = makeEquivalence(Schema.equivalence(schemas.success), Schema.equivalence(schemas.failure));
|
|
175
|
-
const recursive = Schema.suspend(() => AsyncData).annotations({
|
|
176
|
-
identifier,
|
|
177
|
-
equivalence: () => equivalence,
|
|
178
|
-
...annotations,
|
|
179
|
-
});
|
|
180
|
-
const successAndFailure = Schema.Union(Success.schema(schemas.success), Failure.schema(schemas.failure));
|
|
181
|
-
const AsyncData = Schema.Union(NoData, Loading, successAndFailure, Refreshing.schema(successAndFailure), Optimistic.schema(recursive, schemas.success)).annotations({
|
|
182
|
-
equivalence: () => equivalence,
|
|
183
|
-
});
|
|
184
|
-
return class extends AsyncData {
|
|
185
|
-
static eq = equivalence;
|
|
186
|
-
static success = success;
|
|
187
|
-
static failCause = failure;
|
|
188
|
-
static fail = fail;
|
|
189
|
-
static die = die;
|
|
190
|
-
static optimistic = optimistic;
|
|
191
|
-
static refreshing = refreshing;
|
|
192
|
-
static loading = loading;
|
|
193
|
-
static noData = noData;
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
function getIdentifier(ast) {
|
|
197
|
-
return SchemaAST.getJSONIdentifier(ast).pipe(Option.orElse(() => SchemaAST.getTitleAnnotation(ast)));
|
|
198
|
-
}
|
|
199
|
-
export function fromExit(exit) {
|
|
200
|
-
return Exit.match(exit, { onSuccess: (success), onFailure: (failure) });
|
|
201
|
-
}
|
|
202
|
-
export function fromEither(either) {
|
|
203
|
-
return Either.match(either, { onLeft: (fail), onRight: (success) });
|
|
204
|
-
}
|
|
205
|
-
export function fromOption(option) {
|
|
206
|
-
return Option.match(option, { onSome: (success), onNone: (noData) });
|
|
207
|
-
}
|
|
208
|
-
export const map = dual(2, function map(data, f) {
|
|
209
|
-
if (data._tag === 'Success') {
|
|
210
|
-
return new Success(f(data.value));
|
|
211
|
-
}
|
|
212
|
-
else if (data._tag === 'Refreshing' && data.previous._tag === 'Success') {
|
|
213
|
-
return new Refreshing(new Success(f(data.previous.value)), data.progress);
|
|
214
|
-
}
|
|
215
|
-
else if (data._tag === 'Optimistic') {
|
|
216
|
-
if (data.previous._tag === 'Success') {
|
|
217
|
-
return new Optimistic(new Success(f(data.previous.value)), f(data.value));
|
|
218
|
-
}
|
|
219
|
-
else if (data.previous._tag === 'Failure') {
|
|
220
|
-
return new Optimistic(data.previous, f(data.value));
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
return data;
|
|
224
|
-
});
|
|
225
|
-
export const flatMap = dual(2, function flatMap(data, f) {
|
|
226
|
-
if (data._tag === 'Success' || data._tag === 'Optimistic') {
|
|
227
|
-
return f(data.value);
|
|
228
|
-
}
|
|
229
|
-
else if (data._tag === 'Refreshing' && data.previous._tag === 'Success') {
|
|
230
|
-
return f(data.previous.value);
|
|
231
|
-
}
|
|
232
|
-
return data;
|
|
233
|
-
});
|
|
234
|
-
export function isNoData(data) {
|
|
235
|
-
return data._tag === 'NoData';
|
|
236
|
-
}
|
|
237
|
-
export function isLoading(data) {
|
|
238
|
-
return data._tag === 'Loading';
|
|
239
|
-
}
|
|
240
|
-
export function isSuccess(data) {
|
|
241
|
-
return data._tag === 'Success';
|
|
242
|
-
}
|
|
243
|
-
export function isFailure(data) {
|
|
244
|
-
return data._tag === 'Failure';
|
|
245
|
-
}
|
|
246
|
-
export function isRefreshing(data) {
|
|
247
|
-
return data._tag === 'Refreshing';
|
|
248
|
-
}
|
|
249
|
-
export function isLoadingOrRefreshing(data) {
|
|
250
|
-
return isLoading(data) || isRefreshing(data);
|
|
251
|
-
}
|
|
252
|
-
export function isOptimistic(data) {
|
|
253
|
-
return data._tag === 'Optimistic';
|
|
254
|
-
}
|
|
255
|
-
export function makeEquivalence(eqA, eqB) {
|
|
256
|
-
const eqCause = Equivalence.make((a, b) => {
|
|
257
|
-
const failuresA = Array.from(Cause.failures(a));
|
|
258
|
-
const failuresB = Array.from(Cause.failures(b));
|
|
259
|
-
if (failuresA.length > 0) {
|
|
260
|
-
return (failuresA.length === failuresB.length && failuresA.every((e, i) => eqB(e, failuresB[i])));
|
|
261
|
-
}
|
|
262
|
-
return Equal.equals(a, b);
|
|
263
|
-
});
|
|
264
|
-
const eq = Equivalence.make((a, b) => matchAll(a, {
|
|
265
|
-
NoData: () => isNoData(b),
|
|
266
|
-
Loading: (progress) => isLoading(b) && Equal.equals(progress, b.progress),
|
|
267
|
-
Success: (value) => isSuccess(b) && eqA(value, b.value),
|
|
268
|
-
Failure: (cause) => isFailure(b) && eqCause(cause, b.cause),
|
|
269
|
-
Refreshing: (previous, progress) => isRefreshing(b) && eq(previous, b.previous) && Equal.equals(progress, b.progress),
|
|
270
|
-
Optimistic: (value, previous) => isOptimistic(b) && eqA(value, b.value) && eq(previous, b.previous),
|
|
271
|
-
}));
|
|
272
|
-
return eq;
|
|
273
|
-
}
|
|
274
|
-
function unionEquivalence(eqs) {
|
|
275
|
-
return (a, b) => {
|
|
276
|
-
for (const eq of eqs) {
|
|
277
|
-
if (eq(a, b)) {
|
|
278
|
-
return true;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
return false;
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
export const equals = makeEquivalence(Equal.equals, Equal.equals);
|
|
285
|
-
//# sourceMappingURL=AsyncData.js.map
|
package/dist/AsyncData.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncData.js","sourceRoot":"","sources":["../src/AsyncData.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,GACN,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AA0E/D,MAAM,OAAO,MACX,SAAQ,MAAM,CAAC,WAAW,EAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;CACD;AAEnD,MAAM,CAAC,MAAM,MAAM,GAGf,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;AAEvB,MAAM,OAAO,OACX,SAAQ,MAAM,CAAC,WAAW,EAAW,CAAC,SAAS,EAAE;IAC/C,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;CAC9E,CAAC;CACgD;AAIpD,MAAM,UAAU,OAAO,CAAe,QAAmB;IACvD,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,OAAO,OACX,SAAQ,UAAU,CAAC,SAAS,CAA2B;IAGvD,YAAY,KAAQ;QAClB,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,CAAC,MAAM,CACX,KAA6B;QAE7B,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,kBAAkB,EAAU,CAAC,SAAS,CAAC;YAC7C,KAAK;SACN,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,OAAU,CAAA,CAAC,EAAE;YAC9C,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACzC,MAAM,EAAE,QAAQ;SACjB,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAID,MAAM,UAAU,OAAO,CAAI,KAAQ;IACjC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,OAAO,OACX,SAAQ,UAAU,CAAC,SAAS,CAAsD;IAGlF,YAAY,KAAqB;QAC/B,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,CAAC,MAAM,CACX,KAA6B;QAE7B,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,kBAAkB,EAAU,CAAC,SAAS,CAAC;YAC7C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBAClB,KAAK;gBACL,MAAM,EAAE,MAAM,CAAC,OAAO;aACvB,CAAC;SACH,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,OAAU,CAAA,CAAC,EAAE;YAC9C,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACzC,MAAM,EAAE,QAAQ;SACjB,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAID,MAAM,UAAU,OAAO,CAAI,KAAqB;IAC9C,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAID,MAAM,UAAU,GAAG,CAAI,KAAc;IACnC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,IAAI,CAAI,KAAQ;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,OAAO,UACX,SAAQ,UAAU,CAAC,YAAY,CAK9B;IAGD,YAAY,QAAiC,EAAE,QAAiC;QAC9E,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,CAAC,MAAM,CACX,QAIC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,kBAAkB,EAAU,CAAC,YAAY,CAAC;YAChD,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;SAC9E,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,UAAgB,CAAA,CAAC,EAAE;YACpD,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;YAC9D,MAAM,EAAE,QAAQ;SACjB,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CACxB,QAAiC,EACjC,QAAmB;IAEnB,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,OAAO,UACX,SAAQ,UAAU,CAAC,YAAY,CAA+D;IAG9F,YAAY,QAAyB,EAAE,KAAQ;QAC7C,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,MAAM,CACX,QAAsE,EACtE,KAA+B;QAE/B,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,kBAAkB,EAAU,CAAC,YAAY,CAAC;YAChD,QAAQ;YACR,KAAK;SACN,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,UAAgB,CAAA,CAAC,EAAE;YACpD,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;YAC3D,MAAM,EAAE,QAAQ;SACjB,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAGnB,IAAI,CAAC,CAAC,EAAE,SAAS,UAAU,CAAO,QAAyB,EAAE,KAAQ;IACvE,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACxC,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,QAAQ,GA8BjB,IAAI,CACN,CAAC,EACD,SAAS,QAAQ,CACf,IAAqB,EACrB,QAUC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC1B,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxC,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1D,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzD,CAAC;AACH,CAAC,CACF,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAqCd,IAAI,CACN,CAAC,EACD,SAAS,KAAK,CACZ,IAAqB,EACrB,QAeC;IAED,MAAM,MAAM,GAAG,CACb,IAAqB,EACrB,MAIC,EACkB,EAAE,CACrB,QAAQ,CAAC,IAAI,EAAE;QACb,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QACnD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QACnD,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACjC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC/D,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;KAClF,CAAC,CAAA;IAEJ,OAAO,KAAK,CAAC,KAAK,CAChB,MAAM,CAAC,IAAI,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE;KACxB,CAAC,CACH,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,UAAU,YAAY,CAAO,IAAqB,EAAE,QAAmB;IAC3E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnC,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1B,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACtE;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAO,IAAqB;IACrD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,KAAK,SAAS;YACZ,OAAO,MAAM,EAAE,CAAA;QACjB,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3D;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAO,IAAqB,EAAE,QAAkB;IAC5E,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC5C,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1B,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACxE;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAgBD,MAAM,UAAU,SAAS,CACvB,OAGC,EACD,WAAwD;IAExD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC;QAC5B,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QACrC,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;KACtC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,CAAC;QACX,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW;QACzB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG;KAC9C,CAAC,CACH,CAAA;IAED,MAAM,WAAW,GAAG,eAAe,CACjC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EACnC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CACpC,CAAA;IAED,MAAM,SAAS,GAIX,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC;QAC9C,UAAU;QACV,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW;QAC9B,GAAG,WAAW;KACf,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CACpC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAChC,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAC5B,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,EACpC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAC9C,CAAC,WAAW,CAAC;QACZ,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW;KAC/B,CAAC,CAAA;IAEF,OAAO,KAAM,SAAQ,SAAS;QAC5B,MAAM,CAAU,EAAE,GAAG,WAAW,CAAA;QAChC,MAAM,CAAU,OAAO,GAAG,OAAO,CAAA;QACjC,MAAM,CAAU,SAAS,GAAG,OAAO,CAAA;QACnC,MAAM,CAAU,IAAI,GAAG,IAAI,CAAA;QAC3B,MAAM,CAAU,GAAG,GAAG,GAAG,CAAA;QACzB,MAAM,CAAU,UAAU,GAAG,UAAU,CAAA;QACvC,MAAM,CAAU,UAAU,GAAG,UAAU,CAAA;QACvC,MAAM,CAAU,OAAO,GAAG,OAAO,CAAA;QACjC,MAAM,CAAU,MAAM,GAAG,MAAM,CAAA;KAChC,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAkB;IACvC,OAAO,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CACvD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAO,IAAqB;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAA,OAAU,CAAA,EAAE,SAAS,EAAE,CAAA,OAAU,CAAA,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,UAAU,CAAO,MAA2B;IAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAA,IAAO,CAAA,EAAE,OAAO,EAAE,CAAA,OAAU,CAAA,EAAE,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,MAAwB;IACpD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAA,OAAU,CAAA,EAAE,MAAM,EAAE,CAAA,MAAS,CAAA,EAAE,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAGZ,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,CAAU,IAAqB,EAAE,CAAc;IACrE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACnC,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,IAAI,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3E,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,IAAI,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3E,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAED,OAAO,IAAuB,CAAA;AAChC,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAGhB,IAAI,CAAC,CAAC,EAAE,SAAS,OAAO,CAK1B,IAAqB,EAAE,CAA6B;IACpD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1D,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,IAAuB,CAAA;AAChC,CAAC,CAAC,CAAA;AAEF,MAAM,UAAU,QAAQ,CAAO,IAAqB;IAClD,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS,CAAO,IAAqB;IACnD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,SAAS,CAAO,IAAqB;IACnD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,SAAS,CAAO,IAAqB;IACnD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAO,IAAqB;IACtD,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAqB;IAErB,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY,CAAO,IAAqB;IACtD,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAA+B,EAC/B,GAA+B;IAE/B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,CAAiB,EAAE,EAAE;QACxE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CACL,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CACzF,CAAA;QACH,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,MAAM,EAAE,GAA6C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7E,QAAQ,CAAC,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;QACzE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;QACvD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;QAC3D,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACjC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;QACnF,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC9B,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;KACrE,CAAC,CACH,CAAA;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAID,SAAS,gBAAgB,CACvB,GAAQ;IAER,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACd,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACb,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA"}
|
package/dist/LazyRef.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as L from '@typed/lazy-ref';
|
|
2
|
-
import { Effect, Layer } from 'effect';
|
|
3
|
-
import type { Scope } from 'effect/Scope';
|
|
4
|
-
import * as AsyncData from './AsyncData.js';
|
|
5
|
-
export interface LazyRef<A, E = never, R = never> extends L.LazyRef<AsyncData.AsyncData<A, E>, never, R> {
|
|
6
|
-
}
|
|
7
|
-
export type LazyRefOptions<A, E = never> = L.LazyRefOptions<AsyncData.AsyncData<A, E>> & {
|
|
8
|
-
readonly drop?: number;
|
|
9
|
-
readonly take?: number;
|
|
10
|
-
};
|
|
11
|
-
export interface Tagged<Self, Id extends string, A, E = never> extends L.TaggedClass<Self, Id, AsyncData.AsyncData<A, E>, never> {
|
|
12
|
-
readonly Default: Layer.Layer<Self>;
|
|
13
|
-
readonly fromEffect: <R>(effect: Effect.Effect<A, E, R>) => Layer.Layer<Self, never, Exclude<R, Scope>>;
|
|
14
|
-
readonly run: <R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<AsyncData.AsyncData<A, E>, never, R | Self>;
|
|
15
|
-
}
|
|
16
|
-
export declare function Tag<const Id extends string>(id: Id): <Self, A, E = never>(options?: L.LazyRefOptions<AsyncData.AsyncData<A, E>>) => Tagged<Self, Id, A, E>;
|
|
17
|
-
export declare function lazyRef<A, E = never>(options?: L.LazyRefOptions<AsyncData.AsyncData<A, E>>): Effect.Effect<LazyRef<A, E>, never, Scope>;
|
|
18
|
-
export declare const runEffect: {
|
|
19
|
-
<A, E, R2>(effect: Effect.Effect<A, E, R2>): <R>(lazyRef: L.LazyRef<AsyncData.AsyncData<A, E>, never, R>) => Effect.Effect<AsyncData.AsyncData<A, E>, never, R | R2>;
|
|
20
|
-
<A, E, R, R2>(lazyRef: L.LazyRef<AsyncData.AsyncData<A, E>, never, R>, effect: Effect.Effect<A, E, R2>): Effect.Effect<AsyncData.AsyncData<A, E>, never, R | R2>;
|
|
21
|
-
};
|
package/dist/LazyRef.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as L from '@typed/lazy-ref';
|
|
2
|
-
import { Effect, Layer } from 'effect';
|
|
3
|
-
import { dual } from 'effect/Function';
|
|
4
|
-
import * as AsyncData from './AsyncData.js';
|
|
5
|
-
export function Tag(id) {
|
|
6
|
-
return (options) => class extends L.Tag(id)() {
|
|
7
|
-
static Default = this.make(Effect.sync((AsyncData.noData)), options);
|
|
8
|
-
static fromEffect = (effect) => Layer.scoped(this.tag, Effect.gen(function* () {
|
|
9
|
-
const ref = yield* lazyRef(options);
|
|
10
|
-
yield* runEffect(ref, effect).pipe(Effect.forkScoped, Effect.interruptible);
|
|
11
|
-
return ref;
|
|
12
|
-
}));
|
|
13
|
-
static run = (effect) => runEffect(this, effect);
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export function lazyRef(options) {
|
|
17
|
-
return L.sync((AsyncData.noData), options);
|
|
18
|
-
}
|
|
19
|
-
export const runEffect = dual(2, function runEffect(lazyRef, effect) {
|
|
20
|
-
return lazyRef.runUpdates(({ get, set }) => Effect.gen(function* () {
|
|
21
|
-
const initial = yield* get;
|
|
22
|
-
yield* set(AsyncData.startLoading(initial));
|
|
23
|
-
const exit = yield* effect.pipe(Effect.onInterrupt(() => set(initial)), Effect.exit);
|
|
24
|
-
return yield* set(AsyncData.fromExit(exit));
|
|
25
|
-
}));
|
|
26
|
-
});
|
|
27
|
-
//# sourceMappingURL=LazyRef.js.map
|
package/dist/LazyRef.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LazyRef.js","sourceRoot":"","sources":["../src/LazyRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAwB3C,MAAM,UAAU,GAAG,CAA0B,EAAM;IACjD,OAAO,CACL,OAAqD,EAC7B,EAAE,CAC1B,KAAM,SAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAmC;QACxD,MAAM,CAAU,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,SAAS,CAAC,MAAY,CAAA,CAAC,EAAE,OAAO,CAAC,CAAA;QAEjF,MAAM,CAAU,UAAU,GAAG,CAAI,MAA8B,EAAE,EAAE,CACjE,KAAK,CAAC,MAAM,CACV,IAAI,CAAC,GAAG,EACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACnC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAA;YAC3E,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CACH,CAAA;QAEH,MAAM,CAAU,GAAG,GAAG,CAAI,MAA8B,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KACrF,CAAA;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAqD;IAErD,OAAO,CAAC,CAAC,IAAI,CAA4B,CAAA,SAAS,CAAC,MAAY,CAAA,EAAE,OAAO,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAUlB,IAAI,CAAC,CAAC,EAAE,SAAS,SAAS,CAK5B,OAAuD,EAAE,MAA+B;IAKxF,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAA;QAC1B,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAC7B,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EACtC,MAAM,CAAC,IAAI,CACZ,CAAA;QACD,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/dist/Progress.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
export declare const Progress: Schema.Struct<{
|
|
3
|
-
loaded: typeof Schema.Number;
|
|
4
|
-
total: Schema.optionalWith<typeof Schema.Number, {
|
|
5
|
-
as: "Option";
|
|
6
|
-
default: undefined;
|
|
7
|
-
}>;
|
|
8
|
-
}>;
|
|
9
|
-
export type ProgressEncoded = typeof Progress.Encoded;
|
|
10
|
-
export type Progress = typeof Progress.Type;
|
|
11
|
-
export declare const empty: Progress;
|
|
12
|
-
/**
|
|
13
|
-
* @since 1.0.0
|
|
14
|
-
*/
|
|
15
|
-
export declare const setLoaded: {
|
|
16
|
-
(loaded: number): (progress: Progress) => Progress;
|
|
17
|
-
(progress: Progress, loaded: number): Progress;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* @since 1.0.0
|
|
21
|
-
*/
|
|
22
|
-
export declare const setTotal: {
|
|
23
|
-
(total: number): (progress: Progress) => Progress;
|
|
24
|
-
(progress: Progress, total: number): Progress;
|
|
25
|
-
};
|
package/dist/Progress.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Option, Schema } from 'effect';
|
|
2
|
-
import { dual } from 'effect/Function';
|
|
3
|
-
import { DataStruct } from './_internal.js';
|
|
4
|
-
export const Progress = DataStruct({
|
|
5
|
-
loaded: Schema.Number,
|
|
6
|
-
total: Schema.optionalWith(Schema.Number, { as: 'Option', default: undefined }),
|
|
7
|
-
});
|
|
8
|
-
export const empty = Progress.make({ loaded: 0, total: Option.none() });
|
|
9
|
-
/**
|
|
10
|
-
* @since 1.0.0
|
|
11
|
-
*/
|
|
12
|
-
export const setLoaded = dual(2, function setLoaded(progress, loaded) {
|
|
13
|
-
return Progress.make({ loaded, total: progress.total });
|
|
14
|
-
});
|
|
15
|
-
/**
|
|
16
|
-
* @since 1.0.0
|
|
17
|
-
*/
|
|
18
|
-
export const setTotal = dual(2, function setTotal(progress, total) {
|
|
19
|
-
return Progress.make({ loaded: progress.loaded, total: Option.some(total) });
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=Progress.js.map
|
package/dist/Progress.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.js","sourceRoot":"","sources":["../src/Progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;CAChF,CAAC,CAAA;AAKF,MAAM,CAAC,MAAM,KAAK,GAAa,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAGlB,IAAI,CAAC,CAAC,EAAE,SAAS,SAAS,CAAC,QAAkB,EAAE,MAAc;IAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;AACzD,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAGjB,IAAI,CAAC,CAAC,EAAE,SAAS,QAAQ,CAAC,QAAkB,EAAE,KAAa;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAC9E,CAAC,CAAC,CAAA"}
|
package/dist/TypeId.d.ts
DELETED
package/dist/TypeId.js
DELETED
package/dist/TypeId.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypeId.js","sourceRoot":"","sources":["../src/TypeId.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA"}
|
package/dist/_internal.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { type Effect, Equal, Hash, Schema, type SchemaAST } from 'effect';
|
|
2
|
-
/**
|
|
3
|
-
* Constructs the same interface as `Schema.Struct`, but with the ability to
|
|
4
|
-
* wrap it in Data.struct to ensure we can hash the struct.
|
|
5
|
-
*/
|
|
6
|
-
export declare function DataStruct<Fields extends Schema.Struct.Fields>(fields: Fields): Schema.Struct<Fields>;
|
|
7
|
-
export type LiteralWithDefault<K extends string, A extends SchemaAST.LiteralValue> = Schema.PropertySignature<':', A, K, ':', A, true, never>;
|
|
8
|
-
export declare function LiteralWithDefault<K extends string>(): <const A extends SchemaAST.LiteralValue>(value: A) => LiteralWithDefault<K, A>;
|
|
9
|
-
export type DataEffect<F extends Record<string, any>, A, E = never, R = never> = Effect.Effect<A, E, R> & F & Hash.Hash & Equal.Equal;
|
|
10
|
-
export interface DataEffectClass<Tag extends string> {
|
|
11
|
-
readonly _tag: Tag;
|
|
12
|
-
new <Fields extends Record<string, any>, A = never, E = never, R = never>(fields: Fields, commit: Effect.Effect<A, E, R>): DataEffect<Fields & {
|
|
13
|
-
readonly _tag: Tag;
|
|
14
|
-
}, A, E, R>;
|
|
15
|
-
}
|
|
16
|
-
export declare function DataEffect<const Tag extends string>(tag: Tag): DataEffectClass<Tag>;
|
package/dist/_internal.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Data, Effectable, Equal, Hash, Predicate, Schema, } from 'effect';
|
|
2
|
-
import { structuralRegion } from 'effect/Utils';
|
|
3
|
-
/**
|
|
4
|
-
* Constructs the same interface as `Schema.Struct`, but with the ability to
|
|
5
|
-
* wrap it in Data.struct to ensure we can hash the struct.
|
|
6
|
-
*/
|
|
7
|
-
export function DataStruct(fields) {
|
|
8
|
-
return liftStructIntoDataStruct(Schema.Struct(fields));
|
|
9
|
-
}
|
|
10
|
-
function liftStructIntoDataStruct(struct) {
|
|
11
|
-
const data = Schema.Data(struct);
|
|
12
|
-
return Object.assign(data, {
|
|
13
|
-
make: (...params) => Data.struct(struct.make(...params)),
|
|
14
|
-
pick: (...params) => liftStructIntoDataStruct(struct.pick(...params)),
|
|
15
|
-
omit: (...params) => liftStructIntoDataStruct(struct.omit(...params)),
|
|
16
|
-
fields: struct.fields,
|
|
17
|
-
records: struct.records,
|
|
18
|
-
annotations: (...params) => liftStructIntoDataStruct(struct.annotations(...params)),
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
export function LiteralWithDefault() {
|
|
22
|
-
return (value) => {
|
|
23
|
-
return Schema.optionalWith(Schema.Literal(value), { default: () => value });
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
class AbstractDataEffect extends Effectable.Class {
|
|
27
|
-
constructor(fields) {
|
|
28
|
-
super();
|
|
29
|
-
Object.assign(this, fields);
|
|
30
|
-
}
|
|
31
|
-
[Hash.symbol]() {
|
|
32
|
-
return Hash.structure(this);
|
|
33
|
-
}
|
|
34
|
-
[Equal.symbol](that) {
|
|
35
|
-
return Predicate.isObject(that) && structuralRegion(() => Equal.equals(this, that));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export function DataEffect(tag) {
|
|
39
|
-
class DataEffect extends AbstractDataEffect {
|
|
40
|
-
effect;
|
|
41
|
-
static _tag = tag;
|
|
42
|
-
_tag = tag;
|
|
43
|
-
constructor(fields, effect) {
|
|
44
|
-
super(fields);
|
|
45
|
-
this.effect = effect;
|
|
46
|
-
}
|
|
47
|
-
commit() {
|
|
48
|
-
return this.effect;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return DataEffect;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=_internal.js.map
|
package/dist/_internal.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_internal.js","sourceRoot":"","sources":["../src/_internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAEJ,UAAU,EACV,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,GAEP,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,MAAc;IAEd,OAAO,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAA6B;IAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEhC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,IAAI,EAAE,CAAC,GAAG,MAAsC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QACxF,IAAI,EAAE,CAAwC,GAAG,MAAS,EAAE,EAAE,CAC5D,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAClD,IAAI,EAAE,CAAwC,GAAG,MAAS,EAAE,EAAE,CAC5D,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAClD,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,CAAC,GAAG,MAA6C,EAAE,EAAE,CAChE,wBAAwB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAAC;KAC1D,CAAC,CAAA;AACJ,CAAC;AAOD,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAyC,KAAQ,EAA4B,EAAE;QACpF,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAQ,CAAA;IACpF,CAAC,CAAA;AACH,CAAC;AAoBD,MAAe,kBACb,SAAQ,UAAU,CAAC,KAAc;IAGjC,YAAY,MAAS;QACnB,KAAK,EAAE,CAAA;QACP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7B,CAAC;IAID,CAAC,IAAI,CAAC,MAAM,CAAC;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAa;QAC1B,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACrF,CAAC;CACF;AAED,MAAM,UAAU,UAAU,CAA2B,GAAQ;IAC3D,MAAM,UAKJ,SAAQ,kBAAmC;QAMhC;QALX,MAAM,CAAU,IAAI,GAAG,GAAG,CAAA;QACjB,IAAI,GAAG,GAAG,CAAA;QAEnB,YACE,MAAc,EACL,MAA8B;YAEvC,KAAK,CAAC,MAAM,CAAC,CAAA;YAFJ,WAAM,GAAN,MAAM,CAAwB;QAGzC,CAAC;QAED,MAAM;YACJ,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;;IAGH,OAAO,UAAiB,CAAA;AAC1B,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA"}
|