mirror of
https://github.com/nicotsx/zerobyte.git
synced 2026-02-14 07:21:23 -05:00
* chore(deps): bump the minor-patch group with 9 updates Bumps the minor-patch group with 9 updates: | Package | From | To | | --- | --- | --- | | [@inquirer/prompts](https://github.com/SBoudrias/Inquirer.js) | `8.1.0` | `8.2.0` | | [better-auth](https://github.com/better-auth/better-auth/tree/HEAD/packages/better-auth) | `1.4.10` | `1.4.12` | | [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.70.0` | `7.71.0` | | [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) | `0.90.2` | `0.90.3` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.0.3` | `25.0.7` | | [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.7` | `19.2.8` | | [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.23.0` | `0.24.0` | | [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) | `1.38.0` | `1.39.0` | | [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths) | `6.0.3` | `6.0.4` | Updates `@inquirer/prompts` from 8.1.0 to 8.2.0 - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/@inquirer/prompts@8.1.0...@inquirer/prompts@8.2.0) Updates `better-auth` from 1.4.10 to 1.4.12 - [Release notes](https://github.com/better-auth/better-auth/releases) - [Commits](https://github.com/better-auth/better-auth/commits/v1.4.12/packages/better-auth) Updates `react-hook-form` from 7.70.0 to 7.71.0 - [Release notes](https://github.com/react-hook-form/react-hook-form/releases) - [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md) - [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.70.0...v7.71.0) Updates `@hey-api/openapi-ts` from 0.90.2 to 0.90.3 - [Release notes](https://github.com/hey-api/openapi-ts/releases) - [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.2...@hey-api/openapi-ts@0.90.3) Updates `@types/node` from 25.0.3 to 25.0.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@types/react` from 19.2.7 to 19.2.8 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `oxfmt` from 0.23.0 to 0.24.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.24.0/npm/oxfmt) Updates `oxlint` from 1.38.0 to 1.39.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.39.0/npm/oxlint) Updates `vite-tsconfig-paths` from 6.0.3 to 6.0.4 - [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases) - [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v6.0.3...v6.0.4) --- updated-dependencies: - dependency-name: "@inquirer/prompts" dependency-version: 8.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-patch - dependency-name: better-auth dependency-version: 1.4.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: react-hook-form dependency-version: 7.71.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor-patch - dependency-name: "@hey-api/openapi-ts" dependency-version: 0.90.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: "@types/node" dependency-version: 25.0.7 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: "@types/react" dependency-version: 19.2.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-patch - dependency-name: oxfmt dependency-version: 0.24.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-patch - dependency-name: oxlint dependency-version: 1.39.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-patch - dependency-name: vite-tsconfig-paths dependency-version: 6.0.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor-patch ... Signed-off-by: dependabot[bot] <support@github.com> * chore: gen api client --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nicolas Meienberger <github@thisprops.com>
170 lines
3.5 KiB
TypeScript
170 lines
3.5 KiB
TypeScript
// This file is auto-generated by @hey-api/openapi-ts
|
|
|
|
type Slot = "body" | "headers" | "path" | "query";
|
|
|
|
export type Field =
|
|
| {
|
|
in: Exclude<Slot, "body">;
|
|
/**
|
|
* Field name. This is the name we want the user to see and use.
|
|
*/
|
|
key: string;
|
|
/**
|
|
* Field mapped name. This is the name we want to use in the request.
|
|
* If omitted, we use the same value as `key`.
|
|
*/
|
|
map?: string;
|
|
}
|
|
| {
|
|
in: Extract<Slot, "body">;
|
|
/**
|
|
* Key isn't required for bodies.
|
|
*/
|
|
key?: string;
|
|
map?: string;
|
|
}
|
|
| {
|
|
/**
|
|
* Field name. This is the name we want the user to see and use.
|
|
*/
|
|
key: string;
|
|
/**
|
|
* Field mapped name. This is the name we want to use in the request.
|
|
* If `in` is omitted, `map` aliases `key` to the transport layer.
|
|
*/
|
|
map: Slot;
|
|
};
|
|
|
|
export interface Fields {
|
|
allowExtra?: Partial<Record<Slot, boolean>>;
|
|
args?: ReadonlyArray<Field>;
|
|
}
|
|
|
|
export type FieldsConfig = ReadonlyArray<Field | Fields>;
|
|
|
|
const extraPrefixesMap: Record<string, Slot> = {
|
|
$body_: "body",
|
|
$headers_: "headers",
|
|
$path_: "path",
|
|
$query_: "query",
|
|
};
|
|
const extraPrefixes = Object.entries(extraPrefixesMap);
|
|
|
|
type KeyMap = Map<
|
|
string,
|
|
| {
|
|
in: Slot;
|
|
map?: string;
|
|
}
|
|
| {
|
|
in?: never;
|
|
map: Slot;
|
|
}
|
|
>;
|
|
|
|
const buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {
|
|
if (!map) {
|
|
map = new Map();
|
|
}
|
|
|
|
for (const config of fields) {
|
|
if ("in" in config) {
|
|
if (config.key) {
|
|
map.set(config.key, {
|
|
in: config.in,
|
|
map: config.map,
|
|
});
|
|
}
|
|
} else if ("key" in config) {
|
|
map.set(config.key, {
|
|
map: config.map,
|
|
});
|
|
} else if (config.args) {
|
|
buildKeyMap(config.args, map);
|
|
}
|
|
}
|
|
|
|
return map;
|
|
};
|
|
|
|
interface Params {
|
|
body: unknown;
|
|
headers: Record<string, unknown>;
|
|
path: Record<string, unknown>;
|
|
query: Record<string, unknown>;
|
|
}
|
|
|
|
const stripEmptySlots = (params: Params) => {
|
|
for (const [slot, value] of Object.entries(params)) {
|
|
if (value && typeof value === "object" && !Object.keys(value).length) {
|
|
delete params[slot as Slot];
|
|
}
|
|
}
|
|
};
|
|
|
|
export const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {
|
|
const params: Params = {
|
|
body: {},
|
|
headers: {},
|
|
path: {},
|
|
query: {},
|
|
};
|
|
|
|
const map = buildKeyMap(fields);
|
|
|
|
let config: FieldsConfig[number] | undefined;
|
|
|
|
for (const [index, arg] of args.entries()) {
|
|
if (fields[index]) {
|
|
config = fields[index];
|
|
}
|
|
|
|
if (!config) {
|
|
continue;
|
|
}
|
|
|
|
if ("in" in config) {
|
|
if (config.key) {
|
|
const field = map.get(config.key)!;
|
|
const name = field.map || config.key;
|
|
if (field.in) {
|
|
(params[field.in] as Record<string, unknown>)[name] = arg;
|
|
}
|
|
} else {
|
|
params.body = arg;
|
|
}
|
|
} else {
|
|
for (const [key, value] of Object.entries(arg ?? {})) {
|
|
const field = map.get(key);
|
|
|
|
if (field) {
|
|
if (field.in) {
|
|
const name = field.map || key;
|
|
(params[field.in] as Record<string, unknown>)[name] = value;
|
|
} else {
|
|
params[field.map] = value;
|
|
}
|
|
} else {
|
|
const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix));
|
|
|
|
if (extra) {
|
|
const [prefix, slot] = extra;
|
|
(params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value;
|
|
} else if ("allowExtra" in config && config.allowExtra) {
|
|
for (const [slot, allowed] of Object.entries(config.allowExtra)) {
|
|
if (allowed) {
|
|
(params[slot as Slot] as Record<string, unknown>)[key] = value;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stripEmptySlots(params);
|
|
|
|
return params;
|
|
};
|