@orval/fetch 7.0.0 → 7.1.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.d.ts +2 -2
- package/dist/index.js +43 -19
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GeneratorVerbOptions, GeneratorOptions, ClientBuilder, ClientGeneratorsBuilder } from '@orval/core';
|
|
2
2
|
|
|
3
|
-
declare const generateRequestFunction: ({ queryParams, operationName, response, mutator, body, props, verb, formData, formUrlEncoded, override, }: GeneratorVerbOptions, { route }: GeneratorOptions) => string;
|
|
4
|
-
declare const fetchResponseTypeName: (operationName: string) => string;
|
|
3
|
+
declare const generateRequestFunction: ({ queryParams, operationName, response, mutator, body, props, verb, formData, formUrlEncoded, override, }: GeneratorVerbOptions, { route, context, pathRoute }: GeneratorOptions) => string;
|
|
4
|
+
declare const fetchResponseTypeName: (includeHttpStatusReturnType: boolean, definitionSuccessResponse: string, operationName: string) => string;
|
|
5
5
|
declare const generateClient: ClientBuilder;
|
|
6
6
|
declare const builder: () => () => ClientGeneratorsBuilder;
|
|
7
7
|
|
package/dist/index.js
CHANGED
|
@@ -39,8 +39,8 @@ var generateRequestFunction = ({
|
|
|
39
39
|
formData,
|
|
40
40
|
formUrlEncoded,
|
|
41
41
|
override
|
|
42
|
-
}, { route }) => {
|
|
43
|
-
var _a, _b;
|
|
42
|
+
}, { route, context, pathRoute }) => {
|
|
43
|
+
var _a, _b, _c;
|
|
44
44
|
const isRequestOptions = (override == null ? void 0 : override.requestOptions) !== false;
|
|
45
45
|
const isFormData = (override == null ? void 0 : override.formData) !== false;
|
|
46
46
|
const isFormUrlEncoded = (override == null ? void 0 : override.formUrlEncoded) !== false;
|
|
@@ -51,26 +51,49 @@ var generateRequestFunction = ({
|
|
|
51
51
|
),
|
|
52
52
|
"implementation"
|
|
53
53
|
);
|
|
54
|
+
const spec = context.specs[context.specKey].paths[pathRoute];
|
|
55
|
+
const parameters = ((_a = spec == null ? void 0 : spec[verb]) == null ? void 0 : _a.parameters) || [];
|
|
56
|
+
const explodeParameters = parameters.filter((parameter) => {
|
|
57
|
+
const { schema } = (0, import_core.resolveRef)(parameter, context);
|
|
58
|
+
return schema.in === "query" && schema.explode;
|
|
59
|
+
});
|
|
60
|
+
const explodeParametersNames = explodeParameters.map((parameter) => {
|
|
61
|
+
const { schema } = (0, import_core.resolveRef)(parameter, context);
|
|
62
|
+
return schema.name;
|
|
63
|
+
});
|
|
64
|
+
const explodeArrayImplementation = explodeParameters.length > 0 ? `const explodeParameters = ${JSON.stringify(explodeParametersNames)};
|
|
65
|
+
|
|
66
|
+
if (value instanceof Array && explodeParameters.includes(key)) {
|
|
67
|
+
value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
` : "";
|
|
71
|
+
const isExplodeParametersOnly = explodeParameters.length === parameters.length;
|
|
72
|
+
const nomalParamsImplementation = `if (value !== undefined) {
|
|
73
|
+
normalizedParams.append(key, value === null ? 'null' : value.toString())
|
|
74
|
+
}`;
|
|
54
75
|
const getUrlFnImplementation = `export const ${getUrlFnName} = (${getUrlFnProps}) => {
|
|
55
|
-
${queryParams ? `
|
|
56
|
-
const normalizedParams = new URLSearchParams();
|
|
76
|
+
${queryParams ? ` const normalizedParams = new URLSearchParams();
|
|
57
77
|
|
|
58
78
|
Object.entries(params || {}).forEach(([key, value]) => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
} else if (value !== undefined) {
|
|
62
|
-
normalizedParams.append(key, value.toString());
|
|
63
|
-
}
|
|
79
|
+
${explodeArrayImplementation}
|
|
80
|
+
${!isExplodeParametersOnly ? nomalParamsImplementation : ""}
|
|
64
81
|
});` : ""}
|
|
65
82
|
|
|
66
83
|
${queryParams ? `return normalizedParams.size ? \`${route}${"?${normalizedParams.toString()}"}\` : \`${route}\`` : `return \`${route}\``}
|
|
67
84
|
}
|
|
68
85
|
`;
|
|
69
|
-
const responseTypeName = fetchResponseTypeName(
|
|
70
|
-
|
|
86
|
+
const responseTypeName = fetchResponseTypeName(
|
|
87
|
+
override.fetch.includeHttpStatusReturnType,
|
|
88
|
+
response.definition.success,
|
|
89
|
+
operationName
|
|
90
|
+
);
|
|
91
|
+
const responseTypeImplementation = override.fetch.includeHttpStatusReturnType ? `export type ${responseTypeName} = {
|
|
71
92
|
data: ${response.definition.success || "unknown"};
|
|
72
93
|
status: number;
|
|
73
|
-
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
` : "";
|
|
74
97
|
const getUrlFnProperties = props.filter(
|
|
75
98
|
(prop) => prop.type === import_core.GetterPropType.PARAM || prop.type === import_core.GetterPropType.QUERY_PARAM || prop.type === import_core.GetterPropType.NAMED_PATH_PARAMS
|
|
76
99
|
).map((param) => {
|
|
@@ -82,9 +105,10 @@ ${queryParams ? `
|
|
|
82
105
|
}).join(",");
|
|
83
106
|
const args = `${(0, import_core.toObjectString)(props, "implementation")} ${isRequestOptions ? `options?: RequestInit` : ""}`;
|
|
84
107
|
const retrunType = `Promise<${responseTypeName}>`;
|
|
85
|
-
const globalFetchOptions = (0, import_core.isObject)(override == null ? void 0 : override.requestOptions) ? `${(
|
|
108
|
+
const globalFetchOptions = (0, import_core.isObject)(override == null ? void 0 : override.requestOptions) ? `${(_c = (_b = (0, import_core.stringify)(override == null ? void 0 : override.requestOptions)) == null ? void 0 : _b.slice(1, -1)) == null ? void 0 : _c.trim()}` : "";
|
|
86
109
|
const fetchMethodOption = `method: '${verb.toUpperCase()}'`;
|
|
87
|
-
const
|
|
110
|
+
const ignoreContentTypes = ["multipart/form-data"];
|
|
111
|
+
const fetchHeadersOption = body.contentType && !ignoreContentTypes.includes(body.contentType) ? `headers: { 'Content-Type': '${body.contentType}' }` : "";
|
|
88
112
|
const requestBodyParams = (0, import_core.generateBodyOptions)(
|
|
89
113
|
body,
|
|
90
114
|
isFormData,
|
|
@@ -103,7 +127,7 @@ ${queryParams ? `
|
|
|
103
127
|
)
|
|
104
128
|
const data = await res.json()
|
|
105
129
|
|
|
106
|
-
return { status: res.status, data }
|
|
130
|
+
${override.fetch.includeHttpStatusReturnType ? "return { status: res.status, data }" : `return data as ${responseTypeName}`}
|
|
107
131
|
`;
|
|
108
132
|
const customFetchResponseImplementation = `return ${mutator == null ? void 0 : mutator.name}<${retrunType}>(${fetchFnOptions});`;
|
|
109
133
|
const bodyForm = (0, import_core.generateFormDataAndUrlEncodedFunction)({
|
|
@@ -118,14 +142,14 @@ ${queryParams ? `
|
|
|
118
142
|
${bodyForm ? ` ${bodyForm}` : ""}
|
|
119
143
|
${fetchImplementationBody}}
|
|
120
144
|
`;
|
|
121
|
-
const implementation = `${responseTypeImplementation}
|
|
122
|
-
|
|
123
|
-
${getUrlFnImplementation}
|
|
145
|
+
const implementation = `${responseTypeImplementation}${getUrlFnImplementation}
|
|
124
146
|
${fetchImplementation}
|
|
125
147
|
`;
|
|
126
148
|
return implementation;
|
|
127
149
|
};
|
|
128
|
-
var fetchResponseTypeName = (operationName) =>
|
|
150
|
+
var fetchResponseTypeName = (includeHttpStatusReturnType, definitionSuccessResponse, operationName) => {
|
|
151
|
+
return includeHttpStatusReturnType ? `${operationName}Response` : definitionSuccessResponse;
|
|
152
|
+
};
|
|
129
153
|
var generateClient = (verbOptions, options) => {
|
|
130
154
|
const imports = (0, import_core.generateVerbImports)(verbOptions);
|
|
131
155
|
const functionImplementation = generateRequestFunction(verbOptions, options);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n camel,\n ClientBuilder,\n ClientGeneratorsBuilder,\n generateFormDataAndUrlEncodedFunction,\n generateVerbImports,\n GeneratorOptions,\n GeneratorVerbOptions,\n GetterPropType,\n stringify,\n toObjectString,\n generateBodyOptions,\n isObject,\n} from '@orval/core';\n\nexport const generateRequestFunction = (\n {\n queryParams,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n formData,\n formUrlEncoded,\n override,\n }: GeneratorVerbOptions,\n { route }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const isFormData = override?.formData !== false;\n const isFormUrlEncoded = override?.formUrlEncoded !== false;\n\n const getUrlFnName = camel(`get-${operationName}-url`);\n const getUrlFnProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n ),\n 'implementation',\n );\n const getUrlFnImplementation = `export const ${getUrlFnName} = (${getUrlFnProps}) => {\n${\n queryParams\n ? `\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });`\n : ''\n}\n\n ${\n queryParams\n ? `return normalizedParams.size ? \\`${route}${'?${normalizedParams.toString()}'}\\` : \\`${route}\\``\n : `return \\`${route}\\``\n }\n}\\n`;\n\n const responseTypeName = fetchResponseTypeName(operationName);\n const responseTypeImplementation = `export type ${responseTypeName} = {\n data: ${response.definition.success || 'unknown'};\n status: number;\n}`;\n\n const getUrlFnProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n )\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS) {\n return param.destructured;\n } else {\n return param.name;\n }\n })\n .join(',');\n\n const args = `${toObjectString(props, 'implementation')} ${isRequestOptions ? `options?: RequestInit` : ''}`;\n const retrunType = `Promise<${responseTypeName}>`;\n\n const globalFetchOptions = isObject(override?.requestOptions)\n ? `${stringify(override?.requestOptions)?.slice(1, -1)?.trim()}`\n : '';\n const fetchMethodOption = `method: '${verb.toUpperCase()}'`;\n const fetchHeadersOption = body.contentType\n ? `headers: { 'Content-Type': '${body.contentType}' }`\n : '';\n const requestBodyParams = generateBodyOptions(\n body,\n isFormData,\n isFormUrlEncoded,\n );\n const fetchBodyOption = requestBodyParams\n ? (isFormData && body.formData) || (isFormUrlEncoded && body.formUrlEncoded)\n ? `body: ${requestBodyParams}`\n : `body: JSON.stringify(${requestBodyParams})`\n : '';\n\n const fetchFnOptions = `${getUrlFnName}(${getUrlFnProperties}),\n {${globalFetchOptions ? '\\n' : ''} ${globalFetchOptions}\n ${isRequestOptions ? '...options,' : ''}\n ${fetchMethodOption}${fetchHeadersOption ? ',' : ''}\n ${fetchHeadersOption}${fetchBodyOption ? ',' : ''}\n ${fetchBodyOption}\n }\n`;\n const fetchResponseImplementation = `const res = await fetch(${fetchFnOptions}\n )\n const data = await res.json()\n\n return { status: res.status, data }\n`;\n const customFetchResponseImplementation = `return ${mutator?.name}<${retrunType}>(${fetchFnOptions});`;\n\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n const fetchImplementationBody = mutator\n ? customFetchResponseImplementation\n : fetchResponseImplementation;\n\n const fetchImplementation = `export const ${operationName} = async (${args}): ${retrunType} => {\n ${bodyForm ? ` ${bodyForm}` : ''}\n ${fetchImplementationBody}}\n`;\n\n const implementation =\n `${responseTypeImplementation}\\n\\n` +\n `${getUrlFnImplementation}\\n` +\n `${fetchImplementation}\\n`;\n\n return implementation;\n};\n\nexport const fetchResponseTypeName = (operationName: string) =>\n `${operationName}Response`;\n\nexport const generateClient: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const functionImplementation = generateRequestFunction(verbOptions, options);\n\n return {\n implementation: `${functionImplementation}\\n`,\n imports,\n };\n};\n\nconst fetchClientBuilder: ClientGeneratorsBuilder = {\n client: generateClient,\n dependencies: () => [],\n};\n\nexport const builder = () => () => fetchClientBuilder;\n\nexport default builder;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n camel,\n ClientBuilder,\n ClientGeneratorsBuilder,\n generateFormDataAndUrlEncodedFunction,\n generateVerbImports,\n GeneratorOptions,\n GeneratorVerbOptions,\n GetterPropType,\n stringify,\n toObjectString,\n generateBodyOptions,\n isObject,\n resolveRef,\n} from '@orval/core';\nimport {\n PathItemObject,\n ParameterObject,\n ReferenceObject,\n} from 'openapi3-ts/oas30';\n\nexport const generateRequestFunction = (\n {\n queryParams,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n formData,\n formUrlEncoded,\n override,\n }: GeneratorVerbOptions,\n { route, context, pathRoute }: GeneratorOptions,\n) => {\n const isRequestOptions = override?.requestOptions !== false;\n const isFormData = override?.formData !== false;\n const isFormUrlEncoded = override?.formUrlEncoded !== false;\n\n const getUrlFnName = camel(`get-${operationName}-url`);\n const getUrlFnProps = toObjectString(\n props.filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS ||\n prop.type === GetterPropType.QUERY_PARAM,\n ),\n 'implementation',\n );\n\n const spec = context.specs[context.specKey].paths[pathRoute] as\n | PathItemObject\n | undefined;\n const parameters =\n spec?.[verb]?.parameters || ([] as (ParameterObject | ReferenceObject)[]);\n\n const explodeParameters = parameters.filter((parameter) => {\n const { schema } = resolveRef<ParameterObject>(parameter, context);\n\n return schema.in === 'query' && schema.explode;\n });\n\n const explodeParametersNames = explodeParameters.map((parameter) => {\n const { schema } = resolveRef<ParameterObject>(parameter, context);\n\n return schema.name;\n });\n\n const explodeArrayImplementation =\n explodeParameters.length > 0\n ? `const explodeParameters = ${JSON.stringify(explodeParametersNames)};\n \n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n `\n : '';\n\n const isExplodeParametersOnly =\n explodeParameters.length === parameters.length;\n\n const nomalParamsImplementation = `if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }`;\n\n const getUrlFnImplementation = `export const ${getUrlFnName} = (${getUrlFnProps}) => {\n${\n queryParams\n ? ` const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n ${explodeArrayImplementation}\n ${!isExplodeParametersOnly ? nomalParamsImplementation : ''}\n });`\n : ''\n}\n\n ${\n queryParams\n ? `return normalizedParams.size ? \\`${route}${'?${normalizedParams.toString()}'}\\` : \\`${route}\\``\n : `return \\`${route}\\``\n }\n}\\n`;\n\n const responseTypeName = fetchResponseTypeName(\n override.fetch.includeHttpStatusReturnType,\n response.definition.success,\n operationName,\n );\n const responseTypeImplementation = override.fetch.includeHttpStatusReturnType\n ? `export type ${responseTypeName} = {\n data: ${response.definition.success || 'unknown'};\n status: number;\n}\\n\\n`\n : '';\n\n const getUrlFnProperties = props\n .filter(\n (prop) =>\n prop.type === GetterPropType.PARAM ||\n prop.type === GetterPropType.QUERY_PARAM ||\n prop.type === GetterPropType.NAMED_PATH_PARAMS,\n )\n .map((param) => {\n if (param.type === GetterPropType.NAMED_PATH_PARAMS) {\n return param.destructured;\n } else {\n return param.name;\n }\n })\n .join(',');\n\n const args = `${toObjectString(props, 'implementation')} ${isRequestOptions ? `options?: RequestInit` : ''}`;\n const retrunType = `Promise<${responseTypeName}>`;\n\n const globalFetchOptions = isObject(override?.requestOptions)\n ? `${stringify(override?.requestOptions)?.slice(1, -1)?.trim()}`\n : '';\n const fetchMethodOption = `method: '${verb.toUpperCase()}'`;\n const ignoreContentTypes = ['multipart/form-data'];\n const fetchHeadersOption =\n body.contentType && !ignoreContentTypes.includes(body.contentType)\n ? `headers: { 'Content-Type': '${body.contentType}' }`\n : '';\n const requestBodyParams = generateBodyOptions(\n body,\n isFormData,\n isFormUrlEncoded,\n );\n const fetchBodyOption = requestBodyParams\n ? (isFormData && body.formData) || (isFormUrlEncoded && body.formUrlEncoded)\n ? `body: ${requestBodyParams}`\n : `body: JSON.stringify(${requestBodyParams})`\n : '';\n\n const fetchFnOptions = `${getUrlFnName}(${getUrlFnProperties}),\n {${globalFetchOptions ? '\\n' : ''} ${globalFetchOptions}\n ${isRequestOptions ? '...options,' : ''}\n ${fetchMethodOption}${fetchHeadersOption ? ',' : ''}\n ${fetchHeadersOption}${fetchBodyOption ? ',' : ''}\n ${fetchBodyOption}\n }\n`;\n const fetchResponseImplementation = `const res = await fetch(${fetchFnOptions}\n )\n const data = await res.json()\n\n ${override.fetch.includeHttpStatusReturnType ? 'return { status: res.status, data }' : `return data as ${responseTypeName}`}\n`;\n const customFetchResponseImplementation = `return ${mutator?.name}<${retrunType}>(${fetchFnOptions});`;\n\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n const fetchImplementationBody = mutator\n ? customFetchResponseImplementation\n : fetchResponseImplementation;\n\n const fetchImplementation = `export const ${operationName} = async (${args}): ${retrunType} => {\n ${bodyForm ? ` ${bodyForm}` : ''}\n ${fetchImplementationBody}}\n`;\n\n const implementation =\n `${responseTypeImplementation}` +\n `${getUrlFnImplementation}\\n` +\n `${fetchImplementation}\\n`;\n\n return implementation;\n};\n\nexport const fetchResponseTypeName = (\n includeHttpStatusReturnType: boolean,\n definitionSuccessResponse: string,\n operationName: string,\n) => {\n return includeHttpStatusReturnType\n ? `${operationName}Response`\n : definitionSuccessResponse;\n};\n\nexport const generateClient: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const functionImplementation = generateRequestFunction(verbOptions, options);\n\n return {\n implementation: `${functionImplementation}\\n`,\n imports,\n };\n};\n\nconst fetchClientBuilder: ClientGeneratorsBuilder = {\n client: generateClient,\n dependencies: () => [],\n};\n\nexport const builder = () => () => fetchClientBuilder;\n\nexport default builder;\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orval/fetch",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -13,6 +13,6 @@
|
|
|
13
13
|
"lint": "eslint src/**/*.ts"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@orval/core": "7.
|
|
16
|
+
"@orval/core": "7.1.0"
|
|
17
17
|
}
|
|
18
18
|
}
|