@forklaunch/core 0.13.7 → 0.13.8
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/lib/http/index.d.mts +76 -10
- package/lib/http/index.d.ts +76 -10
- package/package.json +3 -3
package/lib/http/index.d.mts
CHANGED
@@ -1364,11 +1364,11 @@ type RouterMap<SV extends AnySchemaValidator> = {
|
|
1364
1364
|
* // Results in: { api: { users: { getUser: () => Promise<{}> }, posts: { getPosts: () => Promise<[]> } } }
|
1365
1365
|
* ```
|
1366
1366
|
*/
|
1367
|
-
type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = {
|
1367
|
+
type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = Prettify<{
|
1368
1368
|
[K in keyof T]: T[K] extends {
|
1369
|
-
sdk:
|
1370
|
-
} ?
|
1371
|
-
}
|
1369
|
+
sdk: unknown;
|
1370
|
+
} ? T[K]['sdk'] : T[K] extends RouterMap<SV> ? MapToSdk<SV, T[K], Acc> : never;
|
1371
|
+
}>;
|
1372
1372
|
/**
|
1373
1373
|
* Tail-recursive type that extracts and flattens fetch map interfaces from a RouterMap structure.
|
1374
1374
|
* This version uses an accumulator pattern to avoid deep recursion and improve performance.
|
@@ -1393,8 +1393,8 @@ type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extend
|
|
1393
1393
|
*/
|
1394
1394
|
type MapToFetch<SV extends AnySchemaValidator, T extends RouterMap<SV>> = UnionToIntersection<Prettify<{
|
1395
1395
|
[K in keyof T]: T[K] extends RouterMap<SV> ? MapToFetch<SV, T[K]> : T[K] extends {
|
1396
|
-
_fetchMap:
|
1397
|
-
} ?
|
1396
|
+
_fetchMap: unknown;
|
1397
|
+
} ? T[K]['_fetchMap'] extends Record<string, unknown> ? T[K]['_fetchMap'] : never : never;
|
1398
1398
|
}[keyof T]>>;
|
1399
1399
|
type CollectionOptimized<T> = T extends infer U ? U : never;
|
1400
1400
|
/**
|
@@ -1486,14 +1486,14 @@ type ExtractLiveTypeFn<Entry extends SdkHandler, SV extends AnySchemaValidator,
|
|
1486
1486
|
* // Results in properly typed fetch map with discriminated methods per path
|
1487
1487
|
* ```
|
1488
1488
|
*/
|
1489
|
-
type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = {
|
1489
|
+
type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = Prettify<{
|
1490
1490
|
[K in keyof T as T[K]['_path'] extends infer P | undefined ? P extends `/${string}` ? `${RouterBasePath}${P}` : never : never]: {
|
1491
1491
|
[M in T[K]['_method'] as M extends Method ? Uppercase<M> : never]: ExtractLiveTypeFn<Extract<T[K], {
|
1492
1492
|
_path: T[K]['_path'];
|
1493
1493
|
_method: M;
|
1494
1494
|
}>, SV, RouterBasePath>;
|
1495
1495
|
};
|
1496
|
-
}
|
1496
|
+
}>;
|
1497
1497
|
|
1498
1498
|
/**
|
1499
1499
|
* A class that represents an Express-like router.
|
@@ -2053,8 +2053,74 @@ declare function sdkRouter<SV extends AnySchemaValidator, const T extends Record
|
|
2053
2053
|
sdkPaths: Record<string, string>;
|
2054
2054
|
}>(schemaValidator: SV, controller: T, router: Router): {
|
2055
2055
|
sdk: MapControllerToSdk<SV, T>;
|
2056
|
-
fetch: FetchFunction<
|
2057
|
-
|
2056
|
+
fetch: FetchFunction<{ [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
|
2057
|
+
_path: T[K_1]["_path"];
|
2058
|
+
_method: M;
|
2059
|
+
}>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
|
2060
|
+
_path: T[K_1]["_path"];
|
2061
|
+
_method: M;
|
2062
|
+
}>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
|
2063
|
+
_path: T[K_1]["_path"];
|
2064
|
+
_method: M;
|
2065
|
+
}>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
|
2066
|
+
_path: T[K_1]["_path"];
|
2067
|
+
_method: M;
|
2068
|
+
}>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
|
2069
|
+
_path: T[K_1]["_path"];
|
2070
|
+
_method: M;
|
2071
|
+
}>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
|
2072
|
+
_path: T[K_1]["_path"];
|
2073
|
+
_method: M;
|
2074
|
+
}>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2075
|
+
_path: T[K_1]["_path"];
|
2076
|
+
_method: M;
|
2077
|
+
}>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2078
|
+
_path: T[K_1]["_path"];
|
2079
|
+
_method: M;
|
2080
|
+
}>["_method"] extends Method ? Extract<T[K_1], {
|
2081
|
+
_path: T[K_1]["_path"];
|
2082
|
+
_method: M;
|
2083
|
+
}>["_method"] : never, Extract<T[K_1], {
|
2084
|
+
_path: T[K_1]["_path"];
|
2085
|
+
_method: M;
|
2086
|
+
}>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
|
2087
|
+
_path: T[K_1]["_path"];
|
2088
|
+
_method: M;
|
2089
|
+
}>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never>;
|
2090
|
+
_fetchMap: { [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
|
2091
|
+
_path: T[K_1]["_path"];
|
2092
|
+
_method: M;
|
2093
|
+
}>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
|
2094
|
+
_path: T[K_1]["_path"];
|
2095
|
+
_method: M;
|
2096
|
+
}>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
|
2097
|
+
_path: T[K_1]["_path"];
|
2098
|
+
_method: M;
|
2099
|
+
}>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
|
2100
|
+
_path: T[K_1]["_path"];
|
2101
|
+
_method: M;
|
2102
|
+
}>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
|
2103
|
+
_path: T[K_1]["_path"];
|
2104
|
+
_method: M;
|
2105
|
+
}>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
|
2106
|
+
_path: T[K_1]["_path"];
|
2107
|
+
_method: M;
|
2108
|
+
}>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2109
|
+
_path: T[K_1]["_path"];
|
2110
|
+
_method: M;
|
2111
|
+
}>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2112
|
+
_path: T[K_1]["_path"];
|
2113
|
+
_method: M;
|
2114
|
+
}>["_method"] extends Method ? Extract<T[K_1], {
|
2115
|
+
_path: T[K_1]["_path"];
|
2116
|
+
_method: M;
|
2117
|
+
}>["_method"] : never, Extract<T[K_1], {
|
2118
|
+
_path: T[K_1]["_path"];
|
2119
|
+
_method: M;
|
2120
|
+
}>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
|
2121
|
+
_path: T[K_1]["_path"];
|
2122
|
+
_method: M;
|
2123
|
+
}>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never;
|
2058
2124
|
sdkPaths: Router["sdkPaths"];
|
2059
2125
|
};
|
2060
2126
|
|
package/lib/http/index.d.ts
CHANGED
@@ -1364,11 +1364,11 @@ type RouterMap<SV extends AnySchemaValidator> = {
|
|
1364
1364
|
* // Results in: { api: { users: { getUser: () => Promise<{}> }, posts: { getPosts: () => Promise<[]> } } }
|
1365
1365
|
* ```
|
1366
1366
|
*/
|
1367
|
-
type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = {
|
1367
|
+
type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extends Record<string, unknown> = Record<string, never>> = Prettify<{
|
1368
1368
|
[K in keyof T]: T[K] extends {
|
1369
|
-
sdk:
|
1370
|
-
} ?
|
1371
|
-
}
|
1369
|
+
sdk: unknown;
|
1370
|
+
} ? T[K]['sdk'] : T[K] extends RouterMap<SV> ? MapToSdk<SV, T[K], Acc> : never;
|
1371
|
+
}>;
|
1372
1372
|
/**
|
1373
1373
|
* Tail-recursive type that extracts and flattens fetch map interfaces from a RouterMap structure.
|
1374
1374
|
* This version uses an accumulator pattern to avoid deep recursion and improve performance.
|
@@ -1393,8 +1393,8 @@ type MapToSdk<SV extends AnySchemaValidator, T extends RouterMap<SV>, Acc extend
|
|
1393
1393
|
*/
|
1394
1394
|
type MapToFetch<SV extends AnySchemaValidator, T extends RouterMap<SV>> = UnionToIntersection<Prettify<{
|
1395
1395
|
[K in keyof T]: T[K] extends RouterMap<SV> ? MapToFetch<SV, T[K]> : T[K] extends {
|
1396
|
-
_fetchMap:
|
1397
|
-
} ?
|
1396
|
+
_fetchMap: unknown;
|
1397
|
+
} ? T[K]['_fetchMap'] extends Record<string, unknown> ? T[K]['_fetchMap'] : never : never;
|
1398
1398
|
}[keyof T]>>;
|
1399
1399
|
type CollectionOptimized<T> = T extends infer U ? U : never;
|
1400
1400
|
/**
|
@@ -1486,14 +1486,14 @@ type ExtractLiveTypeFn<Entry extends SdkHandler, SV extends AnySchemaValidator,
|
|
1486
1486
|
* // Results in properly typed fetch map with discriminated methods per path
|
1487
1487
|
* ```
|
1488
1488
|
*/
|
1489
|
-
type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = {
|
1489
|
+
type ToFetchMap<T extends Record<string, SdkHandler>, SV extends AnySchemaValidator, RouterBasePath extends `/${string}`> = Prettify<{
|
1490
1490
|
[K in keyof T as T[K]['_path'] extends infer P | undefined ? P extends `/${string}` ? `${RouterBasePath}${P}` : never : never]: {
|
1491
1491
|
[M in T[K]['_method'] as M extends Method ? Uppercase<M> : never]: ExtractLiveTypeFn<Extract<T[K], {
|
1492
1492
|
_path: T[K]['_path'];
|
1493
1493
|
_method: M;
|
1494
1494
|
}>, SV, RouterBasePath>;
|
1495
1495
|
};
|
1496
|
-
}
|
1496
|
+
}>;
|
1497
1497
|
|
1498
1498
|
/**
|
1499
1499
|
* A class that represents an Express-like router.
|
@@ -2053,8 +2053,74 @@ declare function sdkRouter<SV extends AnySchemaValidator, const T extends Record
|
|
2053
2053
|
sdkPaths: Record<string, string>;
|
2054
2054
|
}>(schemaValidator: SV, controller: T, router: Router): {
|
2055
2055
|
sdk: MapControllerToSdk<SV, T>;
|
2056
|
-
fetch: FetchFunction<
|
2057
|
-
|
2056
|
+
fetch: FetchFunction<{ [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
|
2057
|
+
_path: T[K_1]["_path"];
|
2058
|
+
_method: M;
|
2059
|
+
}>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
|
2060
|
+
_path: T[K_1]["_path"];
|
2061
|
+
_method: M;
|
2062
|
+
}>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
|
2063
|
+
_path: T[K_1]["_path"];
|
2064
|
+
_method: M;
|
2065
|
+
}>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
|
2066
|
+
_path: T[K_1]["_path"];
|
2067
|
+
_method: M;
|
2068
|
+
}>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
|
2069
|
+
_path: T[K_1]["_path"];
|
2070
|
+
_method: M;
|
2071
|
+
}>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
|
2072
|
+
_path: T[K_1]["_path"];
|
2073
|
+
_method: M;
|
2074
|
+
}>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2075
|
+
_path: T[K_1]["_path"];
|
2076
|
+
_method: M;
|
2077
|
+
}>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2078
|
+
_path: T[K_1]["_path"];
|
2079
|
+
_method: M;
|
2080
|
+
}>["_method"] extends Method ? Extract<T[K_1], {
|
2081
|
+
_path: T[K_1]["_path"];
|
2082
|
+
_method: M;
|
2083
|
+
}>["_method"] : never, Extract<T[K_1], {
|
2084
|
+
_path: T[K_1]["_path"];
|
2085
|
+
_method: M;
|
2086
|
+
}>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
|
2087
|
+
_path: T[K_1]["_path"];
|
2088
|
+
_method: M;
|
2089
|
+
}>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never>;
|
2090
|
+
_fetchMap: { [K_1 in keyof T as T[K_1]["_path"] extends infer P | undefined ? P extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${P}` : never : never]: { [M in T[K_1]["_method"] as M extends Method ? Uppercase<M> : never]: LiveTypeFunction<SV, Extract<T[K_1], {
|
2091
|
+
_path: T[K_1]["_path"];
|
2092
|
+
_method: M;
|
2093
|
+
}>["_path"] extends infer Path | undefined ? Path extends `/${string}` ? `${Router["basePath"] extends `/${string}` ? Router["basePath"] : "/"}${Path}` : never : never, Extract<T[K_1], {
|
2094
|
+
_path: T[K_1]["_path"];
|
2095
|
+
_method: M;
|
2096
|
+
}>["contractDetails"]["params"] extends infer Params | undefined ? Params extends ParamsObject<SV> ? Params : ParamsObject<SV> : ParamsObject<SV>, Extract<T[K_1], {
|
2097
|
+
_path: T[K_1]["_path"];
|
2098
|
+
_method: M;
|
2099
|
+
}>["contractDetails"]["responses"] extends infer Responses | undefined ? Responses extends ResponsesObject<SV> ? Responses : ResponsesObject<SV> : ResponsesObject<SV>, Extract<T[K_1], {
|
2100
|
+
_path: T[K_1]["_path"];
|
2101
|
+
_method: M;
|
2102
|
+
}>["contractDetails"]["body"] extends infer B | undefined ? B extends Body<SV> ? B : Body<SV> : Body<SV>, Extract<T[K_1], {
|
2103
|
+
_path: T[K_1]["_path"];
|
2104
|
+
_method: M;
|
2105
|
+
}>["contractDetails"]["query"] extends infer Q | undefined ? Q extends QueryObject<SV> ? Q : QueryObject<SV> : QueryObject<SV>, Extract<T[K_1], {
|
2106
|
+
_path: T[K_1]["_path"];
|
2107
|
+
_method: M;
|
2108
|
+
}>["contractDetails"]["requestHeaders"] extends infer RequestHeaders | undefined ? RequestHeaders extends HeadersObject<SV> ? RequestHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2109
|
+
_path: T[K_1]["_path"];
|
2110
|
+
_method: M;
|
2111
|
+
}>["contractDetails"]["responseHeaders"] extends infer ResponseHeaders | undefined ? ResponseHeaders extends HeadersObject<SV> ? ResponseHeaders : HeadersObject<SV> : HeadersObject<SV>, Extract<T[K_1], {
|
2112
|
+
_path: T[K_1]["_path"];
|
2113
|
+
_method: M;
|
2114
|
+
}>["_method"] extends Method ? Extract<T[K_1], {
|
2115
|
+
_path: T[K_1]["_path"];
|
2116
|
+
_method: M;
|
2117
|
+
}>["_method"] : never, Extract<T[K_1], {
|
2118
|
+
_path: T[K_1]["_path"];
|
2119
|
+
_method: M;
|
2120
|
+
}>["contractDetails"]["versions"] extends infer Versions | undefined ? Versions extends VersionSchema<SV, Method> ? Versions : VersionSchema<SV, Method> : VersionSchema<SV, Method>, Extract<T[K_1], {
|
2121
|
+
_path: T[K_1]["_path"];
|
2122
|
+
_method: M;
|
2123
|
+
}>["contractDetails"]["auth"] extends infer Auth | undefined ? Auth extends AuthMethodsBase ? Auth : AuthMethodsBase : AuthMethodsBase>; }; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never;
|
2058
2124
|
sdkPaths: Router["sdkPaths"];
|
2059
2125
|
};
|
2060
2126
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@forklaunch/core",
|
3
|
-
"version": "0.13.
|
3
|
+
"version": "0.13.8",
|
4
4
|
"description": "forklaunch-js core package. Contains useful building blocks.",
|
5
5
|
"homepage": "https://github.com/forklaunch/forklaunch-js#readme",
|
6
6
|
"bugs": {
|
@@ -91,8 +91,8 @@
|
|
91
91
|
"pino-pretty": "^13.1.1",
|
92
92
|
"redis": "^5.8.2",
|
93
93
|
"uuid": "^11.1.0",
|
94
|
-
"@forklaunch/
|
95
|
-
"@forklaunch/
|
94
|
+
"@forklaunch/validator": "0.9.8",
|
95
|
+
"@forklaunch/common": "0.5.7"
|
96
96
|
},
|
97
97
|
"devDependencies": {
|
98
98
|
"@eslint/js": "^9.34.0",
|