@orval/solid-start 8.4.1 → 8.5.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.mjs +16 -41
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -8
package/dist/index.mjs
CHANGED
|
@@ -47,7 +47,7 @@ export const ${title} = {
|
|
|
47
47
|
const generateSolidStartFooter = () => {
|
|
48
48
|
return "};\n";
|
|
49
49
|
};
|
|
50
|
-
const generateImplementation = ({ headers, queryParams, operationName, response, mutator, body, props, verb, override, formData, formUrlEncoded
|
|
50
|
+
const generateImplementation = ({ headers, queryParams, operationName, response, mutator, body, props, verb, override, formData, formUrlEncoded }, { route }) => {
|
|
51
51
|
const isFormData = !override.formData.disabled;
|
|
52
52
|
const isFormUrlEncoded = override.formUrlEncoded !== false;
|
|
53
53
|
const bodyForm = generateFormDataAndUrlEncodedFunction({
|
|
@@ -61,10 +61,9 @@ const generateImplementation = ({ headers, queryParams, operationName, response,
|
|
|
61
61
|
const isGetVerb = verb === Verbs.GET;
|
|
62
62
|
const isBodyVerb = getIsBodyVerb(verb);
|
|
63
63
|
if (mutator) {
|
|
64
|
-
const propsImplementation
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
const fetchMethodOption = `method: '${verb.toUpperCase()}'`;
|
|
64
|
+
const propsImplementation = mutator.bodyTypeName && body.definition ? toObjectString(props, "implementation").replace(new RegExp(String.raw`(\w*):\s?${body.definition}`), `$1: ${mutator.bodyTypeName}<${body.definition}>`) : toObjectString(props, "implementation");
|
|
65
|
+
const configParts = [`url: \`${route}\``, `method: '${verb.toUpperCase()}'`];
|
|
66
|
+
if (queryParams) configParts.push("params");
|
|
68
67
|
const ignoreContentTypes = ["multipart/form-data"];
|
|
69
68
|
const overrideHeaders = isObject(override.requestOptions) && override.requestOptions.headers ? Object.entries(override.requestOptions.headers).map(([key, value]) => `'${key}': \`${value}\``) : [];
|
|
70
69
|
const headersToAdd = [
|
|
@@ -72,28 +71,15 @@ const generateImplementation = ({ headers, queryParams, operationName, response,
|
|
|
72
71
|
...overrideHeaders,
|
|
73
72
|
...headers ? ["...headers"] : []
|
|
74
73
|
];
|
|
75
|
-
|
|
74
|
+
if (headersToAdd.length > 0) configParts.push(`headers: { ${headersToAdd.join(",")} }`);
|
|
76
75
|
const requestBodyParams = generateBodyOptions(body, isFormData, isFormUrlEncoded);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
${
|
|
81
|
-
${fetchBodyOption}
|
|
76
|
+
if (requestBodyParams) if (isFormData && body.formData || isFormUrlEncoded && body.formUrlEncoded) configParts.push(`data: ${requestBodyParams}`);
|
|
77
|
+
else configParts.push(`data: ${requestBodyParams}`);
|
|
78
|
+
const axiosConfig = `{
|
|
79
|
+
${configParts.join(",\n ")}
|
|
82
80
|
}`;
|
|
83
|
-
|
|
84
|
-
${
|
|
85
|
-
return ${mutator.name}<${dataType}>(
|
|
86
|
-
url,
|
|
87
|
-
${fetchOptions}
|
|
88
|
-
);
|
|
89
|
-
}, "${operationName}"),
|
|
90
|
-
`;
|
|
91
|
-
else return ` ${operationName}: action(async (${propsImplementation$1}) => {${bodyForm}
|
|
92
|
-
${queryParamsCode$1}
|
|
93
|
-
return ${mutator.name}<${dataType}>(
|
|
94
|
-
url,
|
|
95
|
-
${fetchOptions}
|
|
96
|
-
);
|
|
81
|
+
return ` ${operationName}: ${isGetVerb ? "query" : "action"}(async (${propsImplementation}) => {${bodyForm}
|
|
82
|
+
return ${mutator.name}<${dataType}>(${axiosConfig});
|
|
97
83
|
}, "${operationName}"),
|
|
98
84
|
`;
|
|
99
85
|
}
|
|
@@ -103,23 +89,13 @@ const generateImplementation = ({ headers, queryParams, operationName, response,
|
|
|
103
89
|
const headersCode = headers ? `headers: { ...headers, 'Content-Type': 'application/json' }` : `headers: { 'Content-Type': 'application/json' }`;
|
|
104
90
|
const bodyCode = isBodyVerb && body.implementation ? `,
|
|
105
91
|
body: JSON.stringify(${body.implementation})` : "";
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
method: '${verb.toUpperCase()}',
|
|
110
|
-
${headersCode}
|
|
111
|
-
});
|
|
112
|
-
if (!response.ok) {
|
|
113
|
-
throw new Error(\`HTTP error! status: \${response.status}\`);
|
|
114
|
-
}
|
|
115
|
-
return response.json() as Promise<${dataType}>;
|
|
116
|
-
}, "${operationName}"),
|
|
117
|
-
`;
|
|
118
|
-
else return ` ${operationName}: action(async (${propsImplementation}) => {${bodyForm}
|
|
92
|
+
const functionName = isGetVerb ? "query" : "action";
|
|
93
|
+
const fetchBodyPart = isGetVerb ? "" : bodyCode;
|
|
94
|
+
return ` ${operationName}: ${functionName}(async (${propsImplementation}) => {${bodyForm}
|
|
119
95
|
${queryParamsCode}
|
|
120
96
|
const response = await fetch(url, {
|
|
121
97
|
method: '${verb.toUpperCase()}',
|
|
122
|
-
${headersCode}${
|
|
98
|
+
${headersCode}${fetchBodyPart}
|
|
123
99
|
});
|
|
124
100
|
if (!response.ok) {
|
|
125
101
|
throw new Error(\`HTTP error! status: \${response.status}\`);
|
|
@@ -143,8 +119,7 @@ const solidStartClientBuilder = {
|
|
|
143
119
|
title: generateSolidStartTitle
|
|
144
120
|
};
|
|
145
121
|
const builder = () => () => solidStartClientBuilder;
|
|
146
|
-
var src_default = builder;
|
|
147
122
|
|
|
148
123
|
//#endregion
|
|
149
|
-
export { builder,
|
|
124
|
+
export { builder, builder as default, generateSolidStart, generateSolidStartFooter, generateSolidStartHeader, generateSolidStartTitle, getSolidStartDependencies };
|
|
150
125
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["SOLID_START_DEPENDENCIES: GeneratorDependency[]","getSolidStartDependencies: ClientDependenciesBuilder","generateSolidStartTitle: ClientTitleBuilder","generateSolidStartHeader: ClientHeaderBuilder","generateSolidStartFooter: ClientFooterBuilder","propsImplementation","queryParamsCode","headersToAdd: string[]","generateSolidStart: ClientBuilder","solidStartClientBuilder: ClientGeneratorsBuilder"],"sources":["../src/index.ts"],"sourcesContent":["import {\n type ClientBuilder,\n type ClientDependenciesBuilder,\n type ClientFooterBuilder,\n type ClientGeneratorsBuilder,\n type ClientHeaderBuilder,\n type ClientTitleBuilder,\n generateBodyOptions,\n generateFormDataAndUrlEncodedFunction,\n generateVerbImports,\n type GeneratorDependency,\n type GeneratorOptions,\n type GeneratorVerbOptions,\n getIsBodyVerb,\n isObject,\n pascal,\n sanitize,\n toObjectString,\n Verbs,\n} from '@orval/core';\n\nconst SOLID_START_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'query', values: true },\n { name: 'action', values: true },\n { name: 'cache', values: true },\n { name: 'revalidate', values: true },\n ],\n dependency: '@solidjs/router',\n },\n];\n\nexport const getSolidStartDependencies: ClientDependenciesBuilder = () =>\n SOLID_START_DEPENDENCIES;\n\nexport const generateSolidStartTitle: ClientTitleBuilder = (title) => {\n const sanTitle = sanitize(title);\n return pascal(sanTitle);\n};\n\nexport const generateSolidStartHeader: ClientHeaderBuilder = ({ title }) => `\n/**\n * Cache Invalidation:\n *\n * Each query provides .key and .keyFor() for cache invalidation.\n *\n * Examples:\n * // Invalidate all calls to a query\n * revalidate(${title}.listPets.key);\n *\n * // Invalidate a specific call with arguments\n * revalidate(${title}.showPetById.keyFor(\"pet-123\", 1));\n *\n * // Invalidate multiple queries\n * revalidate([${title}.listPets.key, ${title}.showPetById.keyFor(\"pet-123\", 1)]);\n */\nexport const ${title} = {\n`;\n\nexport const generateSolidStartFooter: ClientFooterBuilder = () => {\n return '};\\n';\n};\n\nconst generateImplementation = (\n {\n headers,\n queryParams,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n override,\n formData,\n formUrlEncoded,\n paramsSerializer,\n }: GeneratorVerbOptions,\n { route, context }: GeneratorOptions,\n) => {\n const isFormData = !override.formData.disabled;\n const isFormUrlEncoded = override.formUrlEncoded !== false;\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n const dataType = response.definition.success || 'unknown';\n const isGetVerb = verb === Verbs.GET;\n const isBodyVerb = getIsBodyVerb(verb);\n\n if (mutator) {\n const propsImplementation =\n mutator.bodyTypeName && body.definition\n ? toObjectString(props, 'implementation').replace(\n new RegExp(String.raw`(\\w*):\\s?${body.definition}`),\n `$1: ${mutator.bodyTypeName}<${body.definition}>`,\n )\n : toObjectString(props, 'implementation');\n\n // Build query params string\n const queryParamsCode = queryParams\n ? `const queryString = new URLSearchParams(params as any).toString();\n const url = queryString ? \\`${route}?\\${queryString}\\` : \\`${route}\\`;`\n : `const url = \\`${route}\\`;`;\n\n // Build fetch options using Fetch API signature\n const fetchMethodOption = `method: '${verb.toUpperCase()}'`;\n const ignoreContentTypes = ['multipart/form-data'];\n const overrideHeaders =\n isObject(override.requestOptions) && override.requestOptions.headers\n ? Object.entries(override.requestOptions.headers).map(\n ([key, value]) => `'${key}': \\`${value}\\``,\n )\n : [];\n\n const headersToAdd: string[] = [\n ...(body.contentType && !ignoreContentTypes.includes(body.contentType)\n ? [`'Content-Type': '${body.contentType}'`]\n : []),\n ...overrideHeaders,\n ...(headers ? ['...headers'] : []),\n ];\n\n const fetchHeadersOption =\n headersToAdd.length > 0 ? `headers: { ${headersToAdd.join(',')} }` : '';\n\n const requestBodyParams = generateBodyOptions(\n body,\n isFormData,\n isFormUrlEncoded,\n );\n const fetchBodyOption = requestBodyParams\n ? (isFormData && body.formData) ||\n (isFormUrlEncoded && body.formUrlEncoded) ||\n body.contentType === 'text/plain'\n ? `body: ${requestBodyParams}`\n : `body: JSON.stringify(${requestBodyParams})`\n : '';\n\n const fetchOptions = `{\n ${fetchMethodOption}${fetchHeadersOption ? ',' : ''}\n ${fetchHeadersOption}${fetchBodyOption ? ',' : ''}\n ${fetchBodyOption}\n }`;\n\n if (isGetVerb) {\n // Use query for GET requests\n return ` ${operationName}: query(async (${propsImplementation}) => {${bodyForm}\n ${queryParamsCode}\n return ${mutator.name}<${dataType}>(\n url,\n ${fetchOptions}\n );\n }, \"${operationName}\"),\n`;\n } else {\n // Use action for mutations\n return ` ${operationName}: action(async (${propsImplementation}) => {${bodyForm}\n ${queryParamsCode}\n return ${mutator.name}<${dataType}>(\n url,\n ${fetchOptions}\n );\n }, \"${operationName}\"),\n`;\n }\n }\n\n const propsImplementation = toObjectString(props, 'implementation');\n\n // Build query params string\n const queryParamsCode = queryParams\n ? `const queryString = new URLSearchParams(params as any).toString();\n const url = queryString ? \\`${route}?\\${queryString}\\` : \\`${route}\\`;`\n : `const url = \\`${route}\\`;`;\n\n // Build headers object\n const headersCode = headers\n ? `headers: { ...headers, 'Content-Type': 'application/json' }`\n : `headers: { 'Content-Type': 'application/json' }`;\n\n // Build body code\n const bodyCode =\n isBodyVerb && body.implementation\n ? `,\n body: JSON.stringify(${body.implementation})`\n : '';\n\n if (isGetVerb) {\n // Use query for GET requests\n return ` ${operationName}: query(async (${propsImplementation}) => {${bodyForm}\n ${queryParamsCode}\n const response = await fetch(url, {\n method: '${verb.toUpperCase()}',\n ${headersCode}\n });\n if (!response.ok) {\n throw new Error(\\`HTTP error! status: \\${response.status}\\`);\n }\n return response.json() as Promise<${dataType}>;\n }, \"${operationName}\"),\n`;\n } else {\n // Use action for mutations (POST, PUT, PATCH, DELETE)\n return ` ${operationName}: action(async (${propsImplementation}) => {${bodyForm}\n ${queryParamsCode}\n const response = await fetch(url, {\n method: '${verb.toUpperCase()}',\n ${headersCode}${bodyCode}\n });\n if (!response.ok) {\n throw new Error(\\`HTTP error! status: \\${response.status}\\`);\n }\n return response.json() as Promise<${dataType}>;\n }, \"${operationName}\"),\n`;\n }\n};\n\nexport const generateSolidStart: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const implementation = generateImplementation(verbOptions, options);\n\n return { implementation, imports };\n};\n\nconst solidStartClientBuilder: ClientGeneratorsBuilder = {\n client: generateSolidStart,\n header: generateSolidStartHeader,\n dependencies: getSolidStartDependencies,\n footer: generateSolidStartFooter,\n title: generateSolidStartTitle,\n};\n\nexport const builder = () => () => solidStartClientBuilder;\n\nexport default builder;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n type ClientBuilder,\n type ClientDependenciesBuilder,\n type ClientFooterBuilder,\n type ClientGeneratorsBuilder,\n type ClientHeaderBuilder,\n type ClientTitleBuilder,\n generateBodyOptions,\n generateFormDataAndUrlEncodedFunction,\n generateVerbImports,\n type GeneratorDependency,\n type GeneratorOptions,\n type GeneratorVerbOptions,\n getIsBodyVerb,\n isObject,\n pascal,\n sanitize,\n toObjectString,\n Verbs,\n} from '@orval/core';\n\nconst SOLID_START_DEPENDENCIES: GeneratorDependency[] = [\n {\n exports: [\n { name: 'query', values: true },\n { name: 'action', values: true },\n { name: 'cache', values: true },\n { name: 'revalidate', values: true },\n ],\n dependency: '@solidjs/router',\n },\n];\n\nexport const getSolidStartDependencies: ClientDependenciesBuilder = () =>\n SOLID_START_DEPENDENCIES;\n\nexport const generateSolidStartTitle: ClientTitleBuilder = (title) => {\n const sanTitle = sanitize(title);\n return pascal(sanTitle);\n};\n\nexport const generateSolidStartHeader: ClientHeaderBuilder = ({ title }) => `\n/**\n * Cache Invalidation:\n *\n * Each query provides .key and .keyFor() for cache invalidation.\n *\n * Examples:\n * // Invalidate all calls to a query\n * revalidate(${title}.listPets.key);\n *\n * // Invalidate a specific call with arguments\n * revalidate(${title}.showPetById.keyFor(\"pet-123\", 1));\n *\n * // Invalidate multiple queries\n * revalidate([${title}.listPets.key, ${title}.showPetById.keyFor(\"pet-123\", 1)]);\n */\nexport const ${title} = {\n`;\n\nexport const generateSolidStartFooter: ClientFooterBuilder = () => {\n return '};\\n';\n};\n\nconst generateImplementation = (\n {\n headers,\n queryParams,\n operationName,\n response,\n mutator,\n body,\n props,\n verb,\n override,\n formData,\n formUrlEncoded,\n }: GeneratorVerbOptions,\n { route }: GeneratorOptions,\n) => {\n const isFormData = !override.formData.disabled;\n const isFormUrlEncoded = override.formUrlEncoded !== false;\n const bodyForm = generateFormDataAndUrlEncodedFunction({\n formData,\n formUrlEncoded,\n body,\n isFormData,\n isFormUrlEncoded,\n });\n\n const dataType = response.definition.success || 'unknown';\n const isGetVerb = verb === Verbs.GET;\n const isBodyVerb = getIsBodyVerb(verb);\n\n if (mutator) {\n const propsImplementation =\n mutator.bodyTypeName && body.definition\n ? toObjectString(props, 'implementation').replace(\n new RegExp(String.raw`(\\w*):\\s?${body.definition}`),\n `$1: ${mutator.bodyTypeName}<${body.definition}>`,\n )\n : toObjectString(props, 'implementation');\n\n // Build config object for mutator\n const configParts: string[] = [\n `url: \\`${route}\\``,\n `method: '${verb.toUpperCase()}'`,\n ];\n\n // Add params for query parameters\n if (queryParams) {\n configParts.push('params');\n }\n\n // Add headers\n const ignoreContentTypes = ['multipart/form-data'];\n const overrideHeaders =\n isObject(override.requestOptions) && override.requestOptions.headers\n ? Object.entries(override.requestOptions.headers).map(\n ([key, value]) => `'${key}': \\`${value}\\``,\n )\n : [];\n\n const headersToAdd: string[] = [\n ...(body.contentType && !ignoreContentTypes.includes(body.contentType)\n ? [`'Content-Type': '${body.contentType}'`]\n : []),\n ...overrideHeaders,\n ...(headers ? ['...headers'] : []),\n ];\n\n if (headersToAdd.length > 0) {\n configParts.push(`headers: { ${headersToAdd.join(',')} }`);\n }\n\n // Add body/data for mutations\n const requestBodyParams = generateBodyOptions(\n body,\n isFormData,\n isFormUrlEncoded,\n );\n if (requestBodyParams) {\n if (\n (isFormData && body.formData) ||\n (isFormUrlEncoded && body.formUrlEncoded)\n ) {\n configParts.push(`data: ${requestBodyParams}`);\n } else {\n configParts.push(`data: ${requestBodyParams}`);\n }\n }\n\n const axiosConfig = `{\n ${configParts.join(',\\n ')}\n }`;\n\n const functionName = isGetVerb ? 'query' : 'action';\n\n return ` ${operationName}: ${functionName}(async (${propsImplementation}) => {${bodyForm}\n return ${mutator.name}<${dataType}>(${axiosConfig});\n }, \"${operationName}\"),\n`;\n }\n\n const propsImplementation = toObjectString(props, 'implementation');\n\n // Build query params string\n const queryParamsCode = queryParams\n ? `const queryString = new URLSearchParams(params as any).toString();\n const url = queryString ? \\`${route}?\\${queryString}\\` : \\`${route}\\`;`\n : `const url = \\`${route}\\`;`;\n\n // Build headers object\n const headersCode = headers\n ? `headers: { ...headers, 'Content-Type': 'application/json' }`\n : `headers: { 'Content-Type': 'application/json' }`;\n\n // Build body code\n const bodyCode =\n isBodyVerb && body.implementation\n ? `,\n body: JSON.stringify(${body.implementation})`\n : '';\n\n const functionName = isGetVerb ? 'query' : 'action';\n const fetchBodyPart = isGetVerb ? '' : bodyCode;\n\n return ` ${operationName}: ${functionName}(async (${propsImplementation}) => {${bodyForm}\n ${queryParamsCode}\n const response = await fetch(url, {\n method: '${verb.toUpperCase()}',\n ${headersCode}${fetchBodyPart}\n });\n if (!response.ok) {\n throw new Error(\\`HTTP error! status: \\${response.status}\\`);\n }\n return response.json() as Promise<${dataType}>;\n }, \"${operationName}\"),\n`;\n};\n\nexport const generateSolidStart: ClientBuilder = (verbOptions, options) => {\n const imports = generateVerbImports(verbOptions);\n const implementation = generateImplementation(verbOptions, options);\n\n return { implementation, imports };\n};\n\nconst solidStartClientBuilder: ClientGeneratorsBuilder = {\n client: generateSolidStart,\n header: generateSolidStartHeader,\n dependencies: getSolidStartDependencies,\n footer: generateSolidStartFooter,\n title: generateSolidStartTitle,\n};\n\nexport const builder = () => () => solidStartClientBuilder;\n\nexport default builder;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orval/solid-start",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"types": "./dist/index.d.mts",
|
|
6
7
|
"exports": {
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
"import": "./dist/index.mjs"
|
|
10
|
-
}
|
|
8
|
+
".": "./dist/index.mjs",
|
|
9
|
+
"./package.json": "./package.json"
|
|
11
10
|
},
|
|
12
11
|
"files": [
|
|
13
12
|
"dist",
|
|
@@ -18,16 +17,18 @@
|
|
|
18
17
|
"build": "tsdown --config-loader unrun",
|
|
19
18
|
"dev": "tsdown --config-loader unrun --watch src",
|
|
20
19
|
"lint": "eslint .",
|
|
20
|
+
"test": "vitest",
|
|
21
21
|
"clean": "rimraf .turbo dist",
|
|
22
22
|
"nuke": "rimraf .turbo dist node_modules"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@orval/core": "8.
|
|
25
|
+
"@orval/core": "8.5.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"eslint": "9.39.2",
|
|
29
29
|
"rimraf": "6.1.2",
|
|
30
|
-
"tsdown": "0.
|
|
31
|
-
"typescript": "5.9.3"
|
|
30
|
+
"tsdown": "0.20.3",
|
|
31
|
+
"typescript": "5.9.3",
|
|
32
|
+
"vitest": "4.0.18"
|
|
32
33
|
}
|
|
33
34
|
}
|