@kaumlaut/pure 0.1.0 → 0.1.2
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/dist/{Effect-D-qvMy9v.d.ts → Effect-DfDwc0ai.d.ts} +2 -13
- package/dist/chunk-AVH3HBI3.js +13 -0
- package/dist/chunk-AVH3HBI3.js.map +1 -0
- package/dist/effect/Effect.d.ts +1 -1
- package/dist/effect/Effect.js +2 -3
- package/dist/effect/Effect.js.map +1 -1
- package/dist/effect/Fetch.d.ts +18 -3
- package/dist/effect/Fetch.js +56 -5
- package/dist/effect/Fetch.js.map +1 -1
- package/dist/effect/None.d.ts +5 -2
- package/dist/effect/None.js +9 -4
- package/dist/effect/None.js.map +1 -1
- package/dist/maybe/Maybe.js +1 -3
- package/dist/maybe/Maybe.js.map +1 -1
- package/dist/parse/Number.js +0 -1
- package/dist/parse/Number.js.map +1 -1
- package/dist/result/Result.js +0 -1
- package/dist/result/Result.js.map +1 -1
- package/dist/runtime/Runtime.d.ts +1 -1
- package/dist/runtime/Runtime.js +9 -4
- package/dist/runtime/Runtime.js.map +1 -1
- package/dist/runtime/persistence/LocalStorage.d.ts +1 -1
- package/dist/runtime/persistence/LocalStorage.js +0 -1
- package/dist/runtime/persistence/LocalStorage.js.map +1 -1
- package/dist/runtime/persistence/None.d.ts +1 -1
- package/dist/runtime/persistence/None.js +0 -1
- package/dist/runtime/persistence/None.js.map +1 -1
- package/dist/runtime/persistence/Persistence.d.ts +1 -1
- package/package.json +3 -2
- package/dist/Fetch-zaXtHpL6.d.ts +0 -27
- package/dist/None-g_xS4PsO.d.ts +0 -10
- package/dist/chunk-CRFP5NKQ.js +0 -22
- package/dist/chunk-CRFP5NKQ.js.map +0 -1
- package/dist/chunk-HC7XIT3Z.js +0 -82
- package/dist/chunk-HC7XIT3Z.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -10
- package/dist/chunk-PZ5AY32C.js.map +0 -1
- package/dist/chunk-TTN3VURH.js +0 -23
- package/dist/chunk-TTN3VURH.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.js +0 -22
- package/dist/index.js.map +0 -1
|
@@ -16,6 +16,7 @@ type Change<CustomMessage extends Message, Model> = [
|
|
|
16
16
|
];
|
|
17
17
|
type Changes<CustomMessage extends Message, Model> = Change<CustomMessage, Model>[];
|
|
18
18
|
declare function is<CustomMessage extends Message<A>, A extends string>(name: A, message: Message): message is CustomMessage;
|
|
19
|
+
declare function create<MN extends string, T>(name: MN, value: T): Message<MN, T>;
|
|
19
20
|
|
|
20
21
|
type AsyncEffect<T extends Message> = () => Promise<T>;
|
|
21
22
|
type SyncEffect<T extends Message> = () => T;
|
|
@@ -30,16 +31,4 @@ type Effect<T extends Message> = {
|
|
|
30
31
|
declare function withName<T extends Message>(name: string, effect: EffectType<T>, meta?: object | null): Effect<T>;
|
|
31
32
|
type ReceiveEffectResult<T, E, R> = (result: Result<T, E>) => R;
|
|
32
33
|
|
|
33
|
-
type Effect
|
|
34
|
-
type Effect$1_AsyncNullEffect = AsyncNullEffect;
|
|
35
|
-
type Effect$1_Effect<T extends Message> = Effect<T>;
|
|
36
|
-
type Effect$1_EffectType<T extends Message> = EffectType<T>;
|
|
37
|
-
type Effect$1_NullEffect = NullEffect;
|
|
38
|
-
type Effect$1_ReceiveEffectResult<T, E, R> = ReceiveEffectResult<T, E, R>;
|
|
39
|
-
type Effect$1_SyncEffect<T extends Message> = SyncEffect<T>;
|
|
40
|
-
declare const Effect$1_withName: typeof withName;
|
|
41
|
-
declare namespace Effect$1 {
|
|
42
|
-
export { type Effect$1_AsyncEffect as AsyncEffect, type Effect$1_AsyncNullEffect as AsyncNullEffect, type Effect$1_Effect as Effect, type Effect$1_EffectType as EffectType, type Effect$1_NullEffect as NullEffect, type Effect$1_ReceiveEffectResult as ReceiveEffectResult, type Effect$1_SyncEffect as SyncEffect, Effect$1_withName as withName };
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export { type AsyncEffect as A, type Change as C, Effect$1 as E, type Init as I, type Message as M, type NullEffect as N, type ReceiveEffectResult as R, type SyncEffect as S, type Update as U, type Effect as a, type Changes as b, type AsyncNullEffect as c, type EffectType as d, is as i, withName as w };
|
|
34
|
+
export { type AsyncEffect as A, type Change as C, type Effect as E, type Init as I, type Message as M, type NullEffect as N, type ReceiveEffectResult as R, type SyncEffect as S, type Update as U, type Changes as a, type AsyncNullEffect as b, create as c, type EffectType as d, is as i, withName as w };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/effect/Effect.ts
|
|
2
|
+
function withName(name, effect, meta = null) {
|
|
3
|
+
return {
|
|
4
|
+
name,
|
|
5
|
+
effectType: effect,
|
|
6
|
+
meta
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
exports.withName = withName;
|
|
13
|
+
//# sourceMappingURL=chunk-AVH3HBI3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-AVH3HBI3.js","../src/effect/Effect.ts"],"names":[],"mappings":"AAAA;ACkBO,SAAS,QAAA,CACd,IAAA,EACA,MAAA,EACA,KAAA,EAAsB,IAAA,EACX;AACX,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,UAAA,EAAY,MAAA;AAAA,IACZ;AAAA,EACF,CAAA;AACF;ADpBA;AACA;AACE;AACF,4BAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-AVH3HBI3.js","sourcesContent":[null,"import type { Result } from '../result/Result'\nimport type { Message } from '../runtime/Runtime'\n\nexport type AsyncEffect<T extends Message> = () => Promise<T>\nexport type SyncEffect<T extends Message> = () => T\nexport type NullEffect = () => null\nexport type AsyncNullEffect = () => Promise<null>\nexport type EffectType<T extends Message> =\n | AsyncEffect<T>\n | SyncEffect<T>\n | NullEffect\n | AsyncNullEffect\nexport type Effect<T extends Message> = {\n effectType: EffectType<T>\n name: string\n meta: object | null\n}\n\nexport function withName<T extends Message>(\n name: string,\n effect: EffectType<T>,\n meta: object | null = null,\n): Effect<T> {\n return {\n name,\n effectType: effect,\n meta,\n }\n}\n\nexport type ReceiveEffectResult<T, E, R> = (result: Result<T, E>) => R\n"]}
|
package/dist/effect/Effect.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../result/Result.js';
|
|
2
|
-
export { A as AsyncEffect,
|
|
2
|
+
export { A as AsyncEffect, b as AsyncNullEffect, E as Effect, d as EffectType, N as NullEffect, R as ReceiveEffectResult, S as SyncEffect, w as withName } from '../Effect-DfDwc0ai.js';
|
package/dist/effect/Effect.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-PZ5AY32C.js');
|
|
3
|
+
var _chunkAVH3HBI3js = require('../chunk-AVH3HBI3.js');
|
|
5
4
|
|
|
6
5
|
|
|
7
|
-
exports.withName =
|
|
6
|
+
exports.withName = _chunkAVH3HBI3js.withName;
|
|
8
7
|
//# sourceMappingURL=Effect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/Effect.js"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/Effect.js"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B;AACE;AACF,6CAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/Effect.js"}
|
package/dist/effect/Fetch.d.ts
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
import '../guard/Guard.js';
|
|
2
|
-
import '../Effect-
|
|
3
|
-
export { f as fetchJson, b as isClient, a as isHttp, i as isNotFound, c as isServer } from '../Fetch-zaXtHpL6.js';
|
|
1
|
+
import { Guard } from '../guard/Guard.js';
|
|
2
|
+
import { M as Message, R as ReceiveEffectResult, E as Effect } from '../Effect-DfDwc0ai.js';
|
|
4
3
|
import '../result/Result.js';
|
|
4
|
+
|
|
5
|
+
type HttpError = {
|
|
6
|
+
code: number;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
type MalformedPayloadError = {
|
|
10
|
+
message: string;
|
|
11
|
+
};
|
|
12
|
+
type FetchError = HttpError | MalformedPayloadError;
|
|
13
|
+
declare function isNotFound(error: FetchError): boolean;
|
|
14
|
+
declare function isHttp(error: FetchError): error is HttpError;
|
|
15
|
+
declare function isClient(error: FetchError): boolean;
|
|
16
|
+
declare function isServer(error: FetchError): boolean;
|
|
17
|
+
declare function fetchJson<T, M extends Message>(url: string, headers: [string, string][], method: string, guard: Guard<T>, receiver: ReceiveEffectResult<T, FetchError, M>): Effect<M>;
|
|
18
|
+
|
|
19
|
+
export { fetchJson, isClient, isHttp, isNotFound, isServer };
|
package/dist/effect/Fetch.js
CHANGED
|
@@ -1,18 +1,69 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
+
var _chunkAVH3HBI3js = require('../chunk-AVH3HBI3.js');
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
|
|
7
|
+
var _chunkUICXER2Njs = require('../chunk-UICXER2N.js');
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
// src/effect/Fetch.ts
|
|
10
|
+
function isNotFound(error) {
|
|
11
|
+
return isHttp(error) && error.code === 404;
|
|
12
|
+
}
|
|
13
|
+
function isHttp(error) {
|
|
14
|
+
return Object.keys(error).includes("message") && Object.keys(error).includes("code");
|
|
15
|
+
}
|
|
16
|
+
function isClient(error) {
|
|
17
|
+
return isHttp(error) && error.code > 399 && error.code < 500;
|
|
18
|
+
}
|
|
19
|
+
function isServer(error) {
|
|
20
|
+
return isHttp(error) && error.code > 499;
|
|
21
|
+
}
|
|
22
|
+
function fetchJson(url, headers, method, guard, receiver) {
|
|
23
|
+
return _chunkAVH3HBI3js.withName.call(void 0,
|
|
24
|
+
"fetchJson",
|
|
25
|
+
async () => {
|
|
26
|
+
try {
|
|
27
|
+
const result = await fetch(url, {
|
|
28
|
+
method,
|
|
29
|
+
headers
|
|
30
|
+
});
|
|
31
|
+
if (result.status > 199 && result.status < 300) {
|
|
32
|
+
const payload = await result.json();
|
|
33
|
+
if (guard(payload)) {
|
|
34
|
+
return receiver(_chunkUICXER2Njs.ok.call(void 0, payload));
|
|
35
|
+
} else {
|
|
36
|
+
return receiver(
|
|
37
|
+
_chunkUICXER2Njs.err.call(void 0, {
|
|
38
|
+
message: "Malformed Payload. Your Guard does not pass."
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return receiver(
|
|
44
|
+
_chunkUICXER2Njs.err.call(void 0, {
|
|
45
|
+
code: result.status,
|
|
46
|
+
message: await result.text()
|
|
47
|
+
})
|
|
48
|
+
);
|
|
49
|
+
} catch (e) {
|
|
50
|
+
return receiver(
|
|
51
|
+
_chunkUICXER2Njs.err.call(void 0, {
|
|
52
|
+
message: "Malformed Payload. Invalid JSON."
|
|
53
|
+
})
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
url
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
11
62
|
|
|
12
63
|
|
|
13
64
|
|
|
14
65
|
|
|
15
66
|
|
|
16
67
|
|
|
17
|
-
exports.fetchJson =
|
|
68
|
+
exports.fetchJson = fetchJson; exports.isClient = isClient; exports.isHttp = isHttp; exports.isNotFound = isNotFound; exports.isServer = isServer;
|
|
18
69
|
//# sourceMappingURL=Fetch.js.map
|
package/dist/effect/Fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/Fetch.js"],"names":[],"mappings":"AAAA;AACE;
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/Fetch.js","../../src/effect/Fetch.ts"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACF,uDAA6B;AAC7B;AACA;ACQO,SAAS,UAAA,CAAW,KAAA,EAA4B;AACrD,EAAA,OAAO,MAAA,CAAO,KAAK,EAAA,GAAK,KAAA,CAAM,KAAA,IAAS,GAAA;AACzC;AAEO,SAAS,MAAA,CAAO,KAAA,EAAuC;AAC5D,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,QAAA,CAAS,SAAS,EAAA,GAAK,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA;AACrF;AAEO,SAAS,QAAA,CAAS,KAAA,EAA4B;AACnD,EAAA,OAAO,MAAA,CAAO,KAAK,EAAA,GAAK,KAAA,CAAM,KAAA,EAAO,IAAA,GAAO,KAAA,CAAM,KAAA,EAAO,GAAA;AAC3D;AAEO,SAAS,QAAA,CAAS,KAAA,EAA4B;AACnD,EAAA,OAAO,MAAA,CAAO,KAAK,EAAA,GAAK,KAAA,CAAM,KAAA,EAAO,GAAA;AACvC;AAEO,SAAS,SAAA,CACd,GAAA,EACA,OAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACW;AACX,EAAA,OAAO,uCAAA;AAAA,IACL,WAAA;AAAA,IACA,MAAA,CAAA,EAAA,GAAY;AACV,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,EAAS,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAC9B,MAAA;AAAA,UACA;AAAA,QACF,CAAC,CAAA;AACD,QAAA,GAAA,CAAI,MAAA,CAAO,OAAA,EAAS,IAAA,GAAO,MAAA,CAAO,OAAA,EAAS,GAAA,EAAK;AAC9C,UAAA,MAAM,QAAA,EAAU,MAAM,MAAA,CAAO,IAAA,CAAK,CAAA;AAElC,UAAA,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA,EAAG;AAClB,YAAA,OAAO,QAAA,CAAS,iCAAA,OAAU,CAAC,CAAA;AAAA,UAC7B,EAAA,KAAO;AACL,YAAA,OAAO,QAAA;AAAA,cACL,kCAAA;AAAI,gBACF,OAAA,EAAS;AAAA,cACX,CAAC;AAAA,YACH,CAAA;AAAA,UACF;AAAA,QACF;AAEA,QAAA,OAAO,QAAA;AAAA,UACL,kCAAA;AAAI,YACF,IAAA,EAAM,MAAA,CAAO,MAAA;AAAA,YACb,OAAA,EAAS,MAAM,MAAA,CAAO,IAAA,CAAK;AAAA,UAC7B,CAAC;AAAA,QACH,CAAA;AAAA,MAEF,EAAA,MAAA,CAAS,CAAA,EAAY;AACnB,QAAA,OAAO,QAAA;AAAA,UACL,kCAAA;AAAI,YACF,OAAA,EAAS;AAAA,UACX,CAAC;AAAA,QACH,CAAA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE;AAAA,IACF;AAAA,EACF,CAAA;AACF;ADnBA;AACE;AACA;AACA;AACA;AACA;AACF,kJAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/Fetch.js","sourcesContent":[null,"import type { Guard } from '../guard/Guard'\nimport { err, ok } from '../result/Result'\nimport type { Message } from '../runtime/Runtime'\nimport { withName, type Effect, type ReceiveEffectResult } from './Effect'\n\ntype HttpError = {\n code: number\n message: string\n}\n\ntype MalformedPayloadError = {\n message: string\n}\n\ntype FetchError = HttpError | MalformedPayloadError\n\nexport function isNotFound(error: FetchError): boolean {\n return isHttp(error) && error.code === 404\n}\n\nexport function isHttp(error: FetchError): error is HttpError {\n return Object.keys(error).includes('message') && Object.keys(error).includes('code')\n}\n\nexport function isClient(error: FetchError): boolean {\n return isHttp(error) && error.code > 399 && error.code < 500\n}\n\nexport function isServer(error: FetchError): boolean {\n return isHttp(error) && error.code > 499\n}\n\nexport function fetchJson<T, M extends Message>(\n url: string,\n headers: [string, string][],\n method: string,\n guard: Guard<T>,\n receiver: ReceiveEffectResult<T, FetchError, M>,\n): Effect<M> {\n return withName(\n 'fetchJson',\n async () => {\n try {\n const result = await fetch(url, {\n method,\n headers,\n })\n if (result.status > 199 && result.status < 300) {\n const payload = await result.json()\n\n if (guard(payload)) {\n return receiver(ok(payload))\n } else {\n return receiver(\n err({\n message: 'Malformed Payload. Your Guard does not pass.',\n }),\n )\n }\n }\n\n return receiver(\n err({\n code: result.status,\n message: await result.text(),\n }),\n )\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e: unknown) {\n return receiver(\n err({\n message: 'Malformed Payload. Invalid JSON.',\n }),\n )\n }\n },\n {\n url,\n },\n )\n}\n"]}
|
package/dist/effect/None.d.ts
CHANGED
package/dist/effect/None.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-CRFP5NKQ.js');
|
|
5
|
-
require('../chunk-PZ5AY32C.js');
|
|
3
|
+
var _chunkAVH3HBI3js = require('../chunk-AVH3HBI3.js');
|
|
6
4
|
|
|
5
|
+
// src/effect/None.ts
|
|
6
|
+
function none() {
|
|
7
|
+
return _chunkAVH3HBI3js.withName.call(void 0, "none", () => {
|
|
8
|
+
return null;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
7
11
|
|
|
8
|
-
|
|
12
|
+
|
|
13
|
+
exports.none = none;
|
|
9
14
|
//# sourceMappingURL=None.js.map
|
package/dist/effect/None.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/None.js"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B,
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/None.js","../../src/effect/None.ts"],"names":[],"mappings":"AAAA;AACE;AACF,uDAA6B;AAC7B;AACA;ACDO,SAAS,IAAA,CAAA,EAAoB;AAClC,EAAA,OAAO,uCAAA,MAAS,EAAQ,CAAA,EAAA,GAAM;AAC5B,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AACH;ADGA;AACE;AACF,oBAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/effect/None.js","sourcesContent":[null,"import { withName, type Effect } from './Effect'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function none(): Effect<any> {\n return withName('none', () => {\n return null\n })\n}\n"]}
|
package/dist/maybe/Maybe.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true})
|
|
2
|
-
|
|
3
|
-
// src/maybe/Maybe.ts
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/maybe/Maybe.ts
|
|
4
2
|
function nothing() {
|
|
5
3
|
return {
|
|
6
4
|
type: "maybe-nothing"
|
package/dist/maybe/Maybe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/maybe/Maybe.js","../../src/maybe/Maybe.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/maybe/Maybe.js","../../src/maybe/Maybe.ts"],"names":[],"mappings":"AAAA;ACWO,SAAS,OAAA,CAAA,EAAmB;AACjC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,EACR,CAAA;AACF;AAEO,SAAS,IAAA,CAAQ,KAAA,EAAmB;AACzC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,YAAA;AAAA,IACN;AAAA,EACF,CAAA;AACF;AAEO,SAAS,SAAA,CAAa,KAAA,EAAmC;AAC9D,EAAA,OAAO,KAAA,CAAM,KAAA,IAAS,eAAA;AACxB;AAEO,SAAS,MAAA,CAAU,KAAA,EAAmC;AAC3D,EAAA,OAAO,KAAA,CAAM,KAAA,IAAS,YAAA;AACxB;AAEO,SAAS,OAAA,CAAW,KAAA,EAAmC;AAE5D,EAAA,OAAO,KAAA,CAAM,KAAA,IAAS,aAAA,GAAgB,KAAA,CAAM,KAAA,IAAS,eAAA;AACvD;AAEO,SAAS,GAAA,CAAU,KAAA,EAAiB,IAAA,EAAiC;AAC1E,EAAA,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA,EAAG;AACjB,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,EAC/B;AAEA,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,MAAA,CAAU,KAAA,EAAiB,IAAA,EAAuC;AAChF,EAAA,GAAA,CAAI,MAAA,CAAO,KAAK,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,EAAG;AACtC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,OAAA,CAAQ,CAAA;AACjB;AAEO,SAAS,WAAA,CAAe,KAAA,EAAiB,YAAA,EAAoB;AAClE,EAAA,GAAA,CAAI,MAAA,CAAO,KAAK,CAAA,EAAG;AACjB,IAAA,OAAO,KAAA,CAAM,KAAA;AAAA,EACf;AAEA,EAAA,OAAO,YAAA;AACT;ADpBA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,iNAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/maybe/Maybe.js","sourcesContent":[null,"export type Just<T> = {\n type: 'maybe-just'\n value: T\n}\n\nexport type Nothing = {\n type: 'maybe-nothing'\n}\n\nexport type Maybe<T> = Just<T> | Nothing\n\nexport function nothing(): Nothing {\n return {\n type: 'maybe-nothing',\n }\n}\n\nexport function just<T>(value: T): Just<T> {\n return {\n type: 'maybe-just',\n value,\n }\n}\n\nexport function isNothing<T>(maybe: Maybe<T>): maybe is Nothing {\n return maybe.type === 'maybe-nothing'\n}\n\nexport function isJust<T>(maybe: Maybe<T>): maybe is Just<T> {\n return maybe.type === 'maybe-just'\n}\n\nexport function isMaybe<T>(value: unknown): value is Maybe<T> {\n //@ts-expect-error is validated\n return value.type === 'maybe-just' || value.type === 'maybe-nothing'\n}\n\nexport function map<T, R>(maybe: Maybe<T>, func: (value: T) => R): Maybe<R> {\n if (isJust(maybe)) {\n return just(func(maybe.value))\n }\n\n return maybe\n}\n\nexport function filter<T>(maybe: Maybe<T>, func: (value: T) => boolean): Maybe<T> {\n if (isJust(maybe) && func(maybe.value)) {\n return maybe\n }\n\n return nothing()\n}\n\nexport function withDefault<T>(maybe: Maybe<T>, defaultValue: T): T {\n if (isJust(maybe)) {\n return maybe.value\n }\n\n return defaultValue\n}\n"]}
|
package/dist/parse/Number.js
CHANGED
package/dist/parse/Number.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/parse/Number.js","../../src/parse/Number.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/parse/Number.js","../../src/parse/Number.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,uDAA6B;AAC7B;AACA;ACHO,SAAS,KAAA,CAAM,KAAA,EAAuC;AAC3D,EAAA,MAAM,OAAA,EAAS,QAAA,CAAS,KAAA,EAAO,EAAE,CAAA;AAEjC,EAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAG;AACxB,IAAA,OAAO,kCAAA,eAAmB,CAAA;AAAA,EAC5B;AAEA,EAAA,OAAO,iCAAA,MAAS,CAAA;AAClB;AAEO,SAAS,OAAA,CAAQ,KAAA,EAAuC;AAC7D,EAAA,MAAM,OAAA,EAAS,UAAA,CAAW,KAAK,CAAA;AAE/B,EAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAG;AACxB,IAAA,OAAO,kCAAA,eAAmB,CAAA;AAAA,EAC5B;AAEA,EAAA,OAAO,iCAAA,MAAS,CAAA;AAClB;ADAA;AACE;AACA;AACF,iDAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/parse/Number.js","sourcesContent":[null,"import { err, ok, type Result } from '../result/Result'\n\nexport function asInt(value: string): Result<number, string> {\n const parsed = parseInt(value, 10)\n\n if (Number.isNaN(parsed)) {\n return err('Number is NaN')\n }\n\n return ok(parsed)\n}\n\nexport function asFloat(value: string): Result<number, string> {\n const parsed = parseFloat(value)\n\n if (Number.isNaN(parsed)) {\n return err('Number is NaN')\n }\n\n return ok(parsed)\n}\n"]}
|
package/dist/result/Result.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/result/Result.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/result/Result.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,qRAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/result/Result.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as Change,
|
|
1
|
+
export { C as Change, a as Changes, I as Init, M as Message, U as Update, c as create, i as is } from '../Effect-DfDwc0ai.js';
|
|
2
2
|
import '../result/Result.js';
|
package/dist/runtime/Runtime.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true})
|
|
2
|
-
|
|
3
|
-
// src/runtime/Runtime.ts
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/runtime/Runtime.ts
|
|
4
2
|
function is(name, message) {
|
|
5
3
|
return message.name === name;
|
|
6
4
|
}
|
|
5
|
+
function create(name, value) {
|
|
6
|
+
return {
|
|
7
|
+
name,
|
|
8
|
+
value
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
7
12
|
|
|
8
13
|
|
|
9
|
-
exports.is = is;
|
|
14
|
+
exports.create = create; exports.is = is;
|
|
10
15
|
//# sourceMappingURL=Runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/Runtime.js","../../src/runtime/Runtime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/Runtime.js","../../src/runtime/Runtime.ts"],"names":[],"mappings":"AAAA;AC0BO,SAAS,EAAA,CACd,IAAA,EACA,OAAA,EAC0B;AAC1B,EAAA,OAAO,OAAA,CAAQ,KAAA,IAAS,IAAA;AAC1B;AAEO,SAAS,MAAA,CAA6B,IAAA,EAAU,KAAA,EAA0B;AAC/E,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA;AAAA,EACF,CAAA;AACF;AD5BA;AACE;AACA;AACF,yCAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/Runtime.js","sourcesContent":[null,"import type { Effect } from '../effect/Effect'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Message<N extends string = string, T = any> = {\n value: T\n name: N\n}\n\nexport type Update<Model, CustomMessage extends Message> = (\n model: Model,\n msg: CustomMessage,\n) => [Model, Effect<CustomMessage>]\n\nexport type Init<Model, CustomMessage extends Message> = () => [Model, Effect<CustomMessage>]\n\nexport type Change<CustomMessage extends Message, Model> = [\n CustomMessage | null,\n model: Model,\n effect: {\n name: string\n meta: object | null\n } | null,\n]\n\nexport type Changes<CustomMessage extends Message, Model> = Change<CustomMessage, Model>[]\n\nexport function is<CustomMessage extends Message<A>, A extends string>(\n name: A,\n message: Message,\n): message is CustomMessage {\n return message.name === name\n}\n\nexport function create<MN extends string, T>(name: MN, value: T): Message<MN, T> {\n return {\n name,\n value\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/persistence/LocalStorage.js","../../../src/runtime/persistence/LocalStorage.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,0DAAgC;AAChC
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/persistence/LocalStorage.js","../../../src/runtime/persistence/LocalStorage.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,0DAAgC;AAChC;AACA;ACAO,IAAM,wBAAA,EAA0B,CACrC,IAAA,EAAA,GAAA,CACuC;AAAA,EACvC,OAAA,CAAQ,KAAA,EAAc;AACpB,IAAA,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQ,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAC,CAAA;AAAA,EAC/D,CAAA;AAAA,EACA,IAAA,CAAK,KAAA,EAAqB,IAAA,EAAyD;AACjF,IAAA,MAAM,OAAA,EAAS,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQ,IAAI,CAAA;AAC/C,IAAA,GAAA,CAAI,OAAA,IAAW,IAAA,EAAM;AACnB,MAAA,OAAO,iCAAA,IAAG,CAAK,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA,IACrB;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,EAAO,IAAA,CAAK,MAAM,CAAA;AACxB,MAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAE7B,MAAA,GAAA,CAAI,KAAA,CAAM,KAAK,CAAA,EAAG;AAChB,QAAA,OAAO,iCAAA,KAAQ,CAAA;AAAA,MACjB;AAAA,IAEF,EAAA,MAAA,CAAS,CAAA,EAAG;AACV,MAAA,OAAO,kCAAA,+BAAmC,CAAA;AAAA,IAC5C;AAEA,IAAA,OAAO,kCAAA,8CAAkD,CAAA;AAAA,EAC3D;AACF,CAAA,CAAA;ADJA;AACE;AACF,0DAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/persistence/LocalStorage.js","sourcesContent":[null,"import type { Guard } from '../../guard/Guard'\nimport { err, ok, type Result } from '../../result/Result'\nimport type { Init, Message } from '../Runtime'\nimport type { Persistence } from './Persistence'\n\nexport const localStoragePersistence = <Model, CustomMessage extends Message>(\n name: string,\n): Persistence<Model, CustomMessage> => ({\n persist(model: Model) {\n window.localStorage.setItem(name, btoa(JSON.stringify(model)))\n },\n read(guard: Guard<Model>, init: Init<Model, CustomMessage>): Result<Model, string> {\n const record = window.localStorage.getItem(name)\n if (record === null) {\n return ok(init()[0])\n }\n\n try {\n const json = atob(record)\n const model = JSON.parse(json)\n\n if (guard(model)) {\n return ok(model)\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n return err('Could not decode stored model')\n }\n\n return err('Your guard did not match the retrieved model')\n },\n})\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/persistence/None.js","../../../src/runtime/persistence/None.ts"],"names":[],"mappings":"AAAA;AACE;AACF,0DAAgC;AAChC
|
|
1
|
+
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/persistence/None.js","../../../src/runtime/persistence/None.ts"],"names":[],"mappings":"AAAA;AACE;AACF,0DAAgC;AAChC;AACA;ACCO,IAAM,cAAA,EAAgB,CAAA,EAAA,GAAA,CAGvB;AAAA;AAAA,EAEJ,OAAA,CAAQ,KAAA,EAAc;AAAA,EAAE,CAAA;AAAA,EACxB,IAAA,CAAK,KAAA,EAAqB,IAAA,EAAyD;AACjF,IAAA,OAAO,iCAAA,IAAG,CAAK,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA,EACrB;AACF,CAAA,CAAA;ADDA;AACE;AACF,sCAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/runtime/persistence/None.js","sourcesContent":[null,"import type { Guard } from '../../guard/Guard'\nimport { ok, type Result } from '../../result/Result'\nimport type { Init, Message } from '../Runtime'\nimport type { Persistence } from './Persistence'\n\nexport const noPersistence = <Model, CustomMessage extends Message>(): Persistence<\n Model,\n CustomMessage\n> => ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n persist(model: Model) { },\n read(guard: Guard<Model>, init: Init<Model, CustomMessage>): Result<Model, string> {\n return ok(init()[0])\n },\n})\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Guard } from '../../guard/Guard.js';
|
|
2
2
|
import { Result } from '../../result/Result.js';
|
|
3
|
-
import { M as Message, I as Init } from '../../Effect-
|
|
3
|
+
import { M as Message, I as Init } from '../../Effect-DfDwc0ai.js';
|
|
4
4
|
|
|
5
5
|
type Persistence<Model, CustomMessage extends Message> = {
|
|
6
6
|
persist(model: Model): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaumlaut/pure",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Types and functions for state management inspired by Elm and functional programming",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsup --dts",
|
|
12
|
-
"test": "vitest"
|
|
12
|
+
"test": "vitest",
|
|
13
|
+
"publish": "npm run build && npm publish --access public"
|
|
13
14
|
},
|
|
14
15
|
"author": "Max Kaemmerer",
|
|
15
16
|
"license": "MIT",
|
package/dist/Fetch-zaXtHpL6.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Guard } from './guard/Guard.js';
|
|
2
|
-
import { M as Message, R as ReceiveEffectResult, a as Effect } from './Effect-D-qvMy9v.js';
|
|
3
|
-
|
|
4
|
-
type HttpError = {
|
|
5
|
-
code: number;
|
|
6
|
-
message: string;
|
|
7
|
-
};
|
|
8
|
-
type MalformedPayloadError = {
|
|
9
|
-
message: string;
|
|
10
|
-
};
|
|
11
|
-
type FetchError = HttpError | MalformedPayloadError;
|
|
12
|
-
declare function isNotFound(error: FetchError): boolean;
|
|
13
|
-
declare function isHttp(error: FetchError): error is HttpError;
|
|
14
|
-
declare function isClient(error: FetchError): boolean;
|
|
15
|
-
declare function isServer(error: FetchError): boolean;
|
|
16
|
-
declare function fetchJson<T, M extends Message>(url: string, headers: [string, string][], method: string, guard: Guard<T>, receiver: ReceiveEffectResult<T, FetchError, M>): Effect<M>;
|
|
17
|
-
|
|
18
|
-
declare const Fetch_fetchJson: typeof fetchJson;
|
|
19
|
-
declare const Fetch_isClient: typeof isClient;
|
|
20
|
-
declare const Fetch_isHttp: typeof isHttp;
|
|
21
|
-
declare const Fetch_isNotFound: typeof isNotFound;
|
|
22
|
-
declare const Fetch_isServer: typeof isServer;
|
|
23
|
-
declare namespace Fetch {
|
|
24
|
-
export { Fetch_fetchJson as fetchJson, Fetch_isClient as isClient, Fetch_isHttp as isHttp, Fetch_isNotFound as isNotFound, Fetch_isServer as isServer };
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export { Fetch as F, isHttp as a, isClient as b, isServer as c, fetchJson as f, isNotFound as i };
|
package/dist/None-g_xS4PsO.d.ts
DELETED
package/dist/chunk-CRFP5NKQ.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkPZ5AY32Cjs = require('./chunk-PZ5AY32C.js');
|
|
4
|
-
|
|
5
|
-
// src/effect/Effect.ts
|
|
6
|
-
var Effect_exports = {};
|
|
7
|
-
_chunkPZ5AY32Cjs.__export.call(void 0, Effect_exports, {
|
|
8
|
-
withName: () => withName
|
|
9
|
-
});
|
|
10
|
-
function withName(name, effect, meta = null) {
|
|
11
|
-
return {
|
|
12
|
-
name,
|
|
13
|
-
effectType: effect,
|
|
14
|
-
meta
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
exports.withName = withName; exports.Effect_exports = Effect_exports;
|
|
22
|
-
//# sourceMappingURL=chunk-CRFP5NKQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-CRFP5NKQ.js","../src/effect/Effect.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJA,IAAA,eAAA,EAAA,CAAA,CAAA;AAAA,uCAAA,cAAA,EAAA;AAAA,EAAA,QAAA,EAAA,CAAA,EAAA,GAAA;AAAA,CAAA,CAAA;AAkBO,SAAS,QAAA,CACd,IAAA,EACA,MAAA,EACA,KAAA,EAAsB,IAAA,EACX;AACX,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,UAAA,EAAY,MAAA;AAAA,IACZ;AAAA,EACF,CAAA;AACF;ADZA;AACA;AACE;AACA;AACF,qEAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-CRFP5NKQ.js","sourcesContent":[null,"import type { Result } from '../result/Result'\nimport type { Message } from '../runtime/Runtime'\n\nexport type AsyncEffect<T extends Message> = () => Promise<T>\nexport type SyncEffect<T extends Message> = () => T\nexport type NullEffect = () => null\nexport type AsyncNullEffect = () => Promise<null>\nexport type EffectType<T extends Message> =\n | AsyncEffect<T>\n | SyncEffect<T>\n | NullEffect\n | AsyncNullEffect\nexport type Effect<T extends Message> = {\n effectType: EffectType<T>\n name: string\n meta: object | null\n}\n\nexport function withName<T extends Message>(\n name: string,\n effect: EffectType<T>,\n meta: object | null = null,\n): Effect<T> {\n return {\n name,\n effectType: effect,\n meta,\n }\n}\n\nexport type ReceiveEffectResult<T, E, R> = (result: Result<T, E>) => R\n"]}
|
package/dist/chunk-HC7XIT3Z.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkCRFP5NKQjs = require('./chunk-CRFP5NKQ.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var _chunkUICXER2Njs = require('./chunk-UICXER2N.js');
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _chunkPZ5AY32Cjs = require('./chunk-PZ5AY32C.js');
|
|
11
|
-
|
|
12
|
-
// src/effect/Fetch.ts
|
|
13
|
-
var Fetch_exports = {};
|
|
14
|
-
_chunkPZ5AY32Cjs.__export.call(void 0, Fetch_exports, {
|
|
15
|
-
fetchJson: () => fetchJson,
|
|
16
|
-
isClient: () => isClient,
|
|
17
|
-
isHttp: () => isHttp,
|
|
18
|
-
isNotFound: () => isNotFound,
|
|
19
|
-
isServer: () => isServer
|
|
20
|
-
});
|
|
21
|
-
function isNotFound(error) {
|
|
22
|
-
return isHttp(error) && error.code === 404;
|
|
23
|
-
}
|
|
24
|
-
function isHttp(error) {
|
|
25
|
-
return Object.keys(error).includes("message") && Object.keys(error).includes("code");
|
|
26
|
-
}
|
|
27
|
-
function isClient(error) {
|
|
28
|
-
return isHttp(error) && error.code > 399 && error.code < 500;
|
|
29
|
-
}
|
|
30
|
-
function isServer(error) {
|
|
31
|
-
return isHttp(error) && error.code > 499;
|
|
32
|
-
}
|
|
33
|
-
function fetchJson(url, headers, method, guard, receiver) {
|
|
34
|
-
return _chunkCRFP5NKQjs.withName.call(void 0,
|
|
35
|
-
"fetchJson",
|
|
36
|
-
async () => {
|
|
37
|
-
try {
|
|
38
|
-
const result = await fetch(url, {
|
|
39
|
-
method,
|
|
40
|
-
headers
|
|
41
|
-
});
|
|
42
|
-
if (result.status > 199 && result.status < 300) {
|
|
43
|
-
const payload = await result.json();
|
|
44
|
-
if (guard(payload)) {
|
|
45
|
-
return receiver(_chunkUICXER2Njs.ok.call(void 0, payload));
|
|
46
|
-
} else {
|
|
47
|
-
return receiver(
|
|
48
|
-
_chunkUICXER2Njs.err.call(void 0, {
|
|
49
|
-
message: "Malformed Payload. Your Guard does not pass."
|
|
50
|
-
})
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return receiver(
|
|
55
|
-
_chunkUICXER2Njs.err.call(void 0, {
|
|
56
|
-
code: result.status,
|
|
57
|
-
message: await result.text()
|
|
58
|
-
})
|
|
59
|
-
);
|
|
60
|
-
} catch (e) {
|
|
61
|
-
return receiver(
|
|
62
|
-
_chunkUICXER2Njs.err.call(void 0, {
|
|
63
|
-
message: "Malformed Payload. Invalid JSON."
|
|
64
|
-
})
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
url
|
|
70
|
-
}
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
exports.isNotFound = isNotFound; exports.isHttp = isHttp; exports.isClient = isClient; exports.isServer = isServer; exports.fetchJson = fetchJson; exports.Fetch_exports = Fetch_exports;
|
|
82
|
-
//# sourceMappingURL=chunk-HC7XIT3Z.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-HC7XIT3Z.js","../src/effect/Fetch.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACXA,IAAA,cAAA,EAAA,CAAA,CAAA;AAAA,uCAAA,aAAA,EAAA;AAAA,EAAA,SAAA,EAAA,CAAA,EAAA,GAAA,SAAA;AAAA,EAAA,QAAA,EAAA,CAAA,EAAA,GAAA,QAAA;AAAA,EAAA,MAAA,EAAA,CAAA,EAAA,GAAA,MAAA;AAAA,EAAA,UAAA,EAAA,CAAA,EAAA,GAAA,UAAA;AAAA,EAAA,QAAA,EAAA,CAAA,EAAA,GAAA;AAAA,CAAA,CAAA;AAgBO,SAAS,UAAA,CAAW,KAAA,EAA4B;AACrD,EAAA,OAAO,MAAA,CAAO,KAAK,EAAA,GAAK,KAAA,CAAM,KAAA,IAAS,GAAA;AACzC;AAEO,SAAS,MAAA,CAAO,KAAA,EAAuC;AAC5D,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,QAAA,CAAS,SAAS,EAAA,GAAK,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA;AACrF;AAEO,SAAS,QAAA,CAAS,KAAA,EAA4B;AACnD,EAAA,OAAO,MAAA,CAAO,KAAK,EAAA,GAAK,KAAA,CAAM,KAAA,EAAO,IAAA,GAAO,KAAA,CAAM,KAAA,EAAO,GAAA;AAC3D;AAEO,SAAS,QAAA,CAAS,KAAA,EAA4B;AACnD,EAAA,OAAO,MAAA,CAAO,KAAK,EAAA,GAAK,KAAA,CAAM,KAAA,EAAO,GAAA;AACvC;AAEO,SAAS,SAAA,CACd,GAAA,EACA,OAAA,EACA,MAAA,EACA,KAAA,EACA,QAAA,EACW;AACX,EAAA,OAAO,uCAAA;AAAA,IACL,WAAA;AAAA,IACA,MAAA,CAAA,EAAA,GAAY;AACV,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,EAAS,MAAM,KAAA,CAAM,GAAA,EAAK;AAAA,UAC9B,MAAA;AAAA,UACA;AAAA,QACF,CAAC,CAAA;AACD,QAAA,GAAA,CAAI,MAAA,CAAO,OAAA,EAAS,IAAA,GAAO,MAAA,CAAO,OAAA,EAAS,GAAA,EAAK;AAC9C,UAAA,MAAM,QAAA,EAAU,MAAM,MAAA,CAAO,IAAA,CAAK,CAAA;AAElC,UAAA,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA,EAAG;AAClB,YAAA,OAAO,QAAA,CAAS,iCAAA,OAAU,CAAC,CAAA;AAAA,UAC7B,EAAA,KAAO;AACL,YAAA,OAAO,QAAA;AAAA,cACL,kCAAA;AAAI,gBACF,OAAA,EAAS;AAAA,cACX,CAAC;AAAA,YACH,CAAA;AAAA,UACF;AAAA,QACF;AAEA,QAAA,OAAO,QAAA;AAAA,UACL,kCAAA;AAAI,YACF,IAAA,EAAM,MAAA,CAAO,MAAA;AAAA,YACb,OAAA,EAAS,MAAM,MAAA,CAAO,IAAA,CAAK;AAAA,UAC7B,CAAC;AAAA,QACH,CAAA;AAAA,MAEF,EAAA,MAAA,CAAS,CAAA,EAAY;AACnB,QAAA,OAAO,QAAA;AAAA,UACL,kCAAA;AAAI,YACF,OAAA,EAAS;AAAA,UACX,CAAC;AAAA,QACH,CAAA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE;AAAA,IACF;AAAA,EACF,CAAA;AACF;ADRA;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACF,yLAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-HC7XIT3Z.js","sourcesContent":[null,"import type { Guard } from '../guard/Guard'\nimport { err, ok } from '../result/Result'\nimport type { Message } from '../runtime/Runtime'\nimport { withName, type Effect, type ReceiveEffectResult } from './Effect'\n\ntype HttpError = {\n code: number\n message: string\n}\n\ntype MalformedPayloadError = {\n message: string\n}\n\ntype FetchError = HttpError | MalformedPayloadError\n\nexport function isNotFound(error: FetchError): boolean {\n return isHttp(error) && error.code === 404\n}\n\nexport function isHttp(error: FetchError): error is HttpError {\n return Object.keys(error).includes('message') && Object.keys(error).includes('code')\n}\n\nexport function isClient(error: FetchError): boolean {\n return isHttp(error) && error.code > 399 && error.code < 500\n}\n\nexport function isServer(error: FetchError): boolean {\n return isHttp(error) && error.code > 499\n}\n\nexport function fetchJson<T, M extends Message>(\n url: string,\n headers: [string, string][],\n method: string,\n guard: Guard<T>,\n receiver: ReceiveEffectResult<T, FetchError, M>,\n): Effect<M> {\n return withName(\n 'fetchJson',\n async () => {\n try {\n const result = await fetch(url, {\n method,\n headers,\n })\n if (result.status > 199 && result.status < 300) {\n const payload = await result.json()\n\n if (guard(payload)) {\n return receiver(ok(payload))\n } else {\n return receiver(\n err({\n message: 'Malformed Payload. Your Guard does not pass.',\n }),\n )\n }\n }\n\n return receiver(\n err({\n code: result.status,\n message: await result.text(),\n }),\n )\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e: unknown) {\n return receiver(\n err({\n message: 'Malformed Payload. Invalid JSON.',\n }),\n )\n }\n },\n {\n url,\n },\n )\n}\n"]}
|
package/dist/chunk-PZ5AY32C.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
|
|
2
|
-
var __export = (target, all) => {
|
|
3
|
-
for (var name in all)
|
|
4
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.__export = __export;
|
|
10
|
-
//# sourceMappingURL=chunk-PZ5AY32C.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-PZ5AY32C.js"],"names":[],"mappings":"AAAA,6EAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG;AAChC,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG;AACtB,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AACD;AACA;AACE;AACF,4BAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-PZ5AY32C.js"}
|
package/dist/chunk-TTN3VURH.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkCRFP5NKQjs = require('./chunk-CRFP5NKQ.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkPZ5AY32Cjs = require('./chunk-PZ5AY32C.js');
|
|
7
|
-
|
|
8
|
-
// src/effect/None.ts
|
|
9
|
-
var None_exports = {};
|
|
10
|
-
_chunkPZ5AY32Cjs.__export.call(void 0, None_exports, {
|
|
11
|
-
none: () => none
|
|
12
|
-
});
|
|
13
|
-
function none() {
|
|
14
|
-
return _chunkCRFP5NKQjs.withName.call(void 0, "none", () => {
|
|
15
|
-
return null;
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
exports.none = none; exports.None_exports = None_exports;
|
|
23
|
-
//# sourceMappingURL=chunk-TTN3VURH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-TTN3VURH.js","../src/effect/None.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACPA,IAAA,aAAA,EAAA,CAAA,CAAA;AAAA,uCAAA,YAAA,EAAA;AAAA,EAAA,IAAA,EAAA,CAAA,EAAA,GAAA;AAAA,CAAA,CAAA;AAGO,SAAS,IAAA,CAAA,EAAoB;AAClC,EAAA,OAAO,uCAAA,MAAS,EAAQ,CAAA,EAAA,GAAM;AAC5B,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AACH;ADUA;AACA;AACE;AACA;AACF,yDAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/chunk-TTN3VURH.js","sourcesContent":[null,"import { withName, type Effect } from './Effect'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function none(): Effect<any> {\n return withName('none', () => {\n return null\n })\n}\n"]}
|
package/dist/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { E as Effect } from './Effect-D-qvMy9v.js';
|
|
2
|
-
import { F as Fetch } from './Fetch-zaXtHpL6.js';
|
|
3
|
-
import { N as None } from './None-g_xS4PsO.js';
|
|
4
|
-
import './result/Result.js';
|
|
5
|
-
import './guard/Guard.js';
|
|
6
|
-
|
|
7
|
-
declare const _default: {
|
|
8
|
-
Effect: typeof Effect;
|
|
9
|
-
Fetch: typeof Fetch;
|
|
10
|
-
None: typeof None;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export { _default as default };
|
package/dist/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
var _chunkHC7XIT3Zjs = require('./chunk-HC7XIT3Z.js');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkTTN3VURHjs = require('./chunk-TTN3VURH.js');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _chunkCRFP5NKQjs = require('./chunk-CRFP5NKQ.js');
|
|
10
|
-
require('./chunk-UICXER2N.js');
|
|
11
|
-
require('./chunk-PZ5AY32C.js');
|
|
12
|
-
|
|
13
|
-
// src/index.ts
|
|
14
|
-
var index_default = {
|
|
15
|
-
Effect: _chunkCRFP5NKQjs.Effect_exports,
|
|
16
|
-
Fetch: _chunkHC7XIT3Zjs.Fetch_exports,
|
|
17
|
-
None: _chunkTTN3VURHjs.None_exports
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
exports.default = index_default;
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/kaumlaut/code/pure-vue-poc/pure/dist/index.js","../src/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACRA,IAAO,cAAA,EAAQ;AAAA,EACX,MAAA,EAAA,+BAAA;AAAA,EACA,KAAA,EAAA,8BAAA;AAAA,EACA,IAAA,EAAA;AACJ,CAAA;ADUA;AACE;AACF,gCAAC","file":"/home/kaumlaut/code/pure-vue-poc/pure/dist/index.js","sourcesContent":[null,"import * as Effect from \"./effect/Effect\"\nimport * as Fetch from \"./effect/Fetch\"\nimport * as None from \"./effect/None\"\n\nexport default {\n Effect,\n Fetch,\n None\n}"]}
|