dixous 0.1.0 → 0.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,3 @@
1
- import type { StandardSchemaV1 } from "@standard-schema/spec";
2
- import type { FetchResponse } from "./types.ts";
3
- export type InferOutput<Schema extends StandardSchemaV1> = StandardSchemaV1.InferOutput<Schema>;
4
- export declare class SchemaValidationError extends Error {
5
- readonly issues: readonly StandardSchemaV1.Issue[];
6
- constructor(issues: readonly StandardSchemaV1.Issue[]);
7
- }
8
- export declare const defaultResponseMethods: {
9
- json: (fetchResponse: FetchResponse) => <Schema extends StandardSchemaV1>(schema: Schema) => Promise<InferOutput<Schema>>;
10
- text: (fetchResponse: FetchResponse) => () => Promise<string>;
11
- blob: (fetchResponse: FetchResponse) => () => Promise<Blob>;
12
- arrayBuffer: (fetchResponse: FetchResponse) => () => Promise<ArrayBuffer>;
13
- response: (fetchResponse: FetchResponse) => () => Promise<Response>;
14
- };
15
- export type DefaultResponseMethods = typeof defaultResponseMethods;
1
+ import type { DefaultOperationApi, OperationContext } from "./types.ts";
2
+ export declare function defaultOperationApi(operation: OperationContext): DefaultOperationApi;
16
3
  //# sourceMappingURL=response-methods.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-methods.d.ts","sourceRoot":"","sources":["../src/response-methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,gBAAgB,IACrD,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAEvC,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAEnD,YAAY,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,EAIpD;CACF;AAGD,eAAO,MAAM,sBAAsB;0BACX,aAAa,MAC1B,MAAM,SAAS,gBAAgB,UAAU,MAAM,KAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;0BAMjE,aAAa,WAAe,OAAO,CAAC,MAAM,CAAC;0BAE3C,aAAa,WAAe,OAAO,CAAC,IAAI,CAAC;iCAElC,aAAa,WAAe,OAAO,CAAC,WAAW,CAAC;8BAEnD,aAAa,WAAS,OAAO,CAAC,QAAQ,CAAC;CAExC,CAAC;AAE5B,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAC"}
1
+ {"version":3,"file":"response-methods.d.ts","sourceRoot":"","sources":["../src/response-methods.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAe,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AAErG,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,GAAG,mBAAmB,CAoBpF"}
@@ -1,23 +1,24 @@
1
- export class SchemaValidationError extends Error {
2
- issues;
3
- constructor(issues) {
4
- super("Response failed schema validation");
5
- this.name = "SchemaValidationError";
6
- this.issues = issues;
7
- }
1
+ import { ResponseValidationError, UnexpectedResponseError } from "./errors.js";
2
+ export function defaultOperationApi(operation) {
3
+ return {
4
+ async json(schema) {
5
+ const response = await operation.response();
6
+ const result = await schema["~standard"].validate(await response.json());
7
+ if (result.issues !== undefined) {
8
+ throw new ResponseValidationError(operation.request, response, result.issues);
9
+ }
10
+ return result.value;
11
+ },
12
+ async text() { return (await operation.response()).text(); },
13
+ async blob() { return (await operation.response()).blob(); },
14
+ async arrayBuffer() { return (await operation.response()).arrayBuffer(); },
15
+ async match(handlers) {
16
+ const response = await operation.execute();
17
+ const handler = handlers[response.status];
18
+ if (handler === undefined)
19
+ throw new UnexpectedResponseError(operation.request, response);
20
+ return (await handler(operation.api(response)));
21
+ },
22
+ };
8
23
  }
9
- // Built-ins use the same per-operation factories as extension methods.
10
- export const defaultResponseMethods = {
11
- json: (fetchResponse) => async (schema) => {
12
- const response = await fetchResponse();
13
- const result = await schema["~standard"].validate(await response.json());
14
- if (result.issues)
15
- throw new SchemaValidationError(result.issues);
16
- return result.value;
17
- },
18
- text: (fetchResponse) => async () => (await fetchResponse()).text(),
19
- blob: (fetchResponse) => async () => (await fetchResponse()).blob(),
20
- arrayBuffer: (fetchResponse) => async () => (await fetchResponse()).arrayBuffer(),
21
- response: (fetchResponse) => () => fetchResponse(),
22
- };
23
24
  //# sourceMappingURL=response-methods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-methods.js","sourceRoot":"","sources":["../src/response-methods.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,MAAM,CAAoC;IAEnD,YAAY,MAAyC;QACnD,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,CAAC,aAA4B,EAAE,EAAE,CACrC,KAAK,EAAmC,MAAc,EAAgC,EAAE;QACtF,MAAM,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,KAA4B,CAAC;IAC7C,CAAC;IACH,IAAI,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,KAAK,IAAqB,EAAE,CAClE,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE;IAChC,IAAI,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,KAAK,IAAmB,EAAE,CAChE,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE;IAChC,WAAW,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,KAAK,IAA0B,EAAE,CAC9E,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,WAAW,EAAE;IACvC,QAAQ,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC,GAAsB,EAAE,CAClE,aAAa,EAAE;CACQ,CAAC"}
1
+ {"version":3,"file":"response-methods.js","sourceRoot":"","sources":["../src/response-methods.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAI/E,MAAM,UAAU,mBAAmB,CAAC,SAA2B;IAC7D,OAAO;QACL,KAAK,CAAC,IAAI,CAAkC,MAAc;YACxD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACzE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,IAAI,uBAAuB,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,MAAM,CAAC,KAA4B,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1E,KAAK,CAAC,KAAK,CAAsC,QAAkB;YACjE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,uBAAuB,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1F,OAAO,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAA0B,CAAC;QAC3E,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Standard Schema v1 types, vendored from @standard-schema/spec 1.1.0.
3
+ * https://standardschema.dev/schema
4
+ *
5
+ * MIT License
6
+ *
7
+ * Copyright (c) 2024 Colin McDonnell
8
+ *
9
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ * of this software and associated documentation files (the "Software"), to deal
11
+ * in the Software without restriction, including without limitation the rights
12
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ * copies of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be included in all
17
+ * copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+ * SOFTWARE.
26
+ */
27
+ export interface StandardSchemaV1<Input = unknown, Output = Input> {
28
+ readonly "~standard": {
29
+ readonly version: 1;
30
+ readonly vendor: string;
31
+ readonly validate: (value: unknown) => StandardSchemaResult<Output> | Promise<StandardSchemaResult<Output>>;
32
+ readonly types?: {
33
+ readonly input: Input;
34
+ readonly output: Output;
35
+ };
36
+ };
37
+ }
38
+ export type StandardSchemaResult<Output> = {
39
+ readonly value: Output;
40
+ readonly issues?: undefined;
41
+ } | {
42
+ readonly issues: readonly StandardSchemaIssue[];
43
+ };
44
+ export interface StandardSchemaIssue {
45
+ readonly message: string;
46
+ readonly path?: readonly (PropertyKey | {
47
+ readonly key: PropertyKey;
48
+ })[];
49
+ }
50
+ export type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema["~standard"]["types"]>["output"];
51
+ //# sourceMappingURL=standard-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../src/standard-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAChC,oBAAoB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,QAAQ,CAAC,KAAK,CAAC,EAAE;YACf,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;YACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,CAAC,MAAM,IACnC;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG;QAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC,EAAE,CAAC;CAC1E;AAED,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,gBAAgB,IACrD,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Standard Schema v1 types, vendored from @standard-schema/spec 1.1.0.
3
+ * https://standardschema.dev/schema
4
+ *
5
+ * MIT License
6
+ *
7
+ * Copyright (c) 2024 Colin McDonnell
8
+ *
9
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
10
+ * of this software and associated documentation files (the "Software"), to deal
11
+ * in the Software without restriction, including without limitation the rights
12
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ * copies of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be included in all
17
+ * copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+ * SOFTWARE.
26
+ */
27
+ export {};
28
+ //# sourceMappingURL=standard-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.js","sourceRoot":"","sources":["../src/standard-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
package/dist/types.d.ts CHANGED
@@ -1,66 +1,100 @@
1
- declare const contextKeyType: unique symbol;
2
- export type ContextKey<T> = symbol & {
3
- readonly [contextKeyType]: (value: T) => T;
4
- };
5
- export interface Context {
6
- get<T>(key: ContextKey<T>): T | undefined;
7
- set<T>(key: ContextKey<T>, value: T): void;
8
- }
9
- export type RequestOptions<Extra extends object = {}> = RequestInit & Extra;
10
- export interface BaseClientOptions {
11
- baseUrl?: string | URL;
12
- headers?: HeadersInit;
13
- }
14
- export type ClientOptions<Extra extends object = {}> = BaseClientOptions & Extra;
15
- export interface RequestContext<RequestExtra extends object = {}, ClientExtra extends object = {}> {
1
+ import type { InferOutput, StandardSchemaV1 } from "./standard-schema.ts";
2
+ export type RequestInput = string | URL | Request;
3
+ export type RequestOptions<Options extends object = {}> = RequestInit & Options;
4
+ export interface RequestContext<Options extends object = {}> {
5
+ /** Exact original input, even when middleware replaces request. */
6
+ readonly input: RequestInput;
7
+ /** Request used by the next execution step; middleware may replace it. */
16
8
  request: Request;
17
- readonly options: Readonly<RequestOptions<RequestExtra>>;
18
- readonly client: Readonly<ClientOptions<ClientExtra>>;
19
- readonly state: Context;
9
+ /** Shallow readonly snapshot of effective client and request options. */
10
+ readonly options: Readonly<RequestOptions<Options>>;
20
11
  }
12
+ /**
13
+ * Reruns the remaining chain. Sequential calls are allowed; concurrent calls
14
+ * reject. Dixous does not clone or buffer bodies: callers must ensure replayability.
15
+ */
21
16
  export type Next = () => Promise<Response>;
22
- export type Middleware<RequestExtra extends object = {}, ClientExtra extends object = {}> = (context: RequestContext<RequestExtra, ClientExtra>, next: Next) => Promise<Response>;
23
- export type FetchResponse = () => Promise<Response>;
24
- export type ResponseMethod = (fetchResponse: FetchResponse) => (...args: never[]) => Promise<unknown>;
25
- export type ResponseMethods = Record<string, ResponseMethod>;
26
- type InstantiateMethods<Methods extends ResponseMethods> = {
27
- readonly [K in keyof Methods]: ReturnType<Methods[K]>;
17
+ export type RequestMiddleware<Options extends object = {}> = (context: RequestContext<Options>, next: Next) => Promise<Response>;
18
+ export interface OperationContext<Options extends object = {}> extends RequestContext<Options> {
19
+ /** Operation methods observe the request; only middleware replaces it. */
20
+ readonly request: Request;
21
+ /** The response this operation reads: rejects non-ok unless built by api(). The body is one-shot. */
22
+ response(): Promise<Response>;
23
+ /** Memoized raw execution without a status policy. */
24
+ execute(): Promise<Response>;
25
+ /** Rebuilds every contribution over a specific response. Contributions are pure factories. */
26
+ api(response: Response): MatchedOperation<{}>;
27
+ }
28
+ /** Default body readers require response.ok; schema/platform errors are preserved. */
29
+ export interface DefaultOperationApi {
30
+ json<Schema extends StandardSchemaV1>(schema: Schema): Promise<InferOutput<Schema>>;
31
+ text(): Promise<string>;
32
+ blob(): Promise<Blob>;
33
+ arrayBuffer(): Promise<ArrayBuffer>;
34
+ /** Branches on the exact status; unmatched statuses reject with UnexpectedResponseError. */
35
+ match: Match<{}>;
36
+ }
37
+ export type ReservedOperationKey = "response" | "then";
38
+ export type StatusHandlers<OperationApi extends object> = {
39
+ readonly [status: number]: (operation: MatchedOperation<OperationApi>) => unknown;
28
40
  };
41
+ export type MatchResult<Handlers extends StatusHandlers<any>> = Awaited<ReturnType<Handlers[keyof Handlers & number]>>;
42
+ export type Match<OperationApi extends object> = <Handlers extends StatusHandlers<OperationApi>>(handlers: Handlers) => Promise<MatchResult<Handlers>>;
43
+ interface CoreOperation {
44
+ /** Returns the native response without applying a status policy. */
45
+ readonly response: () => Promise<Response>;
46
+ readonly then?: never;
47
+ }
48
+ export type MatchedOperation<OperationApi extends object = DefaultOperationApi> = Omit<OperationApi, "match"> & CoreOperation;
49
+ export type RequestOperation<OperationApi extends object = DefaultOperationApi> = {
50
+ [Key in keyof OperationApi]: Key extends "match" ? OperationApi[Key] extends Match<{}> ? Match<OperationApi> : OperationApi[Key] : OperationApi[Key];
51
+ } & CoreOperation;
29
52
  declare const extensionType: unique symbol;
30
- export interface ExtensionMeta {
31
- readonly [extensionType]: {
32
- request: object;
33
- client: object;
34
- methods: ResponseMethods;
35
- };
53
+ export interface ExtensionDefinition<Options extends object, OperationApi extends object> {
54
+ /** Runs in extension order with onion semantics. */
55
+ readonly request?: RequestMiddleware<Options>;
56
+ /**
57
+ * Pure API factory: may run more than once for one logical request, once per
58
+ * api() call. Later contributions replace earlier methods.
59
+ */
60
+ readonly operation?: (operation: OperationContext<Options>) => OperationApiContribution<OperationApi>;
36
61
  }
37
- export interface Extension<RequestExtra extends object = {}, ClientExtra extends object = {}, Methods extends ResponseMethods = {}> {
38
- readonly [extensionType]: {
39
- request: RequestExtra;
40
- client: ClientExtra;
41
- methods: Methods;
62
+ export type Extension<Options extends object = {}, OperationApi extends object = {}> = ExtensionDefinition<Options, OperationApi> & {
63
+ readonly [extensionType]?: {
64
+ readonly options: Options;
65
+ readonly operationApi: OperationApi;
42
66
  };
43
- request?: Middleware<RequestExtra, ClientExtra>;
44
- methods?: Methods;
45
- }
46
- export type ExtensionDefinition<RequestExtra extends object, ClientExtra extends object, Methods extends ResponseMethods> = Pick<Extension<RequestExtra, ClientExtra, Methods>, "request"> & {
47
- methods?: Methods & Record<string, (fetchResponse: FetchResponse) => unknown>;
48
- };
49
- export type NoRequestInitOverrides = {
50
- [K in keyof RequestInit]?: never;
51
67
  };
52
- export type NoClientOptionOverrides = {
53
- [K in keyof BaseClientOptions]?: never;
54
- };
55
- type UnionToIntersection<T> = [T] extends [never] ? {} : (T extends unknown ? (value: T) => void : never) extends (value: infer Result) => void ? Result : never;
56
- export type ExtensionRequestOptions<Extensions extends readonly ExtensionMeta[]> = UnionToIntersection<Extensions[number][typeof extensionType]["request"]> extends infer Result extends object ? Result : never;
57
- export type ExtensionClientOptions<Extensions extends readonly ExtensionMeta[]> = UnionToIntersection<Extensions[number][typeof extensionType]["client"]> extends infer Result extends object ? Result : never;
58
- export type ExtensionMethods<Extensions extends readonly ExtensionMeta[]> = UnionToIntersection<Extensions[number][typeof extensionType]["methods"]> extends infer Result extends ResponseMethods ? Result : never;
59
- export interface Fetcher<RequestExtra extends object, Methods extends ResponseMethods> {
60
- fetch(input: string | URL | Request, options?: RequestOptions<RequestExtra>): InstantiateMethods<Methods>;
68
+ export interface CoreOptions {
69
+ /** Resolves string and URL inputs using native WHATWG URL semantics. */
70
+ readonly baseUrl?: string | URL;
71
+ /** Defaults merged by header name in derived clients and requests. */
72
+ readonly headers?: HeadersInit;
73
+ /** Defaults to globalThis.fetch. */
74
+ readonly fetch?: typeof globalThis.fetch;
61
75
  }
62
- export interface Dixous<RequestExtra extends object, ClientExtra extends object, Methods extends ResponseMethods> extends Fetcher<RequestExtra, Methods> {
63
- (options?: ClientOptions<ClientExtra>): Fetcher<RequestExtra, Methods>;
76
+ export type CreateOptions<CurrentOptions extends object, Extensions extends readonly AnyExtension[]> = {
77
+ readonly extensions?: Extensions & NoInfer<{
78
+ [Index in keyof Extensions]: [
79
+ OperationApiContribution<ReturnType<NonNullable<Extensions[Index]["operation"]>>>
80
+ ] extends [never] ? never : Extensions[Index];
81
+ }>;
82
+ } & CoreOptions & {
83
+ [Key in keyof ApplyExtensionOptions<CurrentOptions, Extensions>]: ApplyExtensionOptions<CurrentOptions, Extensions>[Key];
84
+ };
85
+ export interface Dixous<Options extends object = {}, OperationApi extends object = DefaultOperationApi> {
86
+ /** Constructs a Request immediately; execution waits until response() is called. */
87
+ request(input: RequestInput, options?: RequestOptions<Options>): RequestOperation<OperationApi>;
88
+ /** Inherits configuration, merges headers, appends extensions; never mutates the parent. */
89
+ create<const Extensions extends readonly AnyExtension[] = []>(options?: CreateOptions<Options, Extensions>): Dixous<ApplyExtensionOptions<Options, Extensions>, ApplyExtensionApi<OperationApi, Extensions>>;
90
+ readonly then?: never;
64
91
  }
92
+ export type AnyExtension = Extension<any, any>;
93
+ type OperationApiContribution<Api extends object> = unknown extends Api ? Api : [Extract<keyof Api, ReservedOperationKey>] extends [never] ? Api : never;
94
+ type ExtensionOptions<E extends AnyExtension> = E extends Extension<infer Options, any> ? Options : {};
95
+ type ExtensionOperationApi<E extends AnyExtension> = E extends Extension<any, infer Api> ? Api : {};
96
+ type Merge<Left extends object, Right extends object> = Omit<Left, keyof Right> & Right;
97
+ export type ApplyExtensionOptions<Current extends object, Extensions extends readonly AnyExtension[]> = Extensions extends readonly [infer Head extends AnyExtension, ...infer Tail extends readonly AnyExtension[]] ? ApplyExtensionOptions<Merge<Current, ExtensionOptions<Head>>, Tail> : Current;
98
+ export type ApplyExtensionApi<Current extends object, Extensions extends readonly AnyExtension[]> = Extensions extends readonly [infer Head extends AnyExtension, ...infer Tail extends readonly AnyExtension[]] ? ApplyExtensionApi<Merge<Current, ExtensionOperationApi<Head>>, Tail> : Current;
65
99
  export {};
66
100
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dixous",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "A minimal, extension-driven query client built on native Fetch.",
5
5
  "type": "module",
6
6
  "files": [
@@ -17,7 +17,7 @@
17
17
  }
18
18
  },
19
19
  "scripts": {
20
- "build": "tsc -p tsconfig.json",
20
+ "build": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.json",
21
21
  "typecheck": "tsc -p tsconfig.test.json",
22
22
  "test": "npm run build && npm run typecheck && node --test test/*.test.mjs",
23
23
  "prepack": "npm run build",
@@ -27,9 +27,6 @@
27
27
  "devDependencies": {
28
28
  "typescript": "^7.0.2"
29
29
  },
30
- "dependencies": {
31
- "@standard-schema/spec": "^1.1.0"
32
- },
33
30
  "license": "MIT",
34
31
  "repository": {
35
32
  "type": "git",
package/src/errors.ts ADDED
@@ -0,0 +1,26 @@
1
+ import type { StandardSchemaIssue } from "./standard-schema.ts";
2
+
3
+ export class UnexpectedResponseError extends Error {
4
+ constructor(readonly request: Request, readonly response: Response) {
5
+ super(`HTTP ${response.status}${response.statusText ? ` ${response.statusText}` : ""}`);
6
+ this.name = "UnexpectedResponseError";
7
+ }
8
+ }
9
+
10
+ export class ResponseValidationError extends Error {
11
+ constructor(
12
+ readonly request: Request,
13
+ readonly response: Response,
14
+ readonly issues: readonly StandardSchemaIssue[],
15
+ ) {
16
+ super("Response failed schema validation");
17
+ this.name = "ResponseValidationError";
18
+ }
19
+ }
20
+
21
+ export class ConcurrentNextError extends Error {
22
+ constructor() {
23
+ super("Concurrent calls to the same next() are not allowed");
24
+ this.name = "ConcurrentNextError";
25
+ }
26
+ }