Skip to content

Commit

Permalink
Fix known endpoints typo and switch to singular
Browse files Browse the repository at this point in the history
  • Loading branch information
darthmaim committed Feb 20, 2024
1 parent e6c0be0 commit a2672cf
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
4 changes: 2 additions & 2 deletions packages/fetch/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import type { AuthenticatedOptions, EndpointType, KnwownEndpoints, LocalizedOptions, OptionsByEndpoint } from '@gw2api/types/endpoints';
import type { AuthenticatedOptions, EndpointType, KnownEndpoint, LocalizedOptions, OptionsByEndpoint } from '@gw2api/types/endpoints';
import { SchemaVersion } from '@gw2api/types/schema';

// TODO: make `options` optional if `OptionsByEndpoint<Url>` only contains optional props

export function fetchGw2Api<
Url extends KnwownEndpoints | (string & {}),
Url extends KnownEndpoint | (string & {}),
Schema extends SchemaVersion = undefined
>(
endpoint: Url,
Expand Down
30 changes: 15 additions & 15 deletions packages/types/endpoints.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Account } from './data/account';
import { Item } from './data/item';
import { SchemaVersion } from './schema';

export type KnwownAuthenticatedEndpoints =
export type KnwownAuthenticatedEndpoint =
| '/v2/account'
| '/v2/account/achievements'
| '/v2/account/bank'
Expand Down Expand Up @@ -74,7 +74,7 @@ export type KnwownAuthenticatedEndpoints =
| '/v2/pvp/stats'
| '/v2/tokeninfo'

export type KnownUnauthorizedEndpoints =
export type KnownUnauthorizedEndpoint =
| '/v2/account/home'
| '/v2/account/mounts'
| '/v2/achievements'
Expand Down Expand Up @@ -168,7 +168,7 @@ export type KnownUnauthorizedEndpoints =
| '/v2/wvw/rewardtracks'
| '/v2/wvw/upgrades'

export type KnownBulkExpandedEndpoints =
export type KnownBulkExpandedEndpoint =
| '/v2/achievements'
| '/v2/achievements/categories'
| '/v2/achievements/groups'
Expand Down Expand Up @@ -217,7 +217,7 @@ export type KnownBulkExpandedEndpoints =
| '/v2/wvw/matches'
| '/v2/wvw/objectives'

export type KnownLocalizedEndpoints =
export type KnownLocalizedEndpoint =
| '/v2/achievements'
| '/v2/achievements/categories'
| '/v2/achievements/groups'
Expand Down Expand Up @@ -274,7 +274,7 @@ export type KnownLocalizedEndpoints =
| '/v2/wvw/rewardtracks'
| '/v2/wvw/upgrades'

export type KnwownEndpoints = KnwownAuthenticatedEndpoints | KnownUnauthorizedEndpoints | KnownBulkExpandedEndpoints | KnownLocalizedEndpoints;
export type KnownEndpoint = KnwownAuthenticatedEndpoint | KnownUnauthorizedEndpoint | KnownBulkExpandedEndpoint | KnownLocalizedEndpoint;

// helper types for parameters
type CombineParameters<P1 extends string, P2 extends string> = `${P1}&${P2}` | `${P2}&${P1}`;
Expand All @@ -286,12 +286,12 @@ type WithParameters<Url extends string, Parameters extends string | undefined =
type PaginationParameters = `page=${number}` | CombineParameters<`page=${number}`, `page_size=${number}`>;

// helper types for bulk requests
type BulkExpandedSingleEndpointUrl<Endpoint extends KnownBulkExpandedEndpoints, Id extends string | number> = `${Endpoint}/${Id}` | WithParameters<Endpoint, `id=${Id}`>
type BulkExpandedManyEndpointUrl<Endpoint extends KnownBulkExpandedEndpoints> = WithParameters<Endpoint, `ids=${string}` | PaginationParameters>
type BulkExpandedEndpointUrl<Endpoint extends KnownBulkExpandedEndpoints, Id extends string | number> =
type BulkExpandedSingleEndpointUrl<Endpoint extends KnownBulkExpandedEndpoint, Id extends string | number> = `${Endpoint}/${Id}` | WithParameters<Endpoint, `id=${Id}`>
type BulkExpandedManyEndpointUrl<Endpoint extends KnownBulkExpandedEndpoint> = WithParameters<Endpoint, `ids=${string}` | PaginationParameters>
type BulkExpandedEndpointUrl<Endpoint extends KnownBulkExpandedEndpoint, Id extends string | number> =
Endpoint | BulkExpandedSingleEndpointUrl<Endpoint, Id> | BulkExpandedManyEndpointUrl<Endpoint>

type BulkExpandedResponseType<Endpoint extends KnownBulkExpandedEndpoints, Url extends string, Id extends string | number, T> =
type BulkExpandedResponseType<Endpoint extends KnownBulkExpandedEndpoint, Url extends string, Id extends string | number, T> =
Url extends Endpoint ? Id[] :
Url extends BulkExpandedSingleEndpointUrl<Endpoint, Id> ? T :
Url extends BulkExpandedManyEndpointUrl<Endpoint> ? T[] :
Expand All @@ -309,11 +309,11 @@ export type AuthenticatedOptions = {
}

type OptionsByEndpoint<Endpoint extends string> =
Endpoint extends KnownBulkExpandedEndpoints ? Options :
Endpoint extends BulkExpandedManyEndpointUrl<KnownBulkExpandedEndpoints & KnownLocalizedEndpoints> ? Options & LocalizedOptions :
Endpoint extends BulkExpandedSingleEndpointUrl<KnownBulkExpandedEndpoints & KnownLocalizedEndpoints, string> ? Options & LocalizedOptions :
Endpoint extends KnownLocalizedEndpoints ? Options & LocalizedOptions :
Endpoint extends KnwownAuthenticatedEndpoints ? Options & AuthenticatedOptions :
Endpoint extends KnownBulkExpandedEndpoint ? Options :
Endpoint extends BulkExpandedManyEndpointUrl<KnownBulkExpandedEndpoint & KnownLocalizedEndpoint> ? Options & LocalizedOptions :
Endpoint extends BulkExpandedSingleEndpointUrl<KnownBulkExpandedEndpoint & KnownLocalizedEndpoint, string> ? Options & LocalizedOptions :
Endpoint extends KnownLocalizedEndpoint ? Options & LocalizedOptions :
Endpoint extends KnwownAuthenticatedEndpoint ? Options & AuthenticatedOptions :
Options

type SchemaFromOptions<O extends Options> =
Expand All @@ -329,7 +329,7 @@ export type EndpointType<Url extends string, Schema extends SchemaVersion = unde
Url extends `/v2/characters?ids=${number}` ? { name: string }[] :
Url extends '/v2/characters' ? string[] :
// fallback for all bulk expanded urls
Url extends BulkExpandedEndpointUrl<KnownBulkExpandedEndpoints, string | number> ? BulkExpandedResponseType<KnownBulkExpandedEndpoints, Url, string | number, unknown> :
Url extends BulkExpandedEndpointUrl<KnownBulkExpandedEndpoint, string | number> ? BulkExpandedResponseType<KnownBulkExpandedEndpoint, Url, string | number, unknown> :
// fallback for all other urls
unknown;

Expand Down

0 comments on commit a2672cf

Please sign in to comment.