effect-app 1.0.12 → 1.1.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/CHANGELOG.md +6 -0
- package/_cjs/client.cjs +0 -11
- package/_cjs/client.cjs.map +1 -1
- package/dist/client.d.ts +0 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -2
- package/package.json +1 -11
- package/src/client.ts +0 -1
- package/_cjs/client/QueryResult.cjs +0 -113
- package/_cjs/client/QueryResult.cjs.map +0 -1
- package/dist/client/QueryResult.d.ts +0 -76
- package/dist/client/QueryResult.d.ts.map +0 -1
- package/dist/client/QueryResult.js +0 -80
- package/src/client/QueryResult.ts +0 -121
package/CHANGELOG.md
CHANGED
package/_cjs/client.cjs
CHANGED
|
@@ -47,15 +47,4 @@ Object.keys(_fetch).forEach(function (key) {
|
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
|
-
var _QueryResult = require("./client/QueryResult.cjs");
|
|
51
|
-
Object.keys(_QueryResult).forEach(function (key) {
|
|
52
|
-
if (key === "default" || key === "__esModule") return;
|
|
53
|
-
if (key in exports && exports[key] === _QueryResult[key]) return;
|
|
54
|
-
Object.defineProperty(exports, key, {
|
|
55
|
-
enumerable: true,
|
|
56
|
-
get: function () {
|
|
57
|
-
return _QueryResult[key];
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
50
|
//# sourceMappingURL=client.cjs.map
|
package/_cjs/client.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.cjs","names":["_clientFor","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_config","_errors","_fetch"
|
|
1
|
+
{"version":3,"file":"client.cjs","names":["_clientFor","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_config","_errors","_fetch"],"sources":["../src/client.ts"],"sourcesContent":[null],"mappings":";;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,UAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,UAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,UAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,OAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,OAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,OAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,OAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
package/dist/client.d.ts
CHANGED
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA"}
|
package/dist/client.js
CHANGED
|
@@ -3,6 +3,5 @@ export * from "./client/clientFor.js";
|
|
|
3
3
|
export * from "./client/config.js";
|
|
4
4
|
export * from "./client/errors.js";
|
|
5
5
|
export * from "./client/fetch.js";
|
|
6
|
-
export * from "./client/QueryResult.js";
|
|
7
6
|
// codegen:end
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7QUFDekQsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -139,16 +139,6 @@
|
|
|
139
139
|
"default": "./_cjs/client.cjs"
|
|
140
140
|
}
|
|
141
141
|
},
|
|
142
|
-
"./client/QueryResult": {
|
|
143
|
-
"import": {
|
|
144
|
-
"types": "./dist/client/QueryResult.d.ts",
|
|
145
|
-
"default": "./dist/client/QueryResult.js"
|
|
146
|
-
},
|
|
147
|
-
"require": {
|
|
148
|
-
"types": "./dist/client/QueryResult.d.ts",
|
|
149
|
-
"default": "./_cjs/client/QueryResult.cjs"
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
142
|
"./client/clientFor": {
|
|
153
143
|
"import": {
|
|
154
144
|
"types": "./dist/client/clientFor.d.ts",
|
package/src/client.ts
CHANGED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.fail = exports.Refreshing = exports.Loading = exports.Initial = exports.Done = void 0;
|
|
7
|
-
exports.hasValue = hasValue;
|
|
8
|
-
exports.isDone = isDone;
|
|
9
|
-
exports.isFailed = isFailed;
|
|
10
|
-
exports.isInitializing = isInitializing;
|
|
11
|
-
exports.isRefreshing = isRefreshing;
|
|
12
|
-
exports.isSuccess = isSuccess;
|
|
13
|
-
exports.queryResult = queryResult;
|
|
14
|
-
exports.succeed = void 0;
|
|
15
|
-
var _core = require("@effect-app/core");
|
|
16
|
-
var Either = _interopRequireWildcard(require("effect/Either"));
|
|
17
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
18
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
|
-
// TODO: Convert to effect/core
|
|
20
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
21
|
-
|
|
22
|
-
class Initial extends _core.Data.TaggedClass("Initial") {}
|
|
23
|
-
exports.Initial = Initial;
|
|
24
|
-
class Loading extends _core.Data.TaggedClass("Loading") {}
|
|
25
|
-
exports.Loading = Loading;
|
|
26
|
-
class Refreshing extends _core.Data.TaggedClass("Refreshing") {
|
|
27
|
-
static succeed(a) {
|
|
28
|
-
return new Refreshing({
|
|
29
|
-
current: Either.right(a),
|
|
30
|
-
previous: _core.Option.none()
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
static fail(e, previous) {
|
|
34
|
-
return new Refreshing({
|
|
35
|
-
current: Either.left(e),
|
|
36
|
-
previous: previous === undefined ? _core.Option.none() : _core.Option.some(previous)
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
static fromDone(d) {
|
|
40
|
-
return new Refreshing(d);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
exports.Refreshing = Refreshing;
|
|
44
|
-
class Done extends _core.Data.TaggedClass("Done") {
|
|
45
|
-
static succeed(a) {
|
|
46
|
-
return new Done({
|
|
47
|
-
current: Either.right(a),
|
|
48
|
-
previous: _core.Option.none()
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
static fail(e, previous) {
|
|
52
|
-
return new Done({
|
|
53
|
-
current: Either.left(e),
|
|
54
|
-
previous: previous === undefined ? _core.Option.none() : _core.Option.some(previous)
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
static refresh(d) {
|
|
58
|
-
return new Refreshing(d);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* @tsplus fluent QueryResult isSuccess
|
|
63
|
-
*/
|
|
64
|
-
exports.Done = Done;
|
|
65
|
-
function isSuccess(qr) {
|
|
66
|
-
return hasValue(qr) && Either.isRight(qr.current);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* @tsplus fluent QueryResult hasValue
|
|
70
|
-
*/
|
|
71
|
-
function hasValue(qr) {
|
|
72
|
-
return isDone(qr) || isRefreshing(qr);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* @tsplus fluent QueryResult isRefreshing
|
|
76
|
-
*/
|
|
77
|
-
function isRefreshing(qr) {
|
|
78
|
-
return qr._tag === "Refreshing";
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* @tsplus fluent QueryResult isDone
|
|
82
|
-
*/
|
|
83
|
-
function isDone(qr) {
|
|
84
|
-
return qr._tag === "Done";
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* @tsplus fluent QueryResult isInitializing
|
|
88
|
-
*/
|
|
89
|
-
function isInitializing(qr) {
|
|
90
|
-
return qr._tag === "Initial" || qr._tag === "Loading";
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* @tsplus fluent QueryResult isFailed
|
|
94
|
-
*/
|
|
95
|
-
function isFailed(qr) {
|
|
96
|
-
return hasValue(qr) && Either.isLeft(qr.current);
|
|
97
|
-
}
|
|
98
|
-
const {
|
|
99
|
-
fail,
|
|
100
|
-
succeed
|
|
101
|
-
} = Done;
|
|
102
|
-
/**
|
|
103
|
-
* @tsplus getter effect/io/Effect asQueryResult
|
|
104
|
-
*/
|
|
105
|
-
exports.succeed = succeed;
|
|
106
|
-
exports.fail = fail;
|
|
107
|
-
function queryResult(self) {
|
|
108
|
-
return _core.Effect.match(self, {
|
|
109
|
-
onFailure: fail,
|
|
110
|
-
onSuccess: succeed
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=QueryResult.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryResult.cjs","names":["_core","require","Either","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Initial","Data","TaggedClass","exports","Loading","Refreshing","succeed","current","right","previous","Option","none","fail","left","undefined","some","fromDone","d","Done","refresh","isSuccess","qr","hasValue","isRight","isDone","isRefreshing","_tag","isInitializing","isFailed","isLeft","queryResult","self","Effect","match","onFailure","onSuccess"],"sources":["../../src/client/QueryResult.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Effect, Option } from "@effect-app/core";
|
|
2
|
-
import * as Either from "effect/Either";
|
|
3
|
-
declare const Initial_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
|
|
4
|
-
readonly _tag: "Initial";
|
|
5
|
-
};
|
|
6
|
-
export declare class Initial extends Initial_base<{}> {
|
|
7
|
-
}
|
|
8
|
-
declare const Loading_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
|
|
9
|
-
readonly _tag: "Loading";
|
|
10
|
-
};
|
|
11
|
-
export declare class Loading extends Loading_base<{}> {
|
|
12
|
-
}
|
|
13
|
-
declare const Refreshing_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
14
|
-
readonly _tag: "Refreshing";
|
|
15
|
-
};
|
|
16
|
-
export declare class Refreshing<E, A> extends Refreshing_base<{
|
|
17
|
-
readonly current: Either.Either<A, E>;
|
|
18
|
-
readonly previous: Option<A>;
|
|
19
|
-
}> {
|
|
20
|
-
static succeed<A, E = never>(a: A): Refreshing<E, A>;
|
|
21
|
-
static fail<E, A = never>(e: E, previous?: A): Refreshing<E, A>;
|
|
22
|
-
static fromDone<E, A>(d: Done<E, A>): Refreshing<E, A>;
|
|
23
|
-
}
|
|
24
|
-
declare const Done_base: new <A_1 extends Record<string, any> = {}>(args: import("effect/Types").Equals<A_1, {}> extends true ? void : { readonly [P in keyof A_1 as P extends "_tag" ? never : P]: A_1[P]; }) => Readonly<A_1> & {
|
|
25
|
-
readonly _tag: "Done";
|
|
26
|
-
};
|
|
27
|
-
export declare class Done<E, A> extends Done_base<{
|
|
28
|
-
readonly current: Either.Either<A, E>;
|
|
29
|
-
readonly previous: Option<A>;
|
|
30
|
-
}> {
|
|
31
|
-
static succeed<A, E = never>(this: void, a: A): Done<E, A>;
|
|
32
|
-
static fail<E, A = never>(this: void, e: E, previous?: A): Done<E, A>;
|
|
33
|
-
static refresh<E, A>(d: Done<E, A>): Refreshing<E, A>;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* @tsplus type QueryResult
|
|
37
|
-
*/
|
|
38
|
-
export type QueryResult<E, A> = Initial | Loading | Refreshing<E, A> | Done<E, A>;
|
|
39
|
-
type Result<E, A> = Omit<Done<E, A>, "current"> | Omit<Refreshing<E, A>, "current">;
|
|
40
|
-
/**
|
|
41
|
-
* @tsplus fluent QueryResult isSuccess
|
|
42
|
-
*/
|
|
43
|
-
export declare function isSuccess<E, A>(qr: QueryResult<E, A>): qr is Result<E, A> & {
|
|
44
|
-
current: Either.Right<E, A>;
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* @tsplus fluent QueryResult hasValue
|
|
48
|
-
*/
|
|
49
|
-
export declare function hasValue<E, A>(qr: QueryResult<E, A>): qr is Done<E, A> | Refreshing<E, A>;
|
|
50
|
-
/**
|
|
51
|
-
* @tsplus fluent QueryResult isRefreshing
|
|
52
|
-
*/
|
|
53
|
-
export declare function isRefreshing<E, A>(qr: QueryResult<E, A>): qr is Refreshing<E, A>;
|
|
54
|
-
/**
|
|
55
|
-
* @tsplus fluent QueryResult isDone
|
|
56
|
-
*/
|
|
57
|
-
export declare function isDone<E, A>(qr: QueryResult<E, A>): qr is Done<E, A>;
|
|
58
|
-
/**
|
|
59
|
-
* @tsplus fluent QueryResult isInitializing
|
|
60
|
-
*/
|
|
61
|
-
export declare function isInitializing<E, A>(qr: QueryResult<E, A>): qr is Initial | Loading;
|
|
62
|
-
/**
|
|
63
|
-
* @tsplus fluent QueryResult isFailed
|
|
64
|
-
*/
|
|
65
|
-
export declare function isFailed<E, A>(qr: QueryResult<E, A>): qr is Result<E, A> & {
|
|
66
|
-
current: Either.Left<E, A>;
|
|
67
|
-
};
|
|
68
|
-
export type ResultTuple<Result> = readonly [result: Result, refresh: () => void];
|
|
69
|
-
export type QueryResultTuple<E, A> = ResultTuple<QueryResult<E, A>>;
|
|
70
|
-
export declare const fail: typeof Done.fail, succeed: typeof Done.succeed;
|
|
71
|
-
/**
|
|
72
|
-
* @tsplus getter effect/io/Effect asQueryResult
|
|
73
|
-
*/
|
|
74
|
-
export declare function queryResult<R, E, A>(self: Effect<A, E, R>): Effect<QueryResult<E, A>, never, R>;
|
|
75
|
-
export {};
|
|
76
|
-
//# sourceMappingURL=QueryResult.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryResult.d.ts","sourceRoot":"","sources":["../../src/client/QueryResult.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
// TODO: Convert to effect/core
|
|
2
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
3
|
-
import { Data, Effect, Option } from "@effect-app/core";
|
|
4
|
-
import * as Either from "effect/Either";
|
|
5
|
-
export class Initial extends Data.TaggedClass("Initial") {
|
|
6
|
-
}
|
|
7
|
-
export class Loading extends Data.TaggedClass("Loading") {
|
|
8
|
-
}
|
|
9
|
-
export class Refreshing extends Data.TaggedClass("Refreshing") {
|
|
10
|
-
static succeed(a) {
|
|
11
|
-
return new Refreshing({ current: Either.right(a), previous: Option.none() });
|
|
12
|
-
}
|
|
13
|
-
static fail(e, previous) {
|
|
14
|
-
return new Refreshing({
|
|
15
|
-
current: Either.left(e),
|
|
16
|
-
previous: previous === undefined ? Option.none() : Option.some(previous)
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
static fromDone(d) {
|
|
20
|
-
return new Refreshing(d);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export class Done extends Data.TaggedClass("Done") {
|
|
24
|
-
static succeed(a) {
|
|
25
|
-
return new Done({ current: Either.right(a), previous: Option.none() });
|
|
26
|
-
}
|
|
27
|
-
static fail(e, previous) {
|
|
28
|
-
return new Done({
|
|
29
|
-
current: Either.left(e),
|
|
30
|
-
previous: previous === undefined ? Option.none() : Option.some(previous)
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
static refresh(d) {
|
|
34
|
-
return new Refreshing(d);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @tsplus fluent QueryResult isSuccess
|
|
39
|
-
*/
|
|
40
|
-
export function isSuccess(qr) {
|
|
41
|
-
return hasValue(qr) && Either.isRight(qr.current);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* @tsplus fluent QueryResult hasValue
|
|
45
|
-
*/
|
|
46
|
-
export function hasValue(qr) {
|
|
47
|
-
return isDone(qr) || isRefreshing(qr);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* @tsplus fluent QueryResult isRefreshing
|
|
51
|
-
*/
|
|
52
|
-
export function isRefreshing(qr) {
|
|
53
|
-
return qr._tag === "Refreshing";
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* @tsplus fluent QueryResult isDone
|
|
57
|
-
*/
|
|
58
|
-
export function isDone(qr) {
|
|
59
|
-
return qr._tag === "Done";
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* @tsplus fluent QueryResult isInitializing
|
|
63
|
-
*/
|
|
64
|
-
export function isInitializing(qr) {
|
|
65
|
-
return qr._tag === "Initial" || qr._tag === "Loading";
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* @tsplus fluent QueryResult isFailed
|
|
69
|
-
*/
|
|
70
|
-
export function isFailed(qr) {
|
|
71
|
-
return hasValue(qr) && Either.isLeft(qr.current);
|
|
72
|
-
}
|
|
73
|
-
export const { fail, succeed } = Done;
|
|
74
|
-
/**
|
|
75
|
-
* @tsplus getter effect/io/Effect asQueryResult
|
|
76
|
-
*/
|
|
77
|
-
export function queryResult(self) {
|
|
78
|
-
return Effect.match(self, { onFailure: fail, onSuccess: succeed });
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlSZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L1F1ZXJ5UmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixpREFBaUQ7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdkQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFFdkMsTUFBTSxPQUFPLE9BQVEsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBSztDQUFHO0FBRS9ELE1BQU0sT0FBTyxPQUFRLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUs7Q0FBRztBQUUvRCxNQUFNLE9BQU8sVUFBaUIsU0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FHakU7SUFDQSxNQUFNLENBQUMsT0FBTyxDQUFlLENBQUk7UUFDL0IsT0FBTyxJQUFJLFVBQVUsQ0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3BGLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUFlLENBQUksRUFBRSxRQUFZO1FBQzFDLE9BQU8sSUFBSSxVQUFVLENBQU87WUFDMUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLFFBQVEsRUFBRSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3pFLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxNQUFNLENBQUMsUUFBUSxDQUFPLENBQWE7UUFDakMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sSUFBVyxTQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUdyRDtJQUNBLE1BQU0sQ0FBQyxPQUFPLENBQTJCLENBQUk7UUFDM0MsT0FBTyxJQUFJLElBQUksQ0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlFLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxDQUEyQixDQUFJLEVBQUUsUUFBWTtRQUN0RCxPQUFPLElBQUksSUFBSSxDQUFPO1lBQ3BCLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN2QixRQUFRLEVBQUUsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN6RSxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBTyxDQUFhO1FBQ2hDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDMUIsQ0FBQztDQUNGO0FBU0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixFQUFxQjtJQUVyQixPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUNuRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixFQUFxQjtJQUVyQixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDdkMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsRUFBcUI7SUFFckIsT0FBTyxFQUFFLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQTtBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUNwQixFQUFxQjtJQUVyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFBO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLEVBQXFCO0lBRXJCLE9BQU8sRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUE7QUFDdkQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsRUFBcUI7SUFFckIsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUtELE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQTtBQUVyQzs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQXFCO0lBRXJCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBQ3BFLENBQUMifQ==
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
// TODO: Convert to effect/core
|
|
2
|
-
|
|
3
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
4
|
-
import { Data, Effect, Option } from "@effect-app/core"
|
|
5
|
-
import * as Either from "effect/Either"
|
|
6
|
-
|
|
7
|
-
export class Initial extends Data.TaggedClass("Initial")<{}> {}
|
|
8
|
-
|
|
9
|
-
export class Loading extends Data.TaggedClass("Loading")<{}> {}
|
|
10
|
-
|
|
11
|
-
export class Refreshing<E, A> extends Data.TaggedClass("Refreshing")<{
|
|
12
|
-
readonly current: Either.Either<A, E>
|
|
13
|
-
readonly previous: Option<A>
|
|
14
|
-
}> {
|
|
15
|
-
static succeed<A, E = never>(a: A) {
|
|
16
|
-
return new Refreshing<E, A>({ current: Either.right(a), previous: Option.none() })
|
|
17
|
-
}
|
|
18
|
-
static fail<E, A = never>(e: E, previous?: A) {
|
|
19
|
-
return new Refreshing<E, A>({
|
|
20
|
-
current: Either.left(e),
|
|
21
|
-
previous: previous === undefined ? Option.none() : Option.some(previous)
|
|
22
|
-
})
|
|
23
|
-
}
|
|
24
|
-
static fromDone<E, A>(d: Done<E, A>) {
|
|
25
|
-
return new Refreshing(d)
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export class Done<E, A> extends Data.TaggedClass("Done")<{
|
|
30
|
-
readonly current: Either.Either<A, E>
|
|
31
|
-
readonly previous: Option<A>
|
|
32
|
-
}> {
|
|
33
|
-
static succeed<A, E = never>(this: void, a: A) {
|
|
34
|
-
return new Done<E, A>({ current: Either.right(a), previous: Option.none() })
|
|
35
|
-
}
|
|
36
|
-
static fail<E, A = never>(this: void, e: E, previous?: A) {
|
|
37
|
-
return new Done<E, A>({
|
|
38
|
-
current: Either.left(e),
|
|
39
|
-
previous: previous === undefined ? Option.none() : Option.some(previous)
|
|
40
|
-
})
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
static refresh<E, A>(d: Done<E, A>) {
|
|
44
|
-
return new Refreshing(d)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* @tsplus type QueryResult
|
|
50
|
-
*/
|
|
51
|
-
export type QueryResult<E, A> = Initial | Loading | Refreshing<E, A> | Done<E, A>
|
|
52
|
-
|
|
53
|
-
type Result<E, A> = Omit<Done<E, A>, "current"> | Omit<Refreshing<E, A>, "current">
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @tsplus fluent QueryResult isSuccess
|
|
57
|
-
*/
|
|
58
|
-
export function isSuccess<E, A>(
|
|
59
|
-
qr: QueryResult<E, A>
|
|
60
|
-
): qr is Result<E, A> & { current: Either.Right<E, A> } {
|
|
61
|
-
return hasValue(qr) && Either.isRight(qr.current)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @tsplus fluent QueryResult hasValue
|
|
66
|
-
*/
|
|
67
|
-
export function hasValue<E, A>(
|
|
68
|
-
qr: QueryResult<E, A>
|
|
69
|
-
): qr is Done<E, A> | Refreshing<E, A> {
|
|
70
|
-
return isDone(qr) || isRefreshing(qr)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* @tsplus fluent QueryResult isRefreshing
|
|
75
|
-
*/
|
|
76
|
-
export function isRefreshing<E, A>(
|
|
77
|
-
qr: QueryResult<E, A>
|
|
78
|
-
): qr is Refreshing<E, A> {
|
|
79
|
-
return qr._tag === "Refreshing"
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* @tsplus fluent QueryResult isDone
|
|
84
|
-
*/
|
|
85
|
-
export function isDone<E, A>(
|
|
86
|
-
qr: QueryResult<E, A>
|
|
87
|
-
): qr is Done<E, A> {
|
|
88
|
-
return qr._tag === "Done"
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* @tsplus fluent QueryResult isInitializing
|
|
93
|
-
*/
|
|
94
|
-
export function isInitializing<E, A>(
|
|
95
|
-
qr: QueryResult<E, A>
|
|
96
|
-
): qr is Initial | Loading {
|
|
97
|
-
return qr._tag === "Initial" || qr._tag === "Loading"
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* @tsplus fluent QueryResult isFailed
|
|
102
|
-
*/
|
|
103
|
-
export function isFailed<E, A>(
|
|
104
|
-
qr: QueryResult<E, A>
|
|
105
|
-
): qr is Result<E, A> & { current: Either.Left<E, A> } {
|
|
106
|
-
return hasValue(qr) && Either.isLeft(qr.current)
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export type ResultTuple<Result> = readonly [result: Result, refresh: () => void]
|
|
110
|
-
export type QueryResultTuple<E, A> = ResultTuple<QueryResult<E, A>>
|
|
111
|
-
|
|
112
|
-
export const { fail, succeed } = Done
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* @tsplus getter effect/io/Effect asQueryResult
|
|
116
|
-
*/
|
|
117
|
-
export function queryResult<R, E, A>(
|
|
118
|
-
self: Effect<A, E, R>
|
|
119
|
-
): Effect<QueryResult<E, A>, never, R> {
|
|
120
|
-
return Effect.match(self, { onFailure: fail, onSuccess: succeed })
|
|
121
|
-
}
|