@kollors/react-codegen 2.0.0-alpha.4 → 2.0.0-alpha.6

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.
Files changed (89) hide show
  1. package/README.md +193 -49
  2. package/README.ru.md +193 -49
  3. package/dist/{cli.js → cli/index.js} +6 -11
  4. package/dist/cli/index.js.map +1 -0
  5. package/dist/core/auth.d.ts +7 -0
  6. package/dist/core/auth.js +2 -0
  7. package/dist/core/auth.js.map +1 -0
  8. package/dist/core/config.d.ts +2 -0
  9. package/dist/core/config.js +67 -0
  10. package/dist/core/config.js.map +1 -0
  11. package/dist/{generate.d.ts → core/generate.d.ts} +0 -1
  12. package/dist/core/generate.js +47 -0
  13. package/dist/core/generate.js.map +1 -0
  14. package/dist/core/names.d.ts +5 -0
  15. package/dist/core/names.js +16 -0
  16. package/dist/core/names.js.map +1 -0
  17. package/dist/core/output.d.ts +5 -0
  18. package/dist/core/output.js +39 -0
  19. package/dist/core/output.js.map +1 -0
  20. package/dist/core/paths.d.ts +4 -0
  21. package/dist/core/paths.js +12 -0
  22. package/dist/core/paths.js.map +1 -0
  23. package/dist/{types.d.ts → core/types.d.ts} +2 -2
  24. package/dist/core/types.js.map +1 -0
  25. package/dist/graphql/document.d.ts +8 -0
  26. package/dist/graphql/document.js +118 -0
  27. package/dist/graphql/document.js.map +1 -0
  28. package/dist/graphql/fetcher.d.ts +5 -0
  29. package/dist/graphql/fetcher.js +4 -0
  30. package/dist/graphql/fetcher.js.map +1 -0
  31. package/dist/graphql/generate.d.ts +3 -0
  32. package/dist/graphql/generate.js +59 -0
  33. package/dist/graphql/generate.js.map +1 -0
  34. package/dist/graphql/operations.d.ts +13 -0
  35. package/dist/graphql/operations.js +139 -0
  36. package/dist/graphql/operations.js.map +1 -0
  37. package/dist/{graphql-fetcher.d.ts → graphql/runtime.d.ts} +4 -3
  38. package/dist/{graphql-fetcher.js → graphql/runtime.js} +12 -6
  39. package/dist/graphql/runtime.js.map +1 -0
  40. package/dist/graphql/runtime.source +140 -0
  41. package/dist/graphql/selections.d.ts +12 -0
  42. package/dist/graphql/selections.js +120 -0
  43. package/dist/graphql/selections.js.map +1 -0
  44. package/dist/graphql/types.d.ts +15 -0
  45. package/dist/graphql/types.js +110 -0
  46. package/dist/graphql/types.js.map +1 -0
  47. package/dist/index.d.ts +6 -6
  48. package/dist/index.js +3 -3
  49. package/dist/index.js.map +1 -1
  50. package/dist/openapi/fetcher.d.ts +3 -0
  51. package/dist/openapi/fetcher.js +4 -0
  52. package/dist/openapi/fetcher.js.map +1 -0
  53. package/dist/openapi/generate.d.ts +1 -1
  54. package/dist/openapi/generate.js +2 -1
  55. package/dist/openapi/generate.js.map +1 -1
  56. package/dist/openapi/names.d.ts +1 -5
  57. package/dist/openapi/names.js +1 -15
  58. package/dist/openapi/names.js.map +1 -1
  59. package/dist/openapi/operations.d.ts +0 -1
  60. package/dist/openapi/operations.js +35 -45
  61. package/dist/openapi/operations.js.map +1 -1
  62. package/dist/{openapi-runtime.d.ts → openapi/runtime.d.ts} +5 -7
  63. package/dist/{openapi-runtime.js → openapi/runtime.js} +38 -25
  64. package/dist/openapi/runtime.js.map +1 -0
  65. package/dist/{openapi-runtime.source → openapi/runtime.source} +43 -21
  66. package/dist/openapi/schema.d.ts +4 -0
  67. package/dist/openapi/schema.js +83 -77
  68. package/dist/openapi/schema.js.map +1 -1
  69. package/dist/openapi/type-expression.d.ts +38 -0
  70. package/dist/openapi/type-expression.js +166 -0
  71. package/dist/openapi/type-expression.js.map +1 -0
  72. package/docs/migration.md +21 -0
  73. package/docs/migration.ru.md +21 -0
  74. package/package.json +10 -15
  75. package/dist/cli.js.map +0 -1
  76. package/dist/generate.js +0 -197
  77. package/dist/generate.js.map +0 -1
  78. package/dist/graphql-fetcher.js.map +0 -1
  79. package/dist/openapi-fetcher.d.ts +0 -3
  80. package/dist/openapi-fetcher.js +0 -4
  81. package/dist/openapi-fetcher.js.map +0 -1
  82. package/dist/openapi-runtime.js.map +0 -1
  83. package/dist/path-utils.d.ts +0 -2
  84. package/dist/path-utils.js +0 -5
  85. package/dist/path-utils.js.map +0 -1
  86. package/dist/types.js.map +0 -1
  87. package/templates/graphql.template +0 -23
  88. /package/dist/{cli.d.ts → cli/index.d.ts} +0 -0
  89. /package/dist/{types.js → core/types.js} +0 -0
@@ -0,0 +1,140 @@
1
+ export type TokenStorage = 'localStorage' | 'sessionStorage' | 'cookie' | 'none';
2
+
3
+ export interface AuthConfig {
4
+ storage: TokenStorage;
5
+ key?: string;
6
+ scheme?: string | false;
7
+ credentials?: RequestCredentials;
8
+ }
9
+
10
+ export interface GraphqlFetcherConfiguration {
11
+ /** GraphQL endpoint; defaults to `/api/graphql`. */
12
+ endpoint?: string;
13
+ /** Custom value for the `Authorization` header. When omitted, no authorization header is added unless `auth` is configured. */
14
+ getToken?: () => string | null | undefined;
15
+ /** Token storage and fetch credential settings. */
16
+ auth?: AuthConfig;
17
+ /** Headers applied after the authorization header, so callers can replace it explicitly. */
18
+ headers?: HeadersInit;
19
+ }
20
+
21
+ function readConfiguredToken(auth: AuthConfig): string {
22
+ if (auth.storage === 'none') return '';
23
+ if (auth.storage === 'cookie') {
24
+ if (typeof document === 'undefined' || !auth.key) return '';
25
+ const cookie = document.cookie
26
+ .split(';')
27
+ .map((part) => part.trim())
28
+ .find((part) => part.startsWith(`${auth.key}=`));
29
+ if (!cookie) return '';
30
+ const value = cookie.slice(auth.key.length + 1);
31
+ try {
32
+ return decodeURIComponent(value);
33
+ } catch {
34
+ return value;
35
+ }
36
+ }
37
+ if (typeof globalThis[auth.storage] === 'undefined' || !auth.key) return '';
38
+ return globalThis[auth.storage].getItem(auth.key) ?? '';
39
+ }
40
+
41
+ function authorizationValue(configuration: GraphqlFetcherConfiguration): string {
42
+ if (configuration.getToken) return configuration.getToken() ?? '';
43
+ const auth = configuration.auth;
44
+ if (!auth) return '';
45
+ const token = readConfiguredToken(auth);
46
+ if (!token || auth.scheme === false) return token;
47
+ const scheme = auth.scheme ?? 'Bearer';
48
+ if (!scheme) return token;
49
+ return token.toLowerCase().startsWith(`${scheme.toLowerCase()} `) ? token : `${scheme} ${token}`;
50
+ }
51
+
52
+ export class GraphqlHttpError extends Error {
53
+ constructor(
54
+ readonly status: number,
55
+ readonly statusText: string,
56
+ readonly endpoint: string,
57
+ readonly body: unknown,
58
+ ) {
59
+ super(`GraphQL request to ${endpoint} failed with HTTP ${status}${statusText ? ` ${statusText}` : ''}.`);
60
+ this.name = 'GraphqlHttpError';
61
+ }
62
+ }
63
+
64
+ export class GraphqlResponseError extends Error {
65
+ constructor(
66
+ readonly errors: Array<{ message: string }>,
67
+ readonly data: unknown,
68
+ ) {
69
+ super(
70
+ errors
71
+ .map(({ message }) => message)
72
+ .filter(Boolean)
73
+ .join('\n') || 'GraphQL response contains errors.',
74
+ );
75
+ this.name = 'GraphqlResponseError';
76
+ }
77
+ }
78
+
79
+ export function createGraphqlFetcher(configuration: GraphqlFetcherConfiguration = {}) {
80
+ const endpoint = configuration.endpoint ?? '/api/graphql';
81
+ return function graphqlFetcher<TData, TVariables>(
82
+ query: string,
83
+ variables?: TVariables,
84
+ operationName?: string,
85
+ ): (context?: { signal?: AbortSignal }) => Promise<TData> {
86
+ return async (context?: { signal?: AbortSignal }) => {
87
+ try {
88
+ const headers = new Headers({ 'content-type': 'application/json' });
89
+ const token = authorizationValue(configuration);
90
+ if (token) headers.set('authorization', token);
91
+ new Headers(configuration.headers).forEach((value, key) => {
92
+ headers.set(key, value);
93
+ });
94
+
95
+ let response: Response;
96
+ try {
97
+ response = await fetch(endpoint, {
98
+ body: JSON.stringify({ query, variables, operationName }),
99
+ headers,
100
+ method: 'POST',
101
+ ...(context?.signal ? { signal: context.signal } : {}),
102
+ ...(configuration.auth?.credentials ? { credentials: configuration.auth.credentials } : {}),
103
+ });
104
+ } catch (error) {
105
+ if (error instanceof Error && error.name === 'AbortError') throw error;
106
+ throw new Error(`Could not reach GraphQL endpoint ${endpoint}: ${error instanceof Error ? error.message : String(error)}`, {
107
+ cause: error,
108
+ });
109
+ }
110
+ let result: { data?: TData; errors?: Array<{ message: string }> };
111
+ const rawBody = await response.text();
112
+ try {
113
+ result = JSON.parse(rawBody) as { data?: TData; errors?: Array<{ message: string }> };
114
+ } catch (error) {
115
+ if (!response.ok) throw new GraphqlHttpError(response.status, response.statusText, endpoint, rawBody);
116
+ throw new Error(`GraphQL server returned an invalid JSON response from ${endpoint}.`, { cause: error });
117
+ }
118
+
119
+ if (!response.ok) throw new GraphqlHttpError(response.status, response.statusText, endpoint, result);
120
+ if (!result || typeof result !== 'object' || Array.isArray(result)) {
121
+ throw new Error(`GraphQL server returned an invalid response envelope from ${endpoint}.`);
122
+ }
123
+ if (
124
+ result.errors !== undefined &&
125
+ (!Array.isArray(result.errors) || result.errors.some((error) => !error || typeof error.message !== 'string'))
126
+ ) {
127
+ throw new Error(`GraphQL server returned an invalid errors list from ${endpoint}.`);
128
+ }
129
+ if (result.errors?.length) throw new GraphqlResponseError(result.errors, result.data);
130
+ if (result.data === undefined) {
131
+ throw new Error(`GraphQL response from ${endpoint} does not contain data.`);
132
+ }
133
+
134
+ return result.data;
135
+ } catch (error) {
136
+ throw error instanceof Error ? error : new Error(String(error));
137
+ }
138
+ };
139
+ };
140
+ }
@@ -0,0 +1,12 @@
1
+ import { type FragmentDefinitionNode, type GraphQLCompositeType, type SelectionSetNode } from 'graphql';
2
+ import type { Types } from './types.js';
3
+ export declare class Selections {
4
+ private readonly types;
5
+ private readonly fragments;
6
+ constructor(types: Types, fragments: Map<string, FragmentDefinitionNode>);
7
+ render(parent: GraphQLCompositeType, set: SelectionSetNode): string;
8
+ private applies;
9
+ private composite;
10
+ private output;
11
+ private nonNull;
12
+ }
@@ -0,0 +1,120 @@
1
+ import { getNamedType, isAbstractType, isCompositeType, isListType, isNonNullType, isObjectType, Kind, } from 'graphql';
2
+ function directed(condition, directives) {
3
+ const result = new Map(condition);
4
+ for (const directive of directives ?? []) {
5
+ if (directive.name.value !== 'include' && directive.name.value !== 'skip')
6
+ continue;
7
+ const value = directive.arguments?.find((arg) => arg.name.value === 'if')?.value;
8
+ const expected = directive.name.value === 'include';
9
+ if (value?.kind === Kind.BOOLEAN && value.value !== expected)
10
+ return undefined;
11
+ if (value?.kind === Kind.VARIABLE) {
12
+ const name = value.name.value;
13
+ if (result.has(name) && result.get(name) !== expected)
14
+ return undefined;
15
+ result.set(name, expected);
16
+ }
17
+ }
18
+ return result;
19
+ }
20
+ /** Check whether conditional occurrences cover every assignment under the parent's condition. */
21
+ function covered(parent, choices) {
22
+ const memo = new Map();
23
+ function check(assignment) {
24
+ const key = JSON.stringify([...assignment].sort(([a], [b]) => a.localeCompare(b)));
25
+ const cached = memo.get(key);
26
+ if (cached !== undefined)
27
+ return cached;
28
+ const compatible = choices.filter((choice) => [...choice].every(([name, value]) => !assignment.has(name) || assignment.get(name) === value));
29
+ if (compatible.some((choice) => [...choice].every(([name, value]) => assignment.get(name) === value)))
30
+ return true;
31
+ const variable = compatible.flatMap((choice) => [...choice.keys()]).find((name) => !assignment.has(name));
32
+ if (variable === undefined)
33
+ return false;
34
+ const result = check(new Map([...assignment, [variable, true]])) && check(new Map([...assignment, [variable, false]]));
35
+ memo.set(key, result);
36
+ return result;
37
+ }
38
+ return check(parent);
39
+ }
40
+ export class Selections {
41
+ types;
42
+ fragments;
43
+ constructor(types, fragments) {
44
+ this.types = types;
45
+ this.fragments = fragments;
46
+ }
47
+ render(parent, set) {
48
+ const condition = new Map();
49
+ return this.composite(parent, [{ set, condition }], [condition]);
50
+ }
51
+ applies(condition, concrete) {
52
+ if (!condition)
53
+ return true;
54
+ const type = this.types.schema.getType(condition);
55
+ return type === concrete || (isAbstractType(type) && this.types.schema.isSubType(type, concrete));
56
+ }
57
+ composite(parent, selections, presence) {
58
+ const possible = isObjectType(parent) ? [parent] : this.types.schema.getPossibleTypes(parent);
59
+ const variants = possible.map((concrete) => {
60
+ const fields = new Map();
61
+ const collect = ({ set, condition }) => {
62
+ for (const selection of set.selections) {
63
+ const included = directed(condition, selection.directives);
64
+ if (!included)
65
+ continue;
66
+ if (selection.kind === Kind.FIELD) {
67
+ const key = selection.alias?.value ?? selection.name.value;
68
+ const existing = fields.get(key) ?? [];
69
+ existing.push({ node: selection, condition: included });
70
+ fields.set(key, existing);
71
+ }
72
+ else if (selection.kind === Kind.INLINE_FRAGMENT) {
73
+ if (this.applies(selection.typeCondition?.name.value, concrete))
74
+ collect({ set: selection.selectionSet, condition: included });
75
+ }
76
+ else {
77
+ const fragment = this.fragments.get(selection.name.value);
78
+ if (fragment && this.applies(fragment.typeCondition.name.value, concrete))
79
+ collect({ set: fragment.selectionSet, condition: included });
80
+ }
81
+ }
82
+ };
83
+ selections.forEach(collect);
84
+ if (!fields.size)
85
+ return 'Record<string, never>';
86
+ const properties = [...fields].map(([key, occurrences]) => {
87
+ const first = occurrences[0];
88
+ if (!first)
89
+ throw new Error(`Missing selection for ${key}.`);
90
+ const conditions = occurrences.map((field) => field.condition);
91
+ const optional = !presence.every((condition) => covered(condition, conditions));
92
+ let value;
93
+ if (first.node.name.value === '__typename')
94
+ value = JSON.stringify(concrete.name);
95
+ else {
96
+ const field = concrete.getFields()[first.node.name.value];
97
+ if (!field)
98
+ throw new Error(`Missing field ${concrete.name}.${first.node.name.value}.`);
99
+ const nested = occurrences.flatMap(({ node, condition }) => (node.selectionSet ? [{ set: node.selectionSet, condition }] : []));
100
+ value = this.output(field.type, nested, conditions);
101
+ }
102
+ return ` ${JSON.stringify(key)}${optional ? '?' : ''}: ${value.replaceAll('\n', '\n ')};`;
103
+ });
104
+ return `{\n${properties.join('\n')}\n}`;
105
+ });
106
+ return [...new Set(variants)].join(' | ') || 'never';
107
+ }
108
+ output(type, selections, presence) {
109
+ if (isNonNullType(type))
110
+ return this.nonNull(type.ofType, selections, presence);
111
+ return `${this.nonNull(type, selections, presence)} | null`;
112
+ }
113
+ nonNull(type, selections, presence) {
114
+ if (isListType(type))
115
+ return `Array<${this.output(type.ofType, selections, presence)}>`;
116
+ const named = getNamedType(type);
117
+ return isCompositeType(named) ? this.composite(named, selections, presence) : this.types.type(type, false).replace(/ \| null$/, '');
118
+ }
119
+ }
120
+ //# sourceMappingURL=selections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selections.js","sourceRoot":"","sources":["../../src/graphql/selections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type GraphQLNamedType, type GraphQLSchema, type GraphQLType } from 'graphql';
2
+ import { type Names } from '../core/names.js';
3
+ /** Preserve the previous generator's PascalCase names and underscore boundaries. */
4
+ export declare function title(value: string): string;
5
+ export declare class Types {
6
+ readonly schema: GraphQLSchema;
7
+ readonly names: Names;
8
+ private readonly symbols;
9
+ private readonly types;
10
+ constructor(schema: GraphQLSchema, names: Names);
11
+ symbol(type: GraphQLNamedType): string;
12
+ type(type: GraphQLType, input: boolean): string;
13
+ private nonNull;
14
+ declarations(): string;
15
+ }
@@ -0,0 +1,110 @@
1
+ import { isEnumType, isInputObjectType, isInterfaceType, isListType, isNonNullType, isObjectType, isScalarType, isUnionType, } from 'graphql';
2
+ import { comment } from '../core/names.js';
3
+ /** Preserve the previous generator's PascalCase names and underscore boundaries. */
4
+ export function title(value) {
5
+ return value
6
+ .split('_')
7
+ .map((part) => (part.match(/[A-Z]+(?=[A-Z][a-z]|$)|[A-Z]?[a-z]+|[0-9]+/g) ?? [])
8
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
9
+ .join(''))
10
+ .join('_');
11
+ }
12
+ const scalars = new Map(Object.entries({ ID: 'string', String: 'string', Boolean: 'boolean', Int: 'number', Float: 'number' }));
13
+ export class Types {
14
+ schema;
15
+ names;
16
+ symbols = new Map();
17
+ types;
18
+ constructor(schema, names) {
19
+ this.schema = schema;
20
+ this.names = names;
21
+ this.types = Object.values(schema.getTypeMap())
22
+ .filter((type) => !type.name.startsWith('__'))
23
+ .sort((a, b) => a.name.localeCompare(b.name, 'en'));
24
+ for (const type of this.types) {
25
+ if (!isScalarType(type))
26
+ this.symbols.set(type.name, names.reserve(title(type.name), `schema type ${type.name}`));
27
+ }
28
+ }
29
+ symbol(type) {
30
+ if (isScalarType(type))
31
+ return `Scalars[${JSON.stringify(type.name)}]`;
32
+ const symbol = this.symbols.get(type.name);
33
+ if (!symbol)
34
+ throw new Error(`No generated type for ${type.name}.`);
35
+ return symbol;
36
+ }
37
+ type(type, input) {
38
+ if (isNonNullType(type))
39
+ return this.nonNull(type.ofType, input);
40
+ return `${this.nonNull(type, input)} | null`;
41
+ }
42
+ nonNull(type, input) {
43
+ if (isListType(type)) {
44
+ const element = this.type(type.ofType, input);
45
+ return `Array<${element}>`;
46
+ }
47
+ if (isNonNullType(type))
48
+ return this.nonNull(type.ofType, input);
49
+ return isScalarType(type) ? `${this.symbol(type)}[${JSON.stringify(input ? 'input' : 'output')}]` : this.symbol(type);
50
+ }
51
+ declarations() {
52
+ const result = [
53
+ `export type Scalars = {\n${this.types
54
+ .filter(isScalarType)
55
+ .map((type) => `${comment(type.description)} ${JSON.stringify(type.name)}: { input: ${scalars.get(type.name) ?? 'unknown'}; output: ${scalars.get(type.name) ?? 'unknown'} };`)
56
+ .join('\n')}\n};`,
57
+ ];
58
+ for (const type of this.types) {
59
+ if (isScalarType(type))
60
+ continue;
61
+ const name = this.symbol(type);
62
+ let declaration;
63
+ if (isEnumType(type)) {
64
+ const members = new Set();
65
+ const values = type.getValues().map((value) => {
66
+ const member = title(value.name);
67
+ if (members.has(member))
68
+ throw new Error(`Enum ${type.name}: values collide as TypeScript member "${member}".`);
69
+ members.add(member);
70
+ return `${comment(value.description)} ${member} = ${JSON.stringify(value.name)},`;
71
+ });
72
+ declaration = `export enum ${name} {\n${values.join('\n')}\n}`;
73
+ }
74
+ else if (isInputObjectType(type)) {
75
+ const fields = Object.values(type.getFields());
76
+ if (type.isOneOf) {
77
+ declaration = `export type ${name} = ${fields.map((chosen) => `{ ${fields.map((field) => (field === chosen ? `${JSON.stringify(field.name)}: NonNullable<${this.type(field.type, true)}>` : `${JSON.stringify(field.name)}?: never`)).join('; ')} }`).join(' | ')};`;
78
+ }
79
+ else {
80
+ declaration = `export type ${name} = {\n${fields.map((field) => `${comment(field.description)} ${JSON.stringify(field.name)}${isNonNullType(field.type) && field.defaultValue === undefined ? '' : '?'}: ${this.type(field.type, true)};`).join('\n')}\n};`;
81
+ }
82
+ }
83
+ else if (isUnionType(type)) {
84
+ declaration = `export type ${name} = ${type
85
+ .getTypes()
86
+ .map((member) => this.symbol(member))
87
+ .join(' | ')};`;
88
+ }
89
+ else if (isObjectType(type) || isInterfaceType(type)) {
90
+ const possible = isObjectType(type) ? [type] : this.schema.getPossibleTypes(type);
91
+ const typename = possible.map((member) => JSON.stringify(member.name)).join(' | ') || 'never';
92
+ declaration = `export type ${name} = {\n __typename?: ${typename};\n${Object.values(type.getFields())
93
+ .map((field) => `${comment(field.description)} ${JSON.stringify(field.name)}${isNonNullType(field.type) ? '' : '?'}: ${this.type(field.type, false)};`)
94
+ .join('\n')}\n};`;
95
+ for (const field of Object.values(type.getFields())) {
96
+ if (!field.args.length)
97
+ continue;
98
+ const args = this.names.reserve(`${name}${title(field.name)}Args`, `arguments of ${type.name}.${field.name}`);
99
+ result.push(`export type ${args} = {\n${field.args.map((arg) => `${comment(arg.description)} ${JSON.stringify(arg.name)}${isNonNullType(arg.type) && arg.defaultValue === undefined ? '' : '?'}: ${this.type(arg.type, true)};`).join('\n')}\n};`);
100
+ }
101
+ }
102
+ else {
103
+ throw new Error('Unsupported GraphQL type.');
104
+ }
105
+ result.push(comment(type.description) + declaration);
106
+ }
107
+ return result.join('\n\n');
108
+ }
109
+ }
110
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/graphql/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AAEvD,oFAAoF;AACpF,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,CAAC,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,IAAI,EAAE,CAAC;SAC9D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CACZ;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAEhI,MAAM,OAAO,KAAK;IAKL;IACA;IALM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,KAAK,CAAqB;IAE3C,YACW,MAAqB,EACrB,KAAY;QADZ,WAAM,GAAN,MAAM,CAAe;QACrB,UAAK,GAAL,KAAK,CAAO;QAErB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;aAC5C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAsB;QAC3B,IAAI,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,IAAiB,EAAE,KAAc;QACpC,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/C,CAAC;IAEO,OAAO,CAAC,IAAiB,EAAE,KAAc;QAC/C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO,SAAS,OAAO,GAAG,CAAC;QAC7B,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxH,CAAC;IAED,YAAY;QACV,MAAM,MAAM,GAAG;YACb,4BAA4B,IAAI,CAAC,KAAK;iBACnC,MAAM,CAAC,YAAY,CAAC;iBACpB,GAAG,CACF,CAAC,IAAI,EAAE,EAAE,CACP,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,aAAa,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,KAAK,CACnK;iBACA,IAAI,CAAC,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,YAAY,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,WAAmB,CAAC;YACxB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,0CAA0C,MAAM,IAAI,CAAC,CAAC;oBAChH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACpB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;gBACrF,CAAC,CAAC,CAAC;gBACH,WAAW,GAAG,eAAe,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,WAAW,GAAG,eAAe,IAAI,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACvQ,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,eAAe,IAAI,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC/P,CAAC;YACH,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,WAAW,GAAG,eAAe,IAAI,MAAM,IAAI;qBACxC,QAAQ,EAAE;qBACV,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;qBACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACpB,CAAC;iBAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAClF,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;gBAC9F,WAAW,GAAG,eAAe,IAAI,wBAAwB,QAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;qBACnG,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CACR,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAC1I;qBACA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;oBACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;wBAAE,SAAS;oBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC9G,MAAM,CAAC,IAAI,CACT,eAAe,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CACvO,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { generate } from './generate.js';
2
- export type { GraphqlFetcherConfiguration } from './graphql-fetcher.js';
3
- export { createGraphqlFetcher, GraphqlHttpError, GraphqlResponseError, graphqlFetcher } from './graphql-fetcher.js';
4
- export type { OpenapiFetcherConfiguration, OpenapiFetcherOptions } from './openapi-fetcher.js';
5
- export { createOpenapiFetcher, OpenapiHttpError, openapiFetcher } from './openapi-fetcher.js';
6
- export type { AuthConfig, CodegenConfig, CodegenResult, TokenStorage } from './types.js';
1
+ export { generate } from './core/generate.js';
2
+ export type { AuthConfig, CodegenConfig, CodegenResult, TokenStorage } from './core/types.js';
3
+ export type { GraphqlFetcherConfiguration } from './graphql/fetcher.js';
4
+ export { createGraphqlFetcher, GraphqlHttpError, GraphqlResponseError, graphqlFetcher } from './graphql/fetcher.js';
5
+ export type { OpenapiFetcherConfiguration, OpenapiFetcherOptions } from './openapi/fetcher.js';
6
+ export { createOpenapiFetcher, OpenapiHttpError, openapiFetcher } from './openapi/fetcher.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { generate } from './generate.js';
2
- export { createGraphqlFetcher, GraphqlHttpError, GraphqlResponseError, graphqlFetcher } from './graphql-fetcher.js';
3
- export { createOpenapiFetcher, OpenapiHttpError, openapiFetcher } from './openapi-fetcher.js';
1
+ export { generate } from './core/generate.js';
2
+ export { createGraphqlFetcher, GraphqlHttpError, GraphqlResponseError, graphqlFetcher } from './graphql/fetcher.js';
3
+ export { createOpenapiFetcher, OpenapiHttpError, openapiFetcher } from './openapi/fetcher.js';
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEpH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEpH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { OpenapiFetcherConfiguration, OpenapiFetcherOptions } from './runtime.js';
2
+ export { createOpenapiFetcher, OpenapiHttpError } from './runtime.js';
3
+ export declare const openapiFetcher: <TData, TError = unknown, TBody = unknown, THeaders = unknown, TQueryParams = unknown, TPathParams = unknown>(options: import("./runtime.js").OpenapiFetcherOptions<TBody, THeaders, TQueryParams, TPathParams>) => Promise<TData>;
@@ -0,0 +1,4 @@
1
+ import { createOpenapiFetcher } from './runtime.js';
2
+ export { createOpenapiFetcher, OpenapiHttpError } from './runtime.js';
3
+ export const openapiFetcher = createOpenapiFetcher();
4
+ //# sourceMappingURL=fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/openapi/fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { OpenapiFetcherConfiguration } from '../openapi-runtime.js';
1
+ import type { OpenapiFetcherConfiguration } from './runtime.js';
2
2
  /** Build the complete client in memory. The runtime is copied verbatim from checked TypeScript. */
3
3
  export declare function generateOpenapiSource(source: string, configuration: OpenapiFetcherConfiguration): Promise<string>;
@@ -6,7 +6,7 @@ import { Schemas } from './schema.js';
6
6
  /** Build the complete client in memory. The runtime is copied verbatim from checked TypeScript. */
7
7
  export async function generateOpenapiSource(source, configuration) {
8
8
  const document = await loadOpenapi(source);
9
- const runtime = await readFile(new URL('../openapi-runtime.source', import.meta.url), 'utf8');
9
+ const runtime = await readFile(new URL('./runtime.source', import.meta.url), 'utf8');
10
10
  const names = new Names();
11
11
  for (const name of [
12
12
  'reactQuery',
@@ -28,6 +28,7 @@ export async function generateOpenapiSource(source, configuration) {
28
28
  'requestHeaders',
29
29
  'withQueryParams',
30
30
  'isJsonContentType',
31
+ 'normalizeContentType',
31
32
  'readResponse',
32
33
  'Array',
33
34
  'Record',
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/openapi/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,aAA0C;IACpG,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI;QACjB,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,uBAAuB;QACvB,6BAA6B;QAC7B,kBAAkB;QAClB,kBAAkB;QAClB,sBAAsB;QACtB,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,aAAa;QACb,iBAAiB;QACjB,gBAAgB;QAChB,sBAAsB;QACtB,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,cAAc;QACd,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,WAAW;QACX,SAAS;QACT,aAAa;QACb,oBAAoB;QACpB,UAAU;QACV,aAAa;QACb,UAAU;QACV,MAAM;QACN,UAAU;QACV,iBAAiB;QACjB,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,UAAU;QACV,OAAO;KACR;QACC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAC5C,OAAO;QACL,sDAAsD;QACtD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,YAAY;QACZ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,sDAAsD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzH,UAAU;QACV,EAAE;KACH,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/openapi/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAc,EAAE,aAA0C;IACpG,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI;QACjB,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,uBAAuB;QACvB,6BAA6B;QAC7B,kBAAkB;QAClB,kBAAkB;QAClB,sBAAsB;QACtB,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,aAAa;QACb,iBAAiB;QACjB,gBAAgB;QAChB,sBAAsB;QACtB,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,sBAAsB;QACtB,cAAc;QACd,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,WAAW;QACX,SAAS;QACT,aAAa;QACb,oBAAoB;QACpB,UAAU;QACV,aAAa;QACb,UAAU;QACV,MAAM;QACN,UAAU;QACV,iBAAiB;QACjB,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,UAAU;QACV,OAAO;KACR;QACC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAC5C,OAAO;QACL,sDAAsD;QACtD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,YAAY;QACZ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,sDAAsD,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzH,UAAU;QACV,EAAE;KACH,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC"}
@@ -1,6 +1,2 @@
1
1
  export declare function identifier(value: string, upper?: boolean): string;
2
- export declare class Names {
3
- private readonly used;
4
- reserve(name: string, location: string): string;
5
- }
6
- export declare function comment(value: unknown): string;
2
+ export { comment, Names } from '../core/names.js';
@@ -6,19 +6,5 @@ export function identifier(value, upper = false) {
6
6
  const result = first + name.slice(1);
7
7
  return /^\d/.test(result) ? `_${result}` : result;
8
8
  }
9
- export class Names {
10
- used = new Map();
11
- reserve(name, location) {
12
- const previous = this.used.get(name);
13
- if (previous !== undefined)
14
- throw new Error(`Generated name "${name}" collides between ${previous} and ${location}. Rename the schema or operationId.`);
15
- this.used.set(name, location);
16
- return name;
17
- }
18
- }
19
- export function comment(value) {
20
- if (typeof value !== 'string' || !value.trim())
21
- return '';
22
- return `/** ${value.replaceAll('*/', '* /').replace(/\r?\n/g, '\n * ')} */\n`;
23
- }
9
+ export { comment, Names } from '../core/names.js';
24
10
  //# sourceMappingURL=names.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/openapi/names.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,KAAK,GAAG,KAAK;IACrD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1I,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,IAAI,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC;AAED,MAAM,OAAO,KAAK;IACC,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,OAAO,CAAC,IAAY,EAAE,QAAgB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,QAAQ,KAAK,SAAS;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,sBAAsB,QAAQ,QAAQ,QAAQ,qCAAqC,CAAC,CAAC;QAC9H,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1D,OAAO,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/openapi/names.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,KAAK,GAAG,KAAK;IACrD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1I,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,IAAI,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC"}
@@ -6,6 +6,5 @@ export declare class Operations {
6
6
  render(): string;
7
7
  private media;
8
8
  private parameters;
9
- private flatParameter;
10
9
  private operation;
11
10
  }