effect-app 3.3.5 → 3.3.7
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 +12 -0
- package/dist/client/apiClientFactory.d.ts +5 -5
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +6 -5
- package/dist/client/clientFor.d.ts +16 -11
- package/dist/client/clientFor.d.ts.map +1 -1
- package/eslint.config.mjs +2 -1
- package/package.json +3 -8
- package/src/client/apiClientFactory.ts +16 -18
- package/src/client/clientFor.ts +31 -14
- package/src/eslint.base.config.mjs +0 -212
- package/src/eslint.vue.config.mjs +0 -111
package/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,7 @@ import * as Effect from "../Effect.js";
|
|
|
7
7
|
import { HttpClient } from "../http.js";
|
|
8
8
|
import * as Option from "../Option.js";
|
|
9
9
|
import * as S from "../Schema.js";
|
|
10
|
-
import type { ClientForOptions, Requests } from "./clientFor.js";
|
|
10
|
+
import type { ClientForOptions, Requests, RequestsAny } from "./clientFor.js";
|
|
11
11
|
export interface ApiConfig {
|
|
12
12
|
url: string;
|
|
13
13
|
headers: Option.Option<HashMap.HashMap<string, string>>;
|
|
@@ -27,7 +27,7 @@ type Req = S.Schema.All & {
|
|
|
27
27
|
export declare const HttpClientLayer: (config: ApiConfig) => Layer.Layer<HttpClient.HttpClient, never, HttpClient.HttpClient>;
|
|
28
28
|
export declare const HttpClientFromConfigLayer: Layer.Layer<HttpClient.HttpClient, import("effect/ConfigError").ConfigError, HttpClient.HttpClient>;
|
|
29
29
|
export declare const RpcSerializationLayer: (config: ApiConfig) => Layer.Layer<HttpClient.HttpClient | RpcSerialization.RpcSerialization, never, HttpClient.HttpClient>;
|
|
30
|
-
type RpcHandlers<M extends
|
|
30
|
+
type RpcHandlers<M extends RequestsAny> = {
|
|
31
31
|
[K in keyof M]: Rpc.Rpc<M[K]["_tag"], M[K], M[K]["success"], M[K]["failure"]>;
|
|
32
32
|
};
|
|
33
33
|
export declare const getMeta: <M extends Requests>(resource: M) => M["meta"];
|
|
@@ -53,12 +53,12 @@ export declare const makeRpcGroup: <M extends Requests, const ModuleName extends
|
|
|
53
53
|
moduleName: ModuleName;
|
|
54
54
|
};
|
|
55
55
|
})[K] extends Req ? K : never]: T_1[K] extends Req ? T_1[K] : never; } : never)], `${ModuleName}.`>>;
|
|
56
|
-
declare const ApiClientFactory_base: (abstract new (service: (requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(models: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta"
|
|
56
|
+
declare const ApiClientFactory_base: (abstract new (service: (requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(models: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta">, M["meta"]["moduleName"]>, never, never>) => Readonly<(requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(models: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta">, M["meta"]["moduleName"]>, never, never>> & Context.TagClassShape<"ApiClientFactory", (requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(models: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta">, M["meta"]["moduleName"]>, never, never>>) & {
|
|
57
57
|
toLayer: <E, R>(eff: Effect.Effect<Omit<ApiClientFactory, keyof Context.TagClassShape<any, any>>, E, R>) => Layer.Layer<ApiClientFactory, E, R>;
|
|
58
58
|
toLayerScoped: <E, R>(eff: Effect.Effect<Omit<ApiClientFactory, keyof Context.TagClassShape<any, any>>, E, R>) => Layer.Layer<ApiClientFactory, E, Exclude<R, import("effect/Scope").Scope>>;
|
|
59
59
|
of: (service: Omit<ApiClientFactory, keyof Context.TagClassShape<any, any>>) => ApiClientFactory;
|
|
60
60
|
} & Context.Tag<ApiClientFactory, ApiClientFactory> & {} & {
|
|
61
|
-
use: <X>(body: (_: (requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(models: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta"
|
|
61
|
+
use: <X>(body: (_: (requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(models: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta">, M["meta"]["moduleName"]>, never, never>) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, ApiClientFactory | R> : Effect.Effect<X, never, ApiClientFactory>;
|
|
62
62
|
};
|
|
63
63
|
/**
|
|
64
64
|
* Used to create clients for resource modules.
|
|
@@ -66,7 +66,7 @@ declare const ApiClientFactory_base: (abstract new (service: (requestLevelLayers
|
|
|
66
66
|
export declare class ApiClientFactory extends ApiClientFactory_base {
|
|
67
67
|
static readonly layer: (config: ApiConfig) => Layer.Layer<ApiClientFactory, never, HttpClient.HttpClient>;
|
|
68
68
|
static readonly layerFromConfig: Layer.Layer<ApiClientFactory, import("effect/ConfigError").ConfigError, HttpClient.HttpClient>;
|
|
69
|
-
static readonly makeFor: (requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(resource: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta"
|
|
69
|
+
static readonly makeFor: (requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) => <M extends Requests>(resource: M) => Effect.Effect<import("./clientFor.js").RequestHandlers<never, never, Omit<M, "meta">, M["meta"]["moduleName"]>, never, ApiClientFactory>;
|
|
70
70
|
}
|
|
71
71
|
export {};
|
|
72
72
|
//# sourceMappingURL=apiClientFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClientFactory.d.ts","sourceRoot":"","sources":["../../src/client/apiClientFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAa,QAAQ,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,UAAU,EAAqB,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,OAAO,KAAK,EAAU,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"apiClientFactory.d.ts","sourceRoot":"","sources":["../../src/client/apiClientFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,27 +101,28 @@ const makeApiClientFactory = Effect
|
|
|
101
101
|
requestName: cur,
|
|
102
102
|
moduleName: meta.moduleName
|
|
103
103
|
});
|
|
104
|
+
const layers = requestLevelLayers.pipe(Layer.provideMerge(requestNameLayer));
|
|
104
105
|
const fields = Struct.omit(Request.fields, "_tag");
|
|
105
106
|
const requestAttr = h._tag;
|
|
106
107
|
// @ts-expect-error doc
|
|
107
108
|
prev[cur] = Object.keys(fields).length === 0
|
|
108
109
|
? {
|
|
109
|
-
handler: TheClient.pipe(Effect.flatMap((client) => client[requestAttr](new Request())), Effect.provide(
|
|
110
|
+
handler: TheClient.pipe(Effect.flatMap((client) => client[requestAttr](new Request())), Effect.provide(layers), Effect.provide(mr)),
|
|
110
111
|
...requestMeta,
|
|
111
112
|
raw: {
|
|
112
113
|
handler: TheClient.pipe(Effect.flatMap((client) => client[requestAttr](new Request())), Effect.flatMap((res) => S.encode(Response)(res)), // TODO,
|
|
113
|
-
Effect.provide(
|
|
114
|
+
Effect.provide(layers), Effect.provide(mr)),
|
|
114
115
|
...requestMeta
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
: {
|
|
118
|
-
handler: (req) => TheClient.pipe(Effect.flatMap((client) => client[requestAttr](new Request(req))), Effect.provide(
|
|
119
|
+
handler: (req) => TheClient.pipe(Effect.flatMap((client) => client[requestAttr](new Request(req))), Effect.provide(layers), Effect.provide(mr)),
|
|
119
120
|
...requestMeta,
|
|
120
121
|
raw: {
|
|
121
122
|
handler: (req) =>
|
|
122
123
|
// @effect-diagnostics effect/missingEffectContext:off
|
|
123
124
|
TheClient.pipe(Effect.flatMap((client) => client[requestAttr](new Request(req))), Effect.flatMap((res) => S.encode(Response)(res)), // TODO,
|
|
124
|
-
Effect.provide(
|
|
125
|
+
Effect.provide(layers), Effect.provide(mr)),
|
|
125
126
|
...requestMeta
|
|
126
127
|
}
|
|
127
128
|
};
|
|
@@ -161,4 +162,4 @@ export class ApiClientFactory extends Context.TagId("ApiClientFactory")() {
|
|
|
161
162
|
.use((apiClientFactory) => apiClientFactory(requestLevelLayers, options))
|
|
162
163
|
.pipe(Effect.flatMap((f) => f(resource))); // don't rename f to clientFor or integration in vue project linked fucks up
|
|
163
164
|
}
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ2xpZW50RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvYXBpQ2xpZW50RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hFLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxjQUFjLE1BQU0sdUJBQXVCLENBQUE7QUFDdkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBUXhELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDekMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsT0FBTyxFQUFFLE1BQU07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
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ2xpZW50RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvYXBpQ2xpZW50RmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hFLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sS0FBSyxjQUFjLE1BQU0sdUJBQXVCLENBQUE7QUFDdkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFELE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBUXhELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDekMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsT0FBTyxFQUFFLE1BQU07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
|
|
@@ -4,8 +4,13 @@ import type * as Effect from "../Effect.js";
|
|
|
4
4
|
import type * as S from "../Schema.js";
|
|
5
5
|
export declare function makePathWithQuery(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
6
6
|
export declare function makePathWithBody(path: Path, pars: Record<string, string | number | boolean | readonly string[] | readonly number[] | readonly boolean[] | null>): string;
|
|
7
|
-
export type Requests =
|
|
8
|
-
|
|
7
|
+
export type Requests<ModuleName extends string = string> = {
|
|
8
|
+
meta: {
|
|
9
|
+
moduleName: ModuleName;
|
|
10
|
+
};
|
|
11
|
+
} & RequestsAny;
|
|
12
|
+
export type RequestsAny = Record<string, any>;
|
|
13
|
+
export type Client<M extends RequestsAny, ModuleName extends string> = RequestHandlers<never, never, M, ModuleName>;
|
|
9
14
|
export type ExtractResponse<T> = T extends S.Schema<any, any, any> ? S.Schema.Type<T> : T extends unknown ? void : never;
|
|
10
15
|
export type ExtractEResponse<T> = T extends S.Schema<any, any, any> ? S.Schema.Encoded<T> : T extends unknown ? void : never;
|
|
11
16
|
type IsEmpty<T> = keyof T extends never ? true : false;
|
|
@@ -18,23 +23,23 @@ export type TaggedRequestClassAny = S.Schema.Any & {
|
|
|
18
23
|
export interface ClientForOptions {
|
|
19
24
|
readonly skipQueryKey?: readonly string[];
|
|
20
25
|
}
|
|
21
|
-
export interface RequestHandler<A, E, R, Request extends TaggedRequestClassAny> {
|
|
26
|
+
export interface RequestHandler<A, E, R, Request extends TaggedRequestClassAny, Name extends string> {
|
|
22
27
|
handler: Effect.Effect<A, E, R>;
|
|
23
|
-
name:
|
|
28
|
+
name: Name;
|
|
24
29
|
options?: ClientForOptions;
|
|
25
30
|
Request: Request;
|
|
26
31
|
}
|
|
27
|
-
export interface RequestHandlerWithInput<I, A, E, R, Request extends TaggedRequestClassAny> {
|
|
32
|
+
export interface RequestHandlerWithInput<I, A, E, R, Request extends TaggedRequestClassAny, Name extends string> {
|
|
28
33
|
handler: (i: I) => Effect.Effect<A, E, R>;
|
|
29
|
-
name:
|
|
34
|
+
name: Name;
|
|
30
35
|
options?: ClientForOptions;
|
|
31
36
|
Request: Request;
|
|
32
37
|
}
|
|
33
|
-
export type RequestHandlers<R, E, M extends
|
|
34
|
-
[K in keyof M]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true ? RequestHandler<S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K]
|
|
35
|
-
raw: RequestHandler<S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K]
|
|
36
|
-
} : RequestHandlerWithInput<Omit<S.Schema.Type<M[K]>, Cruft>, S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K]
|
|
37
|
-
raw: RequestHandlerWithInput<Omit<S.Schema.Type<M[K]>, Cruft>, S.Schema.Encoded<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K]
|
|
38
|
+
export type RequestHandlers<R, E, M extends RequestsAny, ModuleName extends string> = {
|
|
39
|
+
[K in keyof M]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true ? RequestHandler<S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K], `${ModuleName}.${K & string}`> & {
|
|
40
|
+
raw: RequestHandler<S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K], `${ModuleName}.${K & string}`>;
|
|
41
|
+
} : RequestHandlerWithInput<Omit<S.Schema.Type<M[K]>, Cruft>, S.Schema.Type<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K], `${ModuleName}.${K & string}`> & {
|
|
42
|
+
raw: RequestHandlerWithInput<Omit<S.Schema.Type<M[K]>, Cruft>, S.Schema.Encoded<M[K]["success"]>, S.Schema.Type<M[K]["failure"]> | E, R, M[K], `${ModuleName}.${K & string}`>;
|
|
38
43
|
};
|
|
39
44
|
};
|
|
40
45
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientFor.d.ts","sourceRoot":"","sources":["../../src/client/clientFor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAA;AAEtC,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,CACV,MAAM,EACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,OAAO,EAAE,GAClB,IAAI,CACP,UAUF;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,CACV,MAAM,EACJ,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,SAAS,OAAO,EAAE,GAClB,IAAI,CACP,UAGF;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"clientFor.d.ts","sourceRoot":"","sources":["../../src/client/clientFor.ts"],"names":[],"mappings":"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"}
|
package/eslint.config.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from "node:path"
|
|
2
2
|
import { fileURLToPath } from "node:url"
|
|
3
|
-
|
|
3
|
+
// Use the shared config package instead of a non-existent local file
|
|
4
|
+
import { augmentedConfig } from "@effect-app/eslint-shared-config/eslint.base.config"
|
|
4
5
|
|
|
5
6
|
const __filename = fileURLToPath(import.meta.url)
|
|
6
7
|
const __dirname = path.dirname(__filename)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-app",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.7",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"@types/validator": "^13.15.3",
|
|
23
23
|
"fast-check": "~4.3.0",
|
|
24
24
|
"typescript": "~5.9.2",
|
|
25
|
-
"vitest": "^3.2.4"
|
|
25
|
+
"vitest": "^3.2.4",
|
|
26
|
+
"@effect-app/eslint-shared-config": "0.0.12"
|
|
26
27
|
},
|
|
27
28
|
"peerDependencies": {
|
|
28
29
|
"@effect/platform": "^0.90.7",
|
|
@@ -279,12 +280,6 @@
|
|
|
279
280
|
"./validation/validators": {
|
|
280
281
|
"types": "./dist/validation/validators.d.ts",
|
|
281
282
|
"default": "./dist/validation/validators.js"
|
|
282
|
-
},
|
|
283
|
-
"./eslint.base.config": {
|
|
284
|
-
"default": "./src/eslint.base.config.mjs"
|
|
285
|
-
},
|
|
286
|
-
"./eslint.vue.config": {
|
|
287
|
-
"default": "./src/eslint.vue.config.mjs"
|
|
288
283
|
}
|
|
289
284
|
},
|
|
290
285
|
"gitHead": "bd8e27eea3eff97db8739d577d67e7336c078d28",
|
|
@@ -13,7 +13,7 @@ import { HttpClient, HttpClientRequest } from "../http.js"
|
|
|
13
13
|
import * as Option from "../Option.js"
|
|
14
14
|
import * as S from "../Schema.js"
|
|
15
15
|
import { typedKeysOf, typedValuesOf } from "../utils.js"
|
|
16
|
-
import type { Client, ClientForOptions, Requests } from "./clientFor.js"
|
|
16
|
+
import type { Client, ClientForOptions, Requests, RequestsAny } from "./clientFor.js"
|
|
17
17
|
|
|
18
18
|
export interface ApiConfig {
|
|
19
19
|
url: string
|
|
@@ -80,7 +80,7 @@ export const RpcSerializationLayer = (config: ApiConfig) =>
|
|
|
80
80
|
HttpClientLayer(config)
|
|
81
81
|
)
|
|
82
82
|
|
|
83
|
-
type RpcHandlers<M extends
|
|
83
|
+
type RpcHandlers<M extends RequestsAny> = {
|
|
84
84
|
[K in keyof M]: Rpc.Rpc<M[K]["_tag"], M[K], M[K]["success"], M[K]["failure"]>
|
|
85
85
|
}
|
|
86
86
|
|
|
@@ -206,6 +206,8 @@ const makeApiClientFactory = Effect
|
|
|
206
206
|
moduleName: meta.moduleName
|
|
207
207
|
})
|
|
208
208
|
|
|
209
|
+
const layers = requestLevelLayers.pipe(Layer.provideMerge(requestNameLayer))
|
|
210
|
+
|
|
209
211
|
const fields = Struct.omit(Request.fields, "_tag")
|
|
210
212
|
const requestAttr = h._tag
|
|
211
213
|
// @ts-expect-error doc
|
|
@@ -215,9 +217,8 @@ const makeApiClientFactory = Effect
|
|
|
215
217
|
Effect.flatMap((client) =>
|
|
216
218
|
(client as any)[requestAttr]!(new Request()) as Effect.Effect<any, any, never>
|
|
217
219
|
),
|
|
218
|
-
Effect.provide(
|
|
219
|
-
Effect.provide(mr)
|
|
220
|
-
Effect.provide(requestNameLayer)
|
|
220
|
+
Effect.provide(layers),
|
|
221
|
+
Effect.provide(mr)
|
|
221
222
|
),
|
|
222
223
|
...requestMeta,
|
|
223
224
|
raw: {
|
|
@@ -226,9 +227,8 @@ const makeApiClientFactory = Effect
|
|
|
226
227
|
(client as any)[requestAttr]!(new Request()) as Effect.Effect<any, any, never>
|
|
227
228
|
),
|
|
228
229
|
Effect.flatMap((res) => S.encode(Response)(res)), // TODO,
|
|
229
|
-
Effect.provide(
|
|
230
|
-
Effect.provide(mr)
|
|
231
|
-
Effect.provide(requestNameLayer)
|
|
230
|
+
Effect.provide(layers),
|
|
231
|
+
Effect.provide(mr)
|
|
232
232
|
),
|
|
233
233
|
|
|
234
234
|
...requestMeta
|
|
@@ -240,9 +240,8 @@ const makeApiClientFactory = Effect
|
|
|
240
240
|
Effect.flatMap((client) =>
|
|
241
241
|
(client as any)[requestAttr]!(new Request(req)) as Effect.Effect<any, any, never>
|
|
242
242
|
),
|
|
243
|
-
Effect.provide(
|
|
244
|
-
Effect.provide(mr)
|
|
245
|
-
Effect.provide(requestNameLayer)
|
|
243
|
+
Effect.provide(layers),
|
|
244
|
+
Effect.provide(mr)
|
|
246
245
|
),
|
|
247
246
|
|
|
248
247
|
...requestMeta,
|
|
@@ -254,9 +253,8 @@ const makeApiClientFactory = Effect
|
|
|
254
253
|
(client as any)[requestAttr]!(new Request(req)) as Effect.Effect<any, any, never>
|
|
255
254
|
),
|
|
256
255
|
Effect.flatMap((res) => S.encode(Response)(res)), // TODO,
|
|
257
|
-
Effect.provide(
|
|
258
|
-
Effect.provide(mr)
|
|
259
|
-
Effect.provide(requestNameLayer)
|
|
256
|
+
Effect.provide(layers),
|
|
257
|
+
Effect.provide(mr)
|
|
260
258
|
),
|
|
261
259
|
|
|
262
260
|
...requestMeta
|
|
@@ -264,25 +262,25 @@ const makeApiClientFactory = Effect
|
|
|
264
262
|
}
|
|
265
263
|
|
|
266
264
|
return prev
|
|
267
|
-
}, {} as Client<M>))
|
|
265
|
+
}, {} as Client<M, M["meta"]["moduleName"]>))
|
|
268
266
|
}
|
|
269
267
|
})
|
|
270
268
|
|
|
271
269
|
const register: ManagedRuntime.ManagedRuntime<any, any>[] = []
|
|
272
270
|
yield* Effect.addFinalizer(() => Effect.forEach(register, (mr) => mr.disposeEffect))
|
|
273
271
|
|
|
274
|
-
const cacheL = new Map<any, Map<any, Client<any>>>()
|
|
272
|
+
const cacheL = new Map<any, Map<any, Client<any, any>>>()
|
|
275
273
|
|
|
276
274
|
function makeClientForCached(requestLevelLayers: Layer.Layer<never, never, never>, options?: ClientForOptions) {
|
|
277
275
|
let cache = cacheL.get(requestLevelLayers)
|
|
278
276
|
if (!cache) {
|
|
279
|
-
cache = new Map<any, Client<any>>()
|
|
277
|
+
cache = new Map<any, Client<any, any>>()
|
|
280
278
|
cacheL.set(requestLevelLayers, cache)
|
|
281
279
|
}
|
|
282
280
|
|
|
283
281
|
return <M extends Requests>(
|
|
284
282
|
models: M
|
|
285
|
-
): Effect.Effect<Client<Omit<M, "meta"
|
|
283
|
+
): Effect.Effect<Client<Omit<M, "meta">, M["meta"]["moduleName"]>> =>
|
|
286
284
|
Effect.gen(function*() {
|
|
287
285
|
const found = cache.get(models)
|
|
288
286
|
if (found) {
|
package/src/client/clientFor.ts
CHANGED
|
@@ -47,12 +47,14 @@ export function makePathWithBody(
|
|
|
47
47
|
return path.build(pars, { ignoreSearch: true, ignoreConstraints: true })
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
export type Requests =
|
|
50
|
+
export type Requests<ModuleName extends string = string> = { meta: { moduleName: ModuleName } } & RequestsAny
|
|
51
|
+
export type RequestsAny = Record<string, any>
|
|
51
52
|
|
|
52
|
-
export type Client<M extends
|
|
53
|
+
export type Client<M extends RequestsAny, ModuleName extends string> = RequestHandlers<
|
|
53
54
|
never,
|
|
54
55
|
never,
|
|
55
|
-
M
|
|
56
|
+
M,
|
|
57
|
+
ModuleName
|
|
56
58
|
>
|
|
57
59
|
|
|
58
60
|
export type ExtractResponse<T> = T extends S.Schema<any, any, any> ? S.Schema.Type<T>
|
|
@@ -80,33 +82,47 @@ export interface ClientForOptions {
|
|
|
80
82
|
readonly skipQueryKey?: readonly string[]
|
|
81
83
|
}
|
|
82
84
|
|
|
83
|
-
export interface RequestHandler<A, E, R, Request extends TaggedRequestClassAny> {
|
|
85
|
+
export interface RequestHandler<A, E, R, Request extends TaggedRequestClassAny, Name extends string> {
|
|
84
86
|
handler: Effect.Effect<A, E, R>
|
|
85
|
-
name:
|
|
87
|
+
name: Name
|
|
86
88
|
options?: ClientForOptions
|
|
87
89
|
Request: Request
|
|
88
90
|
}
|
|
89
91
|
|
|
90
|
-
export interface RequestHandlerWithInput<I, A, E, R, Request extends TaggedRequestClassAny> {
|
|
92
|
+
export interface RequestHandlerWithInput<I, A, E, R, Request extends TaggedRequestClassAny, Name extends string> {
|
|
91
93
|
handler: (i: I) => Effect.Effect<A, E, R>
|
|
92
|
-
name:
|
|
94
|
+
name: Name
|
|
93
95
|
options?: ClientForOptions
|
|
94
96
|
Request: Request
|
|
95
97
|
}
|
|
96
98
|
|
|
97
99
|
// make sure this is exported or d.ts of apiClientFactory breaks?!
|
|
98
|
-
export type RequestHandlers<R, E, M extends
|
|
99
|
-
[K in keyof M]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
export type RequestHandlers<R, E, M extends RequestsAny, ModuleName extends string> = {
|
|
101
|
+
[K in keyof M]: IsEmpty<Omit<S.Schema.Type<M[K]>, Cruft>> extends true ?
|
|
102
|
+
& RequestHandler<
|
|
103
|
+
S.Schema.Type<M[K]["success"]>,
|
|
104
|
+
S.Schema.Type<M[K]["failure"]> | E,
|
|
105
|
+
R,
|
|
106
|
+
M[K],
|
|
107
|
+
`${ModuleName}.${K & string}`
|
|
108
|
+
>
|
|
109
|
+
& {
|
|
110
|
+
raw: RequestHandler<
|
|
111
|
+
S.Schema.Type<M[K]["success"]>,
|
|
112
|
+
S.Schema.Type<M[K]["failure"]> | E,
|
|
113
|
+
R,
|
|
114
|
+
M[K],
|
|
115
|
+
`${ModuleName}.${K & string}`
|
|
116
|
+
>
|
|
117
|
+
}
|
|
103
118
|
:
|
|
104
119
|
& RequestHandlerWithInput<
|
|
105
120
|
Omit<S.Schema.Type<M[K]>, Cruft>,
|
|
106
121
|
S.Schema.Type<M[K]["success"]>,
|
|
107
122
|
S.Schema.Type<M[K]["failure"]> | E,
|
|
108
123
|
R,
|
|
109
|
-
M[K]
|
|
124
|
+
M[K],
|
|
125
|
+
`${ModuleName}.${K & string}`
|
|
110
126
|
>
|
|
111
127
|
& {
|
|
112
128
|
raw: RequestHandlerWithInput<
|
|
@@ -114,7 +130,8 @@ export type RequestHandlers<R, E, M extends Requests> = {
|
|
|
114
130
|
S.Schema.Encoded<M[K]["success"]>,
|
|
115
131
|
S.Schema.Type<M[K]["failure"]> | E,
|
|
116
132
|
R,
|
|
117
|
-
M[K]
|
|
133
|
+
M[K],
|
|
134
|
+
`${ModuleName}.${K & string}`
|
|
118
135
|
>
|
|
119
136
|
}
|
|
120
137
|
}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
|
-
// @ts-nocheck
|
|
3
|
-
import { FlatCompat } from "@eslint/eslintrc"
|
|
4
|
-
import js from "@eslint/js"
|
|
5
|
-
import path from "node:path"
|
|
6
|
-
import { fileURLToPath } from "node:url"
|
|
7
|
-
|
|
8
|
-
import tsParser from "@typescript-eslint/parser"
|
|
9
|
-
|
|
10
|
-
import codegen from "eslint-plugin-codegen"
|
|
11
|
-
import _import from "eslint-plugin-import"
|
|
12
|
-
import sortDestructureKeys from "eslint-plugin-sort-destructure-keys"
|
|
13
|
-
import unusedImports from "eslint-plugin-unused-imports"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
import eslint from '@eslint/js';
|
|
17
|
-
import tseslint from 'typescript-eslint';
|
|
18
|
-
import dprint from "@ben_12/eslint-plugin-dprint";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const __filename = fileURLToPath(import.meta.url)
|
|
22
|
-
const __dirname = path.dirname(__filename)
|
|
23
|
-
|
|
24
|
-
const compat = new FlatCompat({
|
|
25
|
-
baseDirectory: __dirname,
|
|
26
|
-
recommendedConfig: js.configs.recommended,
|
|
27
|
-
allConfig: js.configs.all
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @param {string} dirName
|
|
32
|
-
* @param {boolean} [forceTS=false]
|
|
33
|
-
* @returns {import("eslint").Linter.FlatConfig[]}
|
|
34
|
-
*/
|
|
35
|
-
export function baseConfig(dirName, forceTS = false, project = undefined) {
|
|
36
|
-
// eslint-disable-next-line no-undef
|
|
37
|
-
const enableTS = !!dirName && (forceTS || process.env["ESLINT_TS"])
|
|
38
|
-
return [
|
|
39
|
-
{
|
|
40
|
-
ignores: [
|
|
41
|
-
"**/*.js",
|
|
42
|
-
// "**/*.mjs",
|
|
43
|
-
// "**/*.cjs",
|
|
44
|
-
"**/*.jsx",
|
|
45
|
-
"**/*.d.ts",
|
|
46
|
-
"**/node_modules/**",
|
|
47
|
-
"vitest.config.ts",
|
|
48
|
-
"vitest.config.test.ts",
|
|
49
|
-
"vite.config.ts",
|
|
50
|
-
"eslint.*.mjs",
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
js.configs.recommended,
|
|
54
|
-
...tseslint.config(
|
|
55
|
-
eslint.configs.recommended,
|
|
56
|
-
tseslint.configs.recommended,
|
|
57
|
-
),
|
|
58
|
-
...(enableTS ? tseslint.configs.recommendedTypeChecked : []),
|
|
59
|
-
{
|
|
60
|
-
// otherwise this config object doesn't apply inside vue files
|
|
61
|
-
// I mean the rules are not applied, the plugins are not loaded
|
|
62
|
-
// files: ["**/*.ts", "**/*.tsx"],
|
|
63
|
-
name: "base",
|
|
64
|
-
languageOptions: {
|
|
65
|
-
parser: tsParser,
|
|
66
|
-
parserOptions: {
|
|
67
|
-
extraFileExtensions: [".vue"], // should be the same as vue config for perfomance reasons (https://typescript-eslint.io/troubleshooting/typed-linting/performance#project-service-issues)
|
|
68
|
-
...(enableTS
|
|
69
|
-
&& {
|
|
70
|
-
tsconfigRootDir: dirName,
|
|
71
|
-
projectService: true
|
|
72
|
-
})
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
settings: {
|
|
76
|
-
"import/parsers": {
|
|
77
|
-
"@typescript-eslint/parser": [".ts", ".tsx"]
|
|
78
|
-
},
|
|
79
|
-
"import/resolver": {
|
|
80
|
-
typescript: {
|
|
81
|
-
alwaysTryTypes: true
|
|
82
|
-
} // this loads <rootdir>/tsconfig.json to eslint
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
linterOptions: {
|
|
86
|
-
reportUnusedDisableDirectives: "off"
|
|
87
|
-
},
|
|
88
|
-
plugins: {
|
|
89
|
-
import: _import,
|
|
90
|
-
"sort-destructure-keys": sortDestructureKeys,
|
|
91
|
-
"unused-imports": unusedImports,
|
|
92
|
-
codegen
|
|
93
|
-
},
|
|
94
|
-
rules: {
|
|
95
|
-
"no-unexpected-multiline": "off",
|
|
96
|
-
"no-restricted-imports": ["error", {
|
|
97
|
-
"paths": [
|
|
98
|
-
{
|
|
99
|
-
name: ".",
|
|
100
|
-
"message":
|
|
101
|
-
"Please import from the specific file instead. Imports from index in the same directory are almost always wrong (circular)."
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
name: "./",
|
|
105
|
-
"message":
|
|
106
|
-
"Please import from the specific file instead. Imports from index in the same directory are almost always wrong (circular)."
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: "./index",
|
|
110
|
-
"message":
|
|
111
|
-
"Please import from the specific file instead. Imports from index in the same directory are almost always wrong (circular)."
|
|
112
|
-
}
|
|
113
|
-
]
|
|
114
|
-
}],
|
|
115
|
-
"@typescript-eslint/no-namespace": "off", // We like namespaces, where ES modules cannot compete (augmenting existing types)
|
|
116
|
-
"no-unused-vars": "off",
|
|
117
|
-
"@typescript-eslint/no-unused-vars": "off",
|
|
118
|
-
"unused-imports/no-unused-imports": "error",
|
|
119
|
-
"unused-imports/no-unused-vars": [
|
|
120
|
-
"warn",
|
|
121
|
-
{
|
|
122
|
-
"vars": "all",
|
|
123
|
-
"varsIgnorePattern": "^_",
|
|
124
|
-
"args": "after-used",
|
|
125
|
-
"argsIgnorePattern": "^_",
|
|
126
|
-
"ignoreRestSiblings": true
|
|
127
|
-
}
|
|
128
|
-
],
|
|
129
|
-
"@typescript-eslint/no-use-before-define": ["warn", { functions: false, classes: true, variables: true }], // functions may depend on classes or variables defined later
|
|
130
|
-
"@typescript-eslint/explicit-function-return-type": "off",
|
|
131
|
-
"@typescript-eslint/interface-name-prefix": "off",
|
|
132
|
-
"@typescript-eslint/no-empty-object-type": "off",
|
|
133
|
-
"sort-destructure-keys/sort-destructure-keys": "error", // Mainly to sort render props
|
|
134
|
-
"require-yield": "off", // we want to be able to use e.g Effect.gen without having to worry about lint.
|
|
135
|
-
"sort-imports": "off",
|
|
136
|
-
"import/first": "error",
|
|
137
|
-
"import/newline-after-import": "error",
|
|
138
|
-
"import/no-duplicates": ["error", {"prefer-inline": true}],
|
|
139
|
-
"import/no-unresolved": "off", // eslint don't understand some imports very well
|
|
140
|
-
"import/order": "off",
|
|
141
|
-
"@typescript-eslint/consistent-type-imports": ["error", { fixStyle: 'inline-type-imports' }],
|
|
142
|
-
|
|
143
|
-
"object-shorthand": "error",
|
|
144
|
-
...(enableTS
|
|
145
|
-
&& {
|
|
146
|
-
"@typescript-eslint/restrict-template-expressions": "warn",
|
|
147
|
-
"@typescript-eslint/restrict-plus-operands": "off",
|
|
148
|
-
"@typescript-eslint/no-unsafe-assignment": "warn",
|
|
149
|
-
"@typescript-eslint/no-unsafe-call": "warn",
|
|
150
|
-
"@typescript-eslint/no-unsafe-return": "warn",
|
|
151
|
-
"@typescript-eslint/no-unsafe-argument": "warn",
|
|
152
|
-
"@typescript-eslint/no-unsafe-member-access": "warn",
|
|
153
|
-
"@typescript-eslint/no-misused-promises": "warn",
|
|
154
|
-
"@typescript-eslint/unbound-method": "warn",
|
|
155
|
-
"@typescript-eslint/only-throw-error": "off",
|
|
156
|
-
"@typescript-eslint/no-base-to-string": "warn",
|
|
157
|
-
"@typescript-eslint/no-floating-promises": "warn",
|
|
158
|
-
})
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
]
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* @param {string} dirName
|
|
166
|
-
* @param {boolean} [forceTS=false]
|
|
167
|
-
* @returns {import("eslint").Linter.FlatConfig[]}
|
|
168
|
-
*/
|
|
169
|
-
export function augmentedConfig(dirName, forceTS = false, project = undefined) {
|
|
170
|
-
return [
|
|
171
|
-
...baseConfig(dirName, forceTS, project),
|
|
172
|
-
{
|
|
173
|
-
name: "augmented",
|
|
174
|
-
plugins: {
|
|
175
|
-
"@ben_12/dprint": dprint
|
|
176
|
-
},
|
|
177
|
-
rules: {
|
|
178
|
-
...dprint.configs["typescript-recommended"].rules,
|
|
179
|
-
"@ben_12/dprint/typescript": [
|
|
180
|
-
"error",
|
|
181
|
-
{
|
|
182
|
-
// Use dprint JSON configuration file (default: "dprint.json")
|
|
183
|
-
// It may be created using `dprint init` command
|
|
184
|
-
// See also https://dprint.dev/config/
|
|
185
|
-
//configFile: "dprint.json",
|
|
186
|
-
// The TypeScript configuration of dprint
|
|
187
|
-
// See also https://dprint.dev/plugins/typescript/config/
|
|
188
|
-
config: {
|
|
189
|
-
// The TypeScript configuration of dprint
|
|
190
|
-
// See also https://dprint.dev/plugins/typescript/config/,
|
|
191
|
-
"indentWidth": 2,
|
|
192
|
-
"semiColons": "asi",
|
|
193
|
-
"quoteStyle": "alwaysDouble",
|
|
194
|
-
"trailingCommas": "never",
|
|
195
|
-
"arrowFunction.useParentheses": "force",
|
|
196
|
-
"memberExpression.linePerExpression": true,
|
|
197
|
-
"binaryExpression.linePerExpression": true,
|
|
198
|
-
"importDeclaration.forceSingleLine": true,
|
|
199
|
-
"exportDeclaration.forceSingleLine": true
|
|
200
|
-
}
|
|
201
|
-
},
|
|
202
|
-
],
|
|
203
|
-
"codegen/codegen": [
|
|
204
|
-
"error",
|
|
205
|
-
{
|
|
206
|
-
presets: "@effect-app/eslint-codegen-model/dist/presets/index.js"
|
|
207
|
-
}
|
|
208
|
-
]
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
]
|
|
212
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import formatjs from "eslint-plugin-formatjs"
|
|
2
|
-
import pluginVue from "eslint-plugin-vue"
|
|
3
|
-
import { defineConfigWithVueTs, vueTsConfigs } from "@vue/eslint-config-typescript"
|
|
4
|
-
|
|
5
|
-
import tseslint from "typescript-eslint"
|
|
6
|
-
|
|
7
|
-
import { baseConfig } from "./eslint.base.config.mjs"
|
|
8
|
-
|
|
9
|
-
import dprint from "@ben_12/eslint-plugin-dprint"
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @param {string} dirName
|
|
13
|
-
* @param {boolean} [forceTS=false]
|
|
14
|
-
* @returns {import("eslint").Linter.FlatConfig[]}
|
|
15
|
-
*/
|
|
16
|
-
export function vueConfig(dirName, forceTS = false, dprintConfigFile = "dprint.json") {
|
|
17
|
-
const enableTS = !!dirName && (forceTS || process.env["ESLINT_TS"])
|
|
18
|
-
|
|
19
|
-
return [
|
|
20
|
-
...baseConfig(dirName, forceTS),
|
|
21
|
-
|
|
22
|
-
// ...ts.configs.recommended,
|
|
23
|
-
// this should set the vue parser as the parser plus some recommended rules
|
|
24
|
-
...pluginVue.configs["flat/recommended"],
|
|
25
|
-
...defineConfigWithVueTs(vueTsConfigs.base),
|
|
26
|
-
{
|
|
27
|
-
name: "vue",
|
|
28
|
-
files: ["*.vue", "**/*.vue"],
|
|
29
|
-
languageOptions: {
|
|
30
|
-
parserOptions: {
|
|
31
|
-
// set a custom parser to parse <script> tags
|
|
32
|
-
parser: {
|
|
33
|
-
"<template>": tseslint.parser,
|
|
34
|
-
"ts": tseslint.parser,
|
|
35
|
-
"js": tseslint.parser,
|
|
36
|
-
},
|
|
37
|
-
...(enableTS && {
|
|
38
|
-
projectService: true,
|
|
39
|
-
tsconfigRootDir: dirName,
|
|
40
|
-
}),
|
|
41
|
-
extraFileExtensions: [".vue"]
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
rules: {
|
|
45
|
-
"no-undef": "off",
|
|
46
|
-
"vue/multi-word-component-names": "warn",
|
|
47
|
-
"vue/no-template-shadow": "warn",
|
|
48
|
-
"vue/valid-v-slot": [
|
|
49
|
-
"error",
|
|
50
|
-
{
|
|
51
|
-
allowModifiers: true,
|
|
52
|
-
},
|
|
53
|
-
]
|
|
54
|
-
},
|
|
55
|
-
plugins: {
|
|
56
|
-
formatjs, // this is for ICU messages, so I'd say we need it here
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
name: "augmented",
|
|
62
|
-
plugins: {
|
|
63
|
-
"@ben_12/dprint": dprint,
|
|
64
|
-
},
|
|
65
|
-
rules: {
|
|
66
|
-
...dprint.configs["disable-typescript-conflict-rules"].rules,
|
|
67
|
-
"vue/html-indent": "off",
|
|
68
|
-
...dprint.configs["typescript-recommended"].rules,
|
|
69
|
-
...dprint.configs["malva-recommended"].rules,
|
|
70
|
-
...dprint.configs["markup-recommended"].rules,
|
|
71
|
-
"@ben_12/dprint/markup": [
|
|
72
|
-
"error",
|
|
73
|
-
{
|
|
74
|
-
// Use dprint JSON configuration file (default: "dprint.json")
|
|
75
|
-
// It may be created using `dprint init` command
|
|
76
|
-
// See also https://dprint.dev/config/
|
|
77
|
-
configFile: dprintConfigFile,
|
|
78
|
-
config: {
|
|
79
|
-
// The markup_fmt configuration of dprint
|
|
80
|
-
// See also https://dprint.dev/plugins/markup_fmt/config/
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
],
|
|
84
|
-
"@ben_12/dprint/typescript": [
|
|
85
|
-
"error",
|
|
86
|
-
{
|
|
87
|
-
// Use dprint JSON configuration file (default: "dprint.json")
|
|
88
|
-
// It may be created using `dprint init` command
|
|
89
|
-
// See also https://dprint.dev/config/
|
|
90
|
-
configFile: "dprint.json",
|
|
91
|
-
// The TypeScript configuration of dprint
|
|
92
|
-
// See also https://dprint.dev/plugins/typescript/config/
|
|
93
|
-
config: {
|
|
94
|
-
// The TypeScript configuration of dprint
|
|
95
|
-
// See also https://dprint.dev/plugins/typescript/config/,
|
|
96
|
-
indentWidth: 2,
|
|
97
|
-
semiColons: "asi",
|
|
98
|
-
quoteStyle: "alwaysDouble",
|
|
99
|
-
trailingCommas: "never",
|
|
100
|
-
"arrowFunction.useParentheses": "force",
|
|
101
|
-
"memberExpression.linePerExpression": true,
|
|
102
|
-
"binaryExpression.linePerExpression": true,
|
|
103
|
-
"importDeclaration.forceSingleLine": true,
|
|
104
|
-
"exportDeclaration.forceSingleLine": true,
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
],
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
|
-
]
|
|
111
|
-
}
|