effect-app 2.1.1 → 2.2.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/_ext/Array.cjs +22 -0
- package/_cjs/_ext/Array.cjs.map +1 -0
- package/dist/_ext/Array.d.ts +10 -0
- package/dist/_ext/Array.d.ts.map +1 -0
- package/dist/_ext/Array.js +12 -0
- package/package.json +11 -1
- package/src/_ext/Array.ts +27 -0
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getFirstById = getFirstById;
|
|
7
|
+
exports.makeGetFirstBy = makeGetFirstBy;
|
|
8
|
+
exports.makeGetFirstById = void 0;
|
|
9
|
+
var _effectApp = require("effect-app");
|
|
10
|
+
var _client = require("../client.cjs");
|
|
11
|
+
function makeGetFirstBy() {
|
|
12
|
+
return (idKey, type) => (a, id) => _effectApp.Chunk.fromIterable(a).pipe(_effectApp.Chunk.findFirst(_ => _effectApp.Equal.equals(_[idKey], id)), _effectApp.Effect.mapError(() => new _client.NotFoundError({
|
|
13
|
+
type,
|
|
14
|
+
id
|
|
15
|
+
})));
|
|
16
|
+
}
|
|
17
|
+
const makeGetFirstById = () => type => makeGetFirstBy()("id", type);
|
|
18
|
+
exports.makeGetFirstById = makeGetFirstById;
|
|
19
|
+
function getFirstById(a, id, type) {
|
|
20
|
+
return makeGetFirstById()(type)(a, id);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=Array.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Array.cjs","names":["_effectApp","require","_client","makeGetFirstBy","idKey","type","a","id","Chunk","fromIterable","pipe","findFirst","_","Equal","equals","Effect","mapError","NotFoundError","makeGetFirstById","exports","getFirstById"],"sources":["../../src/_ext/Array.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEM,SAAUE,cAAcA,CAAA;EAC5B,OAAO,CAAgDC,KAAS,EAAEC,IAAU,KAC5E,CACEC,CAAc,EACdC,EAAS,KAETC,gBAAK,CACFC,YAAY,CAACH,CAAC,CAAC,CACfI,IAAI,CACHF,gBAAK,CAACG,SAAS,CAAEC,CAAC,IAAKC,gBAAK,CAACC,MAAM,CAACF,CAAC,CAACR,KAAK,CAAC,EAAEG,EAAE,CAAC,CAAC,EAClDQ,iBAAM,CAACC,QAAQ,CAAC,MAAM,IAAIC,qBAAa,CAAO;IAAEZ,IAAI;IAAEE;EAAE,CAAE,CAAC,CAAC,CAC7D;AACP;AAEO,MAAMW,gBAAgB,GAAGA,CAAA,KAAuDb,IAAU,IAC/FF,cAAc,EAAK,CAAC,IAAI,EAAEE,IAAI,CAAC;AAAAc,OAAA,CAAAD,gBAAA,GAAAA,gBAAA;AAE3B,SAAUE,YAAYA,CAC1Bd,CAAc,EACdC,EAAW,EACXF,IAAU;EAEV,OAAOa,gBAAgB,EAAK,CAACb,IAAI,CAAC,CAACC,CAAC,EAAEC,EAAE,CAAC;AAC3C","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Effect } from "effect-app";
|
|
2
|
+
import { NotFoundError } from "../client.js";
|
|
3
|
+
export declare function makeGetFirstBy<A>(): <const Id extends keyof A, Type extends string>(idKey: Id, type: Type) => (a: Iterable<A>, id: A[Id]) => Effect.Effect<A, NotFoundError<Type>, never>;
|
|
4
|
+
export declare const makeGetFirstById: <A extends {
|
|
5
|
+
id: unknown;
|
|
6
|
+
}>() => <Type extends string>(type: Type) => (a: Iterable<A>, id: A["id"]) => Effect.Effect<A, NotFoundError<Type>, never>;
|
|
7
|
+
export declare function getFirstById<A extends {
|
|
8
|
+
id: unknown;
|
|
9
|
+
}, Type extends string>(a: Iterable<A>, id: A["id"], type: Type): Effect.Effect<A, NotFoundError<Type>, never>;
|
|
10
|
+
//# sourceMappingURL=Array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../src/_ext/Array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAS,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,wBAAgB,cAAc,CAAC,CAAC,YAChB,EAAE,SAAS,MAAM,CAAC,EAAE,IAAI,SAAS,MAAM,SAAS,EAAE,QAAQ,IAAI,SAEvE,QAAQ,CAAC,CAAC,CAAC,MACV,CAAC,CAAC,EAAE,CAAC,kDAQZ;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,QAAQ,IAAI,SAAS,MAAM,QAAQ,IAAI,kFAChE,CAAA;AAEjC,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,SAAS,MAAM,EACzE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EACd,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EACX,IAAI,EAAE,IAAI,gDAGX"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Chunk, Effect, Equal } from "effect-app";
|
|
2
|
+
import { NotFoundError } from "../client.js";
|
|
3
|
+
export function makeGetFirstBy() {
|
|
4
|
+
return (idKey, type) => (a, id) => Chunk
|
|
5
|
+
.fromIterable(a)
|
|
6
|
+
.pipe(Chunk.findFirst((_) => Equal.equals(_[idKey], id)), Effect.mapError(() => new NotFoundError({ type, id })));
|
|
7
|
+
}
|
|
8
|
+
export const makeGetFirstById = () => (type) => makeGetFirstBy()("id", type);
|
|
9
|
+
export function getFirstById(a, id, type) {
|
|
10
|
+
return makeGetFirstById()(type)(a, id);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX2V4dC9BcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1QyxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPLENBQWdELEtBQVMsRUFBRSxJQUFVLEVBQUUsRUFBRSxDQUNoRixDQUNFLENBQWMsRUFDZCxFQUFTLEVBQ1QsRUFBRSxDQUNGLEtBQUs7U0FDRixZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ2YsSUFBSSxDQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ2xELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFhLENBQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUM3RCxDQUFBO0FBQ1AsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQThCLEVBQUUsQ0FBQyxDQUFzQixJQUFVLEVBQUUsRUFBRSxDQUNuRyxjQUFjLEVBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFFakMsTUFBTSxVQUFVLFlBQVksQ0FDMUIsQ0FBYyxFQUNkLEVBQVcsRUFDWCxJQUFVO0lBRVYsT0FBTyxnQkFBZ0IsRUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUMzQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -368,6 +368,16 @@
|
|
|
368
368
|
"default": "./_cjs/Widen.type.cjs"
|
|
369
369
|
}
|
|
370
370
|
},
|
|
371
|
+
"./_ext/Array": {
|
|
372
|
+
"import": {
|
|
373
|
+
"types": "./dist/_ext/Array.d.ts",
|
|
374
|
+
"default": "./dist/_ext/Array.js"
|
|
375
|
+
},
|
|
376
|
+
"require": {
|
|
377
|
+
"types": "./dist/_ext/Array.d.ts",
|
|
378
|
+
"default": "./_cjs/_ext/Array.cjs"
|
|
379
|
+
}
|
|
380
|
+
},
|
|
371
381
|
"./_ext/date": {
|
|
372
382
|
"import": {
|
|
373
383
|
"types": "./dist/_ext/date.d.ts",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Chunk, Effect, Equal } from "effect-app"
|
|
2
|
+
import { NotFoundError } from "../client.js"
|
|
3
|
+
|
|
4
|
+
export function makeGetFirstBy<A>() {
|
|
5
|
+
return <const Id extends keyof A, Type extends string>(idKey: Id, type: Type) =>
|
|
6
|
+
(
|
|
7
|
+
a: Iterable<A>,
|
|
8
|
+
id: A[Id]
|
|
9
|
+
) =>
|
|
10
|
+
Chunk
|
|
11
|
+
.fromIterable(a)
|
|
12
|
+
.pipe(
|
|
13
|
+
Chunk.findFirst((_) => Equal.equals(_[idKey], id)),
|
|
14
|
+
Effect.mapError(() => new NotFoundError<Type>({ type, id }))
|
|
15
|
+
)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const makeGetFirstById = <A extends { id: unknown }>() => <Type extends string>(type: Type) =>
|
|
19
|
+
makeGetFirstBy<A>()("id", type)
|
|
20
|
+
|
|
21
|
+
export function getFirstById<A extends { id: unknown }, Type extends string>(
|
|
22
|
+
a: Iterable<A>,
|
|
23
|
+
id: A["id"],
|
|
24
|
+
type: Type
|
|
25
|
+
) {
|
|
26
|
+
return makeGetFirstById<A>()(type)(a, id)
|
|
27
|
+
}
|