effect-app 0.152.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/.eslintrc.cjs +11 -0
- package/.prettierignore +6 -0
- package/CHANGELOG.md +4106 -0
- package/_cjs/Config/SecretURL.cjs +58 -0
- package/_cjs/Config/SecretURL.cjs.map +1 -0
- package/_cjs/Config/internal/configSecretURL.cjs +88 -0
- package/_cjs/Config/internal/configSecretURL.cjs.map +1 -0
- package/_cjs/Inputify.type.cjs +6 -0
- package/_cjs/Inputify.type.cjs.map +1 -0
- package/_cjs/Operations.cjs +76 -0
- package/_cjs/Operations.cjs.map +1 -0
- package/_cjs/Pure.cjs +201 -0
- package/_cjs/Pure.cjs.map +1 -0
- package/_cjs/Request.cjs +76 -0
- package/_cjs/Request.cjs.map +1 -0
- package/_cjs/Widen.type.cjs +6 -0
- package/_cjs/Widen.type.cjs.map +1 -0
- package/_cjs/_ext/date.cjs +64 -0
- package/_cjs/_ext/date.cjs.map +1 -0
- package/_cjs/_ext/misc.cjs +121 -0
- package/_cjs/_ext/misc.cjs.map +1 -0
- package/_cjs/_global.cjs +24 -0
- package/_cjs/_global.cjs.map +1 -0
- package/_cjs/_global.ext.cjs +5 -0
- package/_cjs/_global.ext.cjs.map +1 -0
- package/_cjs/_global.schema.cjs +4 -0
- package/_cjs/_global.schema.cjs.map +1 -0
- package/_cjs/client/QueryResult.cjs +116 -0
- package/_cjs/client/QueryResult.cjs.map +1 -0
- package/_cjs/client/clientFor.cjs +159 -0
- package/_cjs/client/clientFor.cjs.map +1 -0
- package/_cjs/client/config.cjs +21 -0
- package/_cjs/client/config.cjs.map +1 -0
- package/_cjs/client/errors.cjs +116 -0
- package/_cjs/client/errors.cjs.map +1 -0
- package/_cjs/client/fetch.cjs +178 -0
- package/_cjs/client/fetch.cjs.map +1 -0
- package/_cjs/client.cjs +61 -0
- package/_cjs/client.cjs.map +1 -0
- package/_cjs/faker.cjs +31 -0
- package/_cjs/faker.cjs.map +1 -0
- package/_cjs/ids.cjs +24 -0
- package/_cjs/ids.cjs.map +1 -0
- package/_cjs/index.cjs +27 -0
- package/_cjs/index.cjs.map +1 -0
- package/_cjs/refinements.cjs +97 -0
- package/_cjs/refinements.cjs.map +1 -0
- package/_cjs/schema.cjs +50 -0
- package/_cjs/schema.cjs.map +1 -0
- package/_cjs/schema.test.cjs +9 -0
- package/_cjs/schema.test.cjs.map +1 -0
- package/_cjs/service.cjs +97 -0
- package/_cjs/service.cjs.map +1 -0
- package/_cjs/utils.cjs +17 -0
- package/_cjs/utils.cjs.map +1 -0
- package/_src/Config/SecretURL.ts +103 -0
- package/_src/Config/internal/configSecretURL.ts +85 -0
- package/_src/Inputify.type.ts +13 -0
- package/_src/Operations.ts +70 -0
- package/_src/Pure.ts +525 -0
- package/_src/Request.ts +106 -0
- package/_src/Widen.type.ts +28 -0
- package/_src/_ext/date.ts +84 -0
- package/_src/_ext/misc.ts +161 -0
- package/_src/_global/stm.ts.bak +35 -0
- package/_src/_global.ext.ts +3 -0
- package/_src/_global.schema.ts +106 -0
- package/_src/_global.ts +119 -0
- package/_src/client/QueryResult.ts +120 -0
- package/_src/client/clientFor.ts +260 -0
- package/_src/client/config.ts +13 -0
- package/_src/client/errors.ts +129 -0
- package/_src/client/fetch.ts +253 -0
- package/_src/client.ts +7 -0
- package/_src/faker.ts +32 -0
- package/_src/ids.ts +35 -0
- package/_src/index.ts +4 -0
- package/_src/refinements.ts +92 -0
- package/_src/schema/_schema.ts.bak +208 -0
- package/_src/schema/api/date.ts.bak +78 -0
- package/_src/schema/api.ts.bak +20 -0
- package/_src/schema/overrides.ts.bak +76 -0
- package/_src/schema/shared.ts.bak +334 -0
- package/_src/schema.test.ts +3 -0
- package/_src/schema.ts +37 -0
- package/_src/service.ts +119 -0
- package/_src/utils.ts +1 -0
- package/dist/Config/SecretURL.d.ts +82 -0
- package/dist/Config/SecretURL.d.ts.map +1 -0
- package/dist/Config/SecretURL.js +49 -0
- package/dist/Config/internal/configSecretURL.d.ts +24 -0
- package/dist/Config/internal/configSecretURL.d.ts.map +1 -0
- package/dist/Config/internal/configSecretURL.js +75 -0
- package/dist/Inputify.type.d.ts +10 -0
- package/dist/Inputify.type.d.ts.map +1 -0
- package/dist/Inputify.type.js +2 -0
- package/dist/Operations.d.ts +170 -0
- package/dist/Operations.d.ts.map +1 -0
- package/dist/Operations.js +87 -0
- package/dist/Pure.d.ts +169 -0
- package/dist/Pure.d.ts.map +1 -0
- package/dist/Pure.js +167 -0
- package/dist/Request.d.ts +49 -0
- package/dist/Request.d.ts.map +1 -0
- package/dist/Request.js +58 -0
- package/dist/Widen.type.d.ts +19 -0
- package/dist/Widen.type.d.ts.map +1 -0
- package/dist/Widen.type.js +2 -0
- package/dist/_ext/date.d.ts +71 -0
- package/dist/_ext/date.d.ts.map +1 -0
- package/dist/_ext/date.js +58 -0
- package/dist/_ext/misc.d.ts +77 -0
- package/dist/_ext/misc.d.ts.map +1 -0
- package/dist/_ext/misc.js +98 -0
- package/dist/_global.d.ts +70 -0
- package/dist/_global.d.ts.map +1 -0
- package/dist/_global.ext.d.ts +3 -0
- package/dist/_global.ext.d.ts.map +1 -0
- package/dist/_global.ext.js +4 -0
- package/dist/_global.js +76 -0
- package/dist/_global.schema.d.ts +6 -0
- package/dist/_global.schema.d.ts.map +1 -0
- package/dist/_global.schema.js +6 -0
- package/dist/client/QueryResult.d.ts +85 -0
- package/dist/client/QueryResult.d.ts.map +1 -0
- package/dist/client/QueryResult.js +85 -0
- package/dist/client/clientFor.d.ts +44 -0
- package/dist/client/clientFor.d.ts.map +1 -0
- package/dist/client/clientFor.js +144 -0
- package/dist/client/config.d.ts +14 -0
- package/dist/client/config.d.ts.map +1 -0
- package/dist/client/config.js +11 -0
- package/dist/client/errors.d.ts +206 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +130 -0
- package/dist/client/fetch.d.ts +61 -0
- package/dist/client/fetch.d.ts.map +1 -0
- package/dist/client/fetch.js +127 -0
- package/dist/client.d.ts +6 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +7 -0
- package/dist/faker.d.ts +7 -0
- package/dist/faker.d.ts.map +1 -0
- package/dist/faker.js +24 -0
- package/dist/ids.d.ts +32 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +17 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/refinements.d.ts +57 -0
- package/dist/refinements.d.ts.map +1 -0
- package/dist/refinements.js +85 -0
- package/dist/schema.d.ts +7 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +22 -0
- package/dist/schema.test.d.ts.map +1 -0
- package/dist/service.d.ts +47 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +83 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +2 -0
- package/package.json +315 -0
- package/tsconfig.json +114 -0
- package/tsconfig.json.bak +47 -0
- package/tsplus.config.json +7 -0
- package/vitest.config.ts +5 -0
- package/wallaby.cjs +1 -0
package/dist/ids.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { NonEmptyString255, Schema, StringId } from "effect-app/schema";
|
|
2
|
+
import type { StringIdBrand } from "effect-app/schema";
|
|
3
|
+
import type { B } from "@effect-app/schema/schema";
|
|
4
|
+
import type { Simplify } from "effect/Types";
|
|
5
|
+
export interface RequestIdBrand extends StringIdBrand {
|
|
6
|
+
readonly RequestId: unique symbol;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @tsplus type RequestId
|
|
10
|
+
*/
|
|
11
|
+
export type RequestId = NonEmptyString255;
|
|
12
|
+
export declare const RequestId: import("effect-app/schema").WithDefaults<import("effect-app/schema").Schema<import("effect-app/schema").NonEmptyString255, string, never> & {
|
|
13
|
+
make: () => NonEmptyString255;
|
|
14
|
+
withDefault: import("effect-app/schema").Schema<import("effect-app/schema").NonEmptyString255, string, never> & import("effect-app/schema").ConstructorPropertyDescriptor<import("effect-app/schema").NonEmptyString255, string, never>;
|
|
15
|
+
}> & import("effect-app/schema").Schema<import("effect-app/schema").NonEmptyString255, string, never> & {
|
|
16
|
+
make: () => NonEmptyString255;
|
|
17
|
+
withDefault: import("effect-app/schema").Schema<import("effect-app/schema").NonEmptyString255, string, never> & import("effect-app/schema").ConstructorPropertyDescriptor<import("effect-app/schema").NonEmptyString255, string, never>;
|
|
18
|
+
};
|
|
19
|
+
export interface UserProfileIdBrand extends Simplify<B.Brand<"UserProfileId"> & StringIdBrand> {
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @tsplus type UserProfileId
|
|
23
|
+
*/
|
|
24
|
+
export type UserProfileId = StringId & UserProfileIdBrand;
|
|
25
|
+
export declare const UserProfileId: import("effect-app/schema").WithDefaults<import("effect-app/schema").Schema<string & UserProfileIdBrand, string, never> & {
|
|
26
|
+
make: () => string & UserProfileIdBrand;
|
|
27
|
+
withDefault: import("effect-app/schema").ConstructorPropertyDescriptor<string & UserProfileIdBrand, string, never>;
|
|
28
|
+
} & import("effect-app/schema").WithDefaults<import("effect-app/schema").Schema<string & UserProfileIdBrand, string, never>>> & import("effect-app/schema").Schema<string & UserProfileIdBrand, string, never> & {
|
|
29
|
+
make: () => string & UserProfileIdBrand;
|
|
30
|
+
withDefault: import("effect-app/schema").ConstructorPropertyDescriptor<string & UserProfileIdBrand, string, never>;
|
|
31
|
+
} & import("effect-app/schema").WithDefaults<import("effect-app/schema").Schema<string & UserProfileIdBrand, string, never>>;
|
|
32
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../_src/ids.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,MAAM,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAA;AAEzC,eAAO,MAAM,SAAS;gBAKkB,iBAAiB;;;gBAAjB,iBAAiB;;CAOpC,CAAA;AAErB,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;CAAG;AACjG;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,kBAAkB,CAAA;AACzD,eAAO,MAAM,aAAa;;;;;;4HAAwC,CAAA"}
|
package/dist/ids.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "effect-app/schema";
|
|
2
|
+
import * as tsplus_module_2 from "effect-app";
|
|
3
|
+
import { brandedStringId, withDefaults } from "effect-app/schema";
|
|
4
|
+
import { extendM } from "./utils.js";
|
|
5
|
+
// a request id may be made from a span id, which does not comply with StringId schema.
|
|
6
|
+
export const RequestId = extendM(Object
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
8
|
+
.assign(Object.create(tsplus_module_1.NonEmptyString255), tsplus_module_1.NonEmptyString255), (s) => {
|
|
9
|
+
const make = tsplus_module_1.StringId.make;
|
|
10
|
+
return ({
|
|
11
|
+
make,
|
|
12
|
+
withDefault: tsplus_module_2.S.withDefaultConstructor(s, make)
|
|
13
|
+
});
|
|
14
|
+
})
|
|
15
|
+
.pipe(withDefaults);
|
|
16
|
+
export const UserProfileId = brandedStringId();
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vX3NyYy9pZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBSWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFVcEMsdUZBQXVGO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQzlCLE1BQU07SUFDSix3REFBd0Q7S0FDdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFDLGlCQUFpQixDQUFPLEVBQUUsZ0JBQUEsaUJBQXNELENBQUMsRUFDekcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNKLE1BQU0sSUFBSSxHQUFHLGdCQUFBLFFBQVEsQ0FBQyxJQUErQixDQUFBO0lBQ3JELE9BQU8sQ0FBQztRQUNOLElBQUk7UUFDSixXQUFXLEVBQUUsZ0JBQUEsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7S0FDL0MsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGO0tBQ0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0FBT3JCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxlQUFlLEVBQXNCLENBQUEifQ==
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../_src/index.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAChC,OAAO,KAAK,CAAC,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import "@effect-app/fluent-extensions";
|
|
2
|
+
export * from "@effect-app/core";
|
|
3
|
+
export * as S from "effect-app/schema";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sK0JBQStCLENBQUE7QUFFdEMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBIn0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Refinement } from "effect/Predicate";
|
|
2
|
+
import { Option } from "@effect-app/core/Option";
|
|
3
|
+
import { Equal } from "effect/Equal";
|
|
4
|
+
import type { Clone } from "@fp-ts/optic";
|
|
5
|
+
import { InvalidStateError } from "./client.js";
|
|
6
|
+
/**
|
|
7
|
+
* @tsplus getter function asCollectable
|
|
8
|
+
* @tsplus location "@effect-app/prelude/refinements"
|
|
9
|
+
*/
|
|
10
|
+
export declare function asCollectable<T, T2 extends T>(refinement: Refinement<T, T2>): (a: T) => import("effect/Option").Option<T2>;
|
|
11
|
+
/**
|
|
12
|
+
* @tsplus fluent function as
|
|
13
|
+
* @tsplus location "@effect-app/prelude/refinements"
|
|
14
|
+
*/
|
|
15
|
+
export declare function as<T, T2 extends T>(refinement: Refinement<T, T2>, name: string): (a: T) => import("effect/Either").Either<InvalidStateError, T2>;
|
|
16
|
+
/**
|
|
17
|
+
* @tsplus fluent function refinements
|
|
18
|
+
* @tsplus location "@effect-app/prelude/refinements"
|
|
19
|
+
*/
|
|
20
|
+
export declare function makeAwesome<T, T2 extends T>(refinement: Refinement<T, T2>, name: string): {
|
|
21
|
+
$item: (item: T) => {
|
|
22
|
+
readonly collect: import("effect/Option").Option<T2>;
|
|
23
|
+
readonly as: import("effect/Either").Either<InvalidStateError, T2>;
|
|
24
|
+
};
|
|
25
|
+
is: import("effect/Predicate").Refinement<T, T2>;
|
|
26
|
+
collect: (a: T) => import("effect/Option").Option<T2>;
|
|
27
|
+
as: (a: T) => import("effect/Either").Either<InvalidStateError, T2>;
|
|
28
|
+
lens: import("@fp-ts/optic").Iso<T2, T2>;
|
|
29
|
+
};
|
|
30
|
+
export interface Collect<A, B extends A> {
|
|
31
|
+
(a: A): Option<B>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @tsplus fluent function as
|
|
35
|
+
* @tsplus location "@effect-app/prelude/refinements"
|
|
36
|
+
*/
|
|
37
|
+
export declare function asOption<T, T2 extends T>(collect: Collect<T, T2>, name: string): (a: T) => import("effect/Either").Either<InvalidStateError, T2>;
|
|
38
|
+
/**
|
|
39
|
+
* @tsplus fluent function refinements
|
|
40
|
+
* @tsplus location "@effect-app/prelude/refinements"
|
|
41
|
+
*/
|
|
42
|
+
export declare function makeAwesomeCollect<T extends Object, T2 extends T>(collect: Collect<T, T2>, name: string): {
|
|
43
|
+
$item: (item: T) => {
|
|
44
|
+
readonly collect: import("effect/Option").Option<T2>;
|
|
45
|
+
readonly as: import("effect/Either").Either<InvalidStateError, T2>;
|
|
46
|
+
};
|
|
47
|
+
collect: Collect<T, T2>;
|
|
48
|
+
is: (item: T) => item is T2;
|
|
49
|
+
as: (a: T) => import("effect/Either").Either<InvalidStateError, T2>;
|
|
50
|
+
lens: import("@fp-ts/optic").Iso<T2, T2>;
|
|
51
|
+
copy: (item: T2, _copy: Partial<Omit<T2, keyof Clone | keyof Equal>>) => Omit<T2, typeof import("@fp-ts/optic").cloneTrait | keyof import("effect/Equal").Equal>;
|
|
52
|
+
clone: (item: T, cloned: T) => T;
|
|
53
|
+
};
|
|
54
|
+
export type GetCollectedType<T> = T extends {
|
|
55
|
+
collect: Collect<any, infer U>;
|
|
56
|
+
} ? U : never;
|
|
57
|
+
//# sourceMappingURL=refinements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refinements.d.ts","sourceRoot":"","sources":["../_src/refinements.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;;;;;AAM/C,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,gDAE3E;;;;;AAKD,wBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,mEAK9E;;;;;AAKD,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM;kBAQ7D,CAAC;;;;;;;;EAc3B;AAGD,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC;IACrC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;CAClB;;;;;AAKD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,mEAE9E;;;;;AAKD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM;kBAa7E,CAAC;;;;;eAXR,CAAC;;;iBAQJ,EAAE,SAAS,QAAQ,KAAK,EAAE,EAAE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,CAAC;kBACtD,CAAC,UAAU,CAAC;EAgB7B;AACD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "effect/Option";
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/prelude/_ext/misc";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/core/Function";
|
|
4
|
+
import * as tsplus_module_4 from "@fp-ts/optic/index";
|
|
5
|
+
export const asCollectable = asCollectable_1;
|
|
6
|
+
export const as = as_1;
|
|
7
|
+
export const asOption = asOption_1;
|
|
8
|
+
import { InvalidStateError } from "./client.js";
|
|
9
|
+
import { clone, copy } from "./utils.js";
|
|
10
|
+
/**
|
|
11
|
+
* @tsplus getter function asCollectable
|
|
12
|
+
*/
|
|
13
|
+
function asCollectable_1(refinement) {
|
|
14
|
+
return tsplus_module_1.liftPredicate(refinement);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @tsplus fluent function as
|
|
18
|
+
*/
|
|
19
|
+
function as_1(refinement, name) {
|
|
20
|
+
return tsplus_module_3.flow(asCollectable_1(refinement), (_) => tsplus_module_2.encaseMaybeEither_(_, () => new InvalidStateError(`Cannot be ${name}`)));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @tsplus fluent function refinements
|
|
24
|
+
*/
|
|
25
|
+
export function makeAwesome(refinement, name) {
|
|
26
|
+
const as = as_1(refinement, name);
|
|
27
|
+
const validate = {
|
|
28
|
+
is: refinement,
|
|
29
|
+
collect: asCollectable_1(refinement),
|
|
30
|
+
as,
|
|
31
|
+
lens: tsplus_module_4.id()
|
|
32
|
+
};
|
|
33
|
+
function validatei(item) {
|
|
34
|
+
return {
|
|
35
|
+
get collect() {
|
|
36
|
+
return validate.collect(item);
|
|
37
|
+
},
|
|
38
|
+
get as() {
|
|
39
|
+
return validate.as(item);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
...validate,
|
|
45
|
+
$item: validatei
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @tsplus fluent function as
|
|
50
|
+
*/
|
|
51
|
+
function asOption_1(collect, name) {
|
|
52
|
+
return tsplus_module_3.flow(collect, (_) => tsplus_module_2.encaseMaybeEither_(_, () => new InvalidStateError({ message: `Cannot be ${name}` })));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @tsplus fluent function refinements
|
|
56
|
+
*/
|
|
57
|
+
export function makeAwesomeCollect(collect, name) {
|
|
58
|
+
const as = asOption_1(collect, name);
|
|
59
|
+
function is(item) {
|
|
60
|
+
return tsplus_module_1.isSome(collect(item));
|
|
61
|
+
}
|
|
62
|
+
const validate = {
|
|
63
|
+
collect,
|
|
64
|
+
is,
|
|
65
|
+
as,
|
|
66
|
+
lens: tsplus_module_4.id(),
|
|
67
|
+
copy: (item, _copy) => copy(item, _copy),
|
|
68
|
+
clone: (item, cloned) => clone(item, cloned)
|
|
69
|
+
};
|
|
70
|
+
function validatei(item) {
|
|
71
|
+
return {
|
|
72
|
+
get collect() {
|
|
73
|
+
return validate.collect(item);
|
|
74
|
+
},
|
|
75
|
+
get as() {
|
|
76
|
+
return validate.as(item);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
...validate,
|
|
82
|
+
$item: validatei
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmaW5lbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL3JlZmluZW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7YUFPZ0IsYUFBYTthQU9iLEVBQUU7YUEwQ0YsUUFBUTtBQXZEeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXhDOztHQUVHO0FBQ0gseUJBQStDLFVBQTZCO0lBQzFFLE9BQU8sOEJBQXFCLFVBQVUsQ0FBQyxDQUFBO0FBQ3pDLENBQUM7QUFFRDs7R0FFRztBQUNILGNBQW9DLFVBQTZCLEVBQUUsSUFBWTtJQUM3RSxPQUFPLGdCQUFBLElBQUksQ0FDVCxnQkFBYyxVQUFVLENBQUMsRUFDekIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLG1DQUFBLENBQUMsRUFBZ0IsR0FBRyxFQUFFLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDMUUsQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQWtCLFVBQTZCLEVBQUUsSUFBWTtJQUN0RixNQUFNLEVBQUUsR0FBRyxLQUFBLFVBQVUsRUFBSSxJQUFJLENBQUMsQ0FBQTtJQUM5QixNQUFNLFFBQVEsR0FBRztRQUNmLEVBQUUsRUFBRSxVQUFVO1FBQ2QsT0FBTyxrQkFBRSxVQUFVLENBQWM7UUFDakMsRUFBRTtRQUNGLElBQUksRUFBRSxvQkFBYztLQUNyQixDQUFBO0lBQ0QsU0FBUyxTQUFTLENBQUMsSUFBTztRQUN4QixPQUFPO1lBQ0wsSUFBSSxPQUFPO2dCQUNULE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMvQixDQUFDO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMxQixDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPO1FBQ0wsR0FBRyxRQUFRO1FBQ1gsS0FBSyxFQUFFLFNBQVM7S0FDakIsQ0FBQTtBQUNILENBQUM7QUFPRDs7R0FFRztBQUNILG9CQUEwQyxPQUF1QixFQUFFLElBQVk7SUFDN0UsT0FBTyxnQkFBQSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQ0FBQSxDQUFDLEVBQWdCLEdBQUcsRUFBRSxDQUFDLElBQUksaUJBQWlCLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzlHLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBaUMsT0FBdUIsRUFBRSxJQUFZO0lBQ3RHLE1BQU0sRUFBRSxHQUFHLFdBQUEsT0FBTyxFQUFJLElBQUksQ0FBQyxDQUFBO0lBQzNCLFNBQVMsRUFBRSxDQUFDLElBQU87UUFDakIsT0FBTyx1QkFBQSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQVMsQ0FBQTtJQUMvQixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUc7UUFDZixPQUFPO1FBQ1AsRUFBRTtRQUNGLEVBQUU7UUFDRixJQUFJLEVBQUUsb0JBQWM7UUFDcEIsSUFBSSxFQUFFLENBQUMsSUFBUSxFQUFFLEtBQW1ELEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQzFGLEtBQUssRUFBRSxDQUFDLElBQU8sRUFBRSxNQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0tBQ25ELENBQUE7SUFDRCxTQUFTLFNBQVMsQ0FBQyxJQUFPO1FBQ3hCLE9BQU87WUFDTCxJQUFJLE9BQU87Z0JBQ1QsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQy9CLENBQUM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUNELE9BQU87UUFDTCxHQUFHLFFBQVE7UUFDWCxLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFBO0FBQ0gsQ0FBQyJ9
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Email as EmailT, type PhoneNumber as PhoneNumberT } from "@effect-app/schema";
|
|
2
|
+
export declare const Email: import("@effect-app/schema").WithDefaults<import("@effect-app/schema").Schema<string & import("@effect-app/schema").EmailBrand, string, never>> & import("@effect-app/schema").Schema<string & import("@effect-app/schema").EmailBrand, string, never>;
|
|
3
|
+
export type Email = EmailT;
|
|
4
|
+
export declare const PhoneNumber: import("@effect-app/schema").WithDefaults<import("@effect-app/schema").Schema<string & import("@effect-app/schema").PhoneNumberBrand, string, never>> & import("@effect-app/schema").Schema<string & import("@effect-app/schema").PhoneNumberBrand, string, never>;
|
|
5
|
+
export type PhoneNumber = PhoneNumberT;
|
|
6
|
+
export * from "@effect-app/schema";
|
|
7
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../_src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,KAAK,IAAI,MAAM,EAAsB,KAAK,WAAW,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGvH,eAAO,MAAM,KAAK,wPAYf,CAAA;AAEH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAA;AAE1B,eAAO,MAAM,WAAW,oQAYrB,CAAA;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAA;AAEtC,cAAc,oBAAoB,CAAA"}
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "effect-app";
|
|
2
|
+
import { isValidEmail, isValidPhone } from "@effect-app/core/validation";
|
|
3
|
+
import { fromBrand, nominal } from "@effect-app/schema";
|
|
4
|
+
import { fakerArb } from "./faker.js";
|
|
5
|
+
export const Email = tsplus_module_1.S.string
|
|
6
|
+
.pipe(tsplus_module_1.S.filter(isValidEmail, {
|
|
7
|
+
title: "Email",
|
|
8
|
+
description: "an email according to RFC 5322",
|
|
9
|
+
jsonSchema: { format: "email" },
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
11
|
+
arbitrary: () => fakerArb((faker) => faker.internet.exampleEmail)
|
|
12
|
+
}), fromBrand(nominal(), { jsonSchema: {} }), tsplus_module_1.S.withDefaults);
|
|
13
|
+
export const PhoneNumber = tsplus_module_1.S.string
|
|
14
|
+
.pipe(tsplus_module_1.S.filter(isValidPhone, {
|
|
15
|
+
title: "PhoneNumber",
|
|
16
|
+
description: "a phone number with at least 7 digits",
|
|
17
|
+
jsonSchema: { format: "phone" },
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
19
|
+
arbitrary: () => fakerArb((faker) => faker.phone.number)
|
|
20
|
+
}), fromBrand(nominal(), { jsonSchema: {} }), tsplus_module_1.S.withDefaults);
|
|
21
|
+
export * from "@effect-app/schema";
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vX3NyYy9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDeEUsT0FBTyxFQUFnQyxTQUFTLEVBQUUsT0FBTyxFQUFvQyxNQUFNLG9CQUFvQixDQUFBO0FBQ3ZILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLGdCQUFBLENBQUMsQ0FDbkIsTUFBTTtLQUNOLElBQUksQ0FDSCxnQkFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtJQUNyQixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxnQ0FBZ0M7SUFDN0MsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUMvQiw2REFBNkQ7SUFDN0QsU0FBUyxFQUFFLEdBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0NBQ3ZGLENBQUMsRUFDRixTQUFTLENBQUMsT0FBTyxFQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFDL0MsZ0JBQUEsQ0FBQyxDQUFDLFlBQVksQ0FDZixDQUFBO0FBSUgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGdCQUFBLENBQUMsQ0FDekIsTUFBTTtLQUNOLElBQUksQ0FDSCxnQkFBQSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtJQUNyQixLQUFLLEVBQUUsYUFBYTtJQUNwQixXQUFXLEVBQUUsdUNBQXVDO0lBQ3BELFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7SUFDL0IsNkRBQTZEO0lBQzdELFNBQVMsRUFBRSxHQUF3QixFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztDQUM5RSxDQUFDLEVBQ0YsU0FBUyxDQUFDLE9BQU8sRUFBZSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQ3JELGdCQUFBLENBQUMsQ0FBQyxZQUFZLENBQ2YsQ0FBQTtBQUlILGNBQWMsb0JBQW9CLENBQUEifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.test.d.ts","sourceRoot":"","sources":["../_src/schema.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* We're doing the long way around here with assignTag, TagBase & TagBaseTagged,
|
|
3
|
+
* because there's a typescript compiler issue where it will complain about Equal.symbol, and Hash.symbol not being accessible.
|
|
4
|
+
* https://github.com/microsoft/TypeScript/issues/52644
|
|
5
|
+
*/
|
|
6
|
+
import { Tag } from "effect/Context";
|
|
7
|
+
import { Effect } from "effect/Effect";
|
|
8
|
+
import { Layer } from "effect/Layer";
|
|
9
|
+
import { Scope } from "effect/Scope";
|
|
10
|
+
import type { TagTypeId as TagTypeIdOriginal } from "effect/Context";
|
|
11
|
+
export declare const ServiceTag: unique symbol;
|
|
12
|
+
export type ServiceTag = typeof ServiceTag;
|
|
13
|
+
export declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
|
|
14
|
+
protected abstract readonly [ServiceTag]: {
|
|
15
|
+
readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @tsplus type ServiceTagged
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class ServiceTagged<ServiceKey> extends PhantomTypeParameter<string, ServiceKey> {
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @tsplus static ServiceTagged make
|
|
25
|
+
* @tsplus location "@effect-app/prelude/service"
|
|
26
|
+
*/
|
|
27
|
+
export declare function makeService<T extends ServiceTagged<any>>(_: Omit<T, ServiceTag>): T;
|
|
28
|
+
/**
|
|
29
|
+
* @tsplus fluent effect/data/Context/Tag make
|
|
30
|
+
* @tsplus location "@effect-app/prelude/service"
|
|
31
|
+
*/
|
|
32
|
+
export declare function make<T extends ServiceTagged<any>, I = T>(_: Tag<I, T>, t: Omit<T, ServiceTag>): T;
|
|
33
|
+
export declare const TagTypeId: TagTypeIdOriginal;
|
|
34
|
+
export type TagTypeId = typeof TagTypeId;
|
|
35
|
+
export declare function assignTag<Id, Service = Id>(key?: string): <S extends object>(cls: S) => S & Tag<Id, Service>;
|
|
36
|
+
export declare function TagClass<Id, ServiceImpl, Service = Id>(key?: string): (new (service: ServiceImpl) => Readonly<ServiceImpl>) & import("effect/Context").Tag<Id, Service>;
|
|
37
|
+
export declare const TagClassMake: <Id, Service = Id>() => <ServiceImpl, R, E>(make: Effect<ServiceImpl, E, R>, key?: string) => {
|
|
38
|
+
new (service: ServiceImpl): Readonly<ServiceImpl>;
|
|
39
|
+
toLayer: () => Layer<Service, E, R>;
|
|
40
|
+
toLayerScoped: () => Layer<Service, E, Exclude<R, Scope>>;
|
|
41
|
+
} & import("effect/Context").Tag<Id, Service>;
|
|
42
|
+
export declare function TagClassLegacy<Id, Service = Id>(key?: string): (abstract new () => {}) & import("effect/Context").Tag<Id, Service>;
|
|
43
|
+
/** @deprecated use `Id` of TagClass for unique id */
|
|
44
|
+
export declare function ServiceTaggedClass<Id, Service = Id>(): <Key extends PropertyKey>(_: Key) => ((abstract new () => {}) & {
|
|
45
|
+
make: (t: Omit<Service, Key>) => Service;
|
|
46
|
+
}) & import("effect/Context").Tag<Id, Service>;
|
|
47
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../_src/service.ts"],"names":[],"mappings":"AAEA;;;;GAIG;;;;;AAEH,OAAO,KAAK,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEpE,eAAO,MAAM,UAAU,eAAW,CAAA;AAClC,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAA;AAE1C,8BAAsB,oBAAoB,CAAC,UAAU,SAAS,MAAM,GAAG,EAAE,gBAAgB;IACvF,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;QACxC,QAAQ,EAAE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB;KAC1E,CAAA;CACF;AAED;;GAEG;AACH,8BAAsB,aAAa,CAAC,UAAU,CAAE,SAAQ,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC;CAAG;;;;;AAKnG,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAE/E;;;;;AAKD,wBAAgB,IAAI,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,KAE7F;AAED,eAAO,MAAM,SAAS,EAAE,iBAAoF,CAAA;AAC5G,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAA;AAKxC,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,2BACvB,CAAC,KAAG,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,CAgBxD;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,kBAC1C,WAAW,KAAG,SAAS,WAAW,CAAC,8CAQ5D;AAED,eAAO,MAAM,YAAY,oDAEjB,OAAO,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,QACzB,MAAM;kBAGG,WAAW,GAAG,SAAS,WAAW,CAAC;aACvC,MAAM,MAAM,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;mBACpB,MAAM,MAAM,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;6CAiB5D,CAAA;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,uEAI5D;AAED,qDAAqD;AACrD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,kCACb,GAAG;cAEjB,KAAK,OAAO,EAAE,GAAG,CAAC;+CAOzC"}
|
package/dist/service.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "effect/Context";
|
|
2
|
+
import * as tsplus_module_2 from "effect/Layer";
|
|
3
|
+
export const ServiceTag = Symbol();
|
|
4
|
+
export class PhantomTypeParameter {
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @tsplus type ServiceTagged
|
|
8
|
+
*/
|
|
9
|
+
export class ServiceTagged extends PhantomTypeParameter {
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @tsplus static ServiceTagged make
|
|
13
|
+
*/
|
|
14
|
+
export function makeService(_) {
|
|
15
|
+
return _;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @tsplus fluent effect/data/Context/Tag make
|
|
19
|
+
*/
|
|
20
|
+
export function make(_, t) {
|
|
21
|
+
return t;
|
|
22
|
+
}
|
|
23
|
+
export const TagTypeId = Symbol.for("effect/Context/Tag");
|
|
24
|
+
let i = 0;
|
|
25
|
+
const randomId = () => "unknown-service-" + i++;
|
|
26
|
+
export function assignTag(key) {
|
|
27
|
+
return (cls) => {
|
|
28
|
+
const tag = tsplus_module_1.GenericTag(key ?? randomId());
|
|
29
|
+
const t = Object.assign(cls, Object.getPrototypeOf(tag), tag);
|
|
30
|
+
const limit = Error.stackTraceLimit;
|
|
31
|
+
Error.stackTraceLimit = 4; // TODO
|
|
32
|
+
const creationError = new Error();
|
|
33
|
+
Error.stackTraceLimit = limit;
|
|
34
|
+
// the stack is used to get the location of the tag definition, if a service is not found in the registry
|
|
35
|
+
Object.defineProperty(t, "stack", {
|
|
36
|
+
get() {
|
|
37
|
+
// remove one line as assignTag is generally used inside a class constructor function
|
|
38
|
+
return creationError.stack?.split("\n").slice(1).join("\n");
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return t;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function TagClass(key) {
|
|
45
|
+
const c = class {
|
|
46
|
+
constructor(service) {
|
|
47
|
+
Object.assign(this, service);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
return assignTag(key)(c);
|
|
51
|
+
}
|
|
52
|
+
export const TagClassMake = () => (make, key) => {
|
|
53
|
+
const c = class {
|
|
54
|
+
constructor(service) {
|
|
55
|
+
Object.assign(this, service);
|
|
56
|
+
}
|
|
57
|
+
// works around an issue where defining layer on the class messes up and causes the Tag to infer to `any, any` :/
|
|
58
|
+
static toLayer() {
|
|
59
|
+
return tsplus_module_2.effect(this)(make);
|
|
60
|
+
}
|
|
61
|
+
static toLayerScoped() {
|
|
62
|
+
return tsplus_module_2.scoped(this)(make);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
return assignTag(key)(c);
|
|
66
|
+
};
|
|
67
|
+
export function TagClassLegacy(key) {
|
|
68
|
+
class TagClassLegacy {
|
|
69
|
+
}
|
|
70
|
+
return assignTag(key)(TagClassLegacy);
|
|
71
|
+
}
|
|
72
|
+
/** @deprecated use `Id` of TagClass for unique id */
|
|
73
|
+
export function ServiceTaggedClass() {
|
|
74
|
+
return (_) => {
|
|
75
|
+
class ServiceTaggedClassC {
|
|
76
|
+
}
|
|
77
|
+
ServiceTaggedClassC.make = (t) => {
|
|
78
|
+
return t;
|
|
79
|
+
};
|
|
80
|
+
return assignTag()(ServiceTaggedClassC);
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQTtBQUdsQyxNQUFNLE9BQWdCLG9CQUFvQjtDQUl6QztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixhQUEwQixTQUFRLG9CQUF3QztDQUFHO0FBRW5HOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBK0IsQ0FBc0I7SUFDOUUsT0FBTyxDQUFNLENBQUE7QUFDZixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFzQyxDQUFZLEVBQUUsQ0FBc0I7SUFDNUYsT0FBTyxDQUFNLENBQUE7QUFDZixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFzQixNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFpQyxDQUFBO0FBRzVHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNULE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixHQUFHLENBQUMsRUFBRSxDQUFBO0FBRS9DLE1BQU0sVUFBVSxTQUFTLENBQW1CLEdBQVk7SUFDdEQsT0FBTyxDQUFtQixHQUFNLEVBQXdCLEVBQUU7UUFDeEQsTUFBTSxHQUFHLEdBQUcsZ0JBQUEsVUFBVSxDQUFjLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQ3RELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDN0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQTtRQUNuQyxLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQSxDQUFDLE9BQU87UUFDakMsTUFBTSxhQUFhLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQTtRQUNqQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtRQUM3Qix5R0FBeUc7UUFDekcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFO1lBQ2hDLEdBQUc7Z0JBQ0QscUZBQXFGO2dCQUNyRixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDN0QsQ0FBQztTQUNGLENBQUMsQ0FBQTtRQUNGLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQWdDLEdBQVk7SUFDbEUsTUFBTSxDQUFDLEdBQXlEO1FBQzlELFlBQVksT0FBb0I7WUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDOUIsQ0FBQztLQUVLLENBQUE7SUFFUixPQUFPLFNBQVMsQ0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQXFCLEVBQUUsQ0FDbkQsQ0FDRSxJQUErQixFQUMvQixHQUFZLEVBQ1osRUFBRTtJQUNGLE1BQU0sQ0FBQyxHQUlIO1FBQ0YsWUFBWSxPQUFvQjtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM5QixDQUFDO1FBQ0QsaUhBQWlIO1FBQ2pILE1BQU0sQ0FBQyxPQUFPO1lBQ1osT0FBTyx1QkFBYSxJQUFXLEVBQXhCLElBQUksQ0FBcUIsQ0FBQTtRQUNsQyxDQUFDO1FBRUQsTUFBTSxDQUFDLGFBQWE7WUFDbEIsT0FBTyx1QkFBbUIsSUFBVyxFQUE5QixJQUFJLENBQTJCLENBQUE7UUFDeEMsQ0FBQztLQUVLLENBQUE7SUFFUixPQUFPLFNBQVMsQ0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN2QyxDQUFDLENBQUE7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFtQixHQUFZO0lBQzNELE1BQWUsY0FBYztLQUFHO0lBRWhDLE9BQU8sU0FBUyxDQUFjLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBQ3BELENBQUM7QUFFRCxxREFBcUQ7QUFDckQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLENBQTBCLENBQU0sRUFBRSxFQUFFO1FBQ3pDLE1BQWUsbUJBQW1COztRQUN6Qix3QkFBSSxHQUFHLENBQUMsQ0FBcUIsRUFBRSxFQUFFO1lBQ3RDLE9BQU8sQ0FBWSxDQUFBO1FBQ3JCLENBQUMsQ0FBQTtRQUdILE9BQU8sU0FBUyxFQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUN0RCxDQUFDLENBQUE7QUFDSCxDQUFDIn0=
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../_src/utils.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
package/dist/utils.js
ADDED