@orval/solid-start 8.0.0-rc.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.
package/README.md ADDED
@@ -0,0 +1,117 @@
1
+ # @orval/solid-start
2
+
3
+ SolidStart client for Orval - generates type-safe API client code using SolidStart primitives.
4
+
5
+ ## Features
6
+
7
+ - ✅ Generates SolidStart `query()` for GET requests
8
+ - ✅ Generates SolidStart `action()` for mutations (POST, PUT, PATCH, DELETE)
9
+ - ✅ Type-safe API calls
10
+ - ✅ Full TypeScript support
11
+ - ✅ Works with SolidStart's server-side execution model
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @orval/solid-start
17
+ # or
18
+ yarn add @orval/solid-start
19
+ # or
20
+ pnpm add @orval/solid-start
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ In your Orval configuration file:
26
+
27
+ ```typescript
28
+ import { defineConfig } from 'orval';
29
+
30
+ export default defineConfig({
31
+ petstore: {
32
+ output: {
33
+ target: './src/api/endpoints.ts',
34
+ schemas: './src/api/model',
35
+ client: 'solid-start',
36
+ },
37
+ input: {
38
+ target: './petstore.yaml',
39
+ },
40
+ },
41
+ });
42
+ ```
43
+
44
+ ## Generated Code
45
+
46
+ For GET requests, Orval generates SolidStart queries:
47
+
48
+ ```typescript
49
+ export const PetstoreApi = {
50
+ getPets: query(async (limit?: number) => {
51
+ const response = await fetch(`/api/pets?limit=${limit}`, {
52
+ method: 'GET',
53
+ headers: { 'Content-Type': 'application/json' },
54
+ });
55
+ if (!response.ok) {
56
+ throw new Error(`HTTP error! status: ${response.status}`);
57
+ }
58
+ return response.json() as Promise<Pet[]>;
59
+ }, 'getPets'),
60
+ };
61
+ ```
62
+
63
+ For mutations (POST, PUT, PATCH, DELETE), Orval generates SolidStart actions:
64
+
65
+ ```typescript
66
+ export const PetstoreApi = {
67
+ createPet: action(async (pet: Pet) => {
68
+ const response = await fetch(`/api/pets`, {
69
+ method: 'POST',
70
+ headers: { 'Content-Type': 'application/json' },
71
+ body: JSON.stringify(pet),
72
+ });
73
+ if (!response.ok) {
74
+ throw new Error(`HTTP error! status: ${response.status}`);
75
+ }
76
+ return response.json() as Promise<Pet>;
77
+ }, 'createPet'),
78
+ };
79
+ ```
80
+
81
+ ## Using in Your SolidStart App
82
+
83
+ ```typescript
84
+ import { PetstoreApi } from './api/endpoints';
85
+
86
+ // In a component
87
+ function Pets() {
88
+ const pets = createAsync(() => PetstoreApi.getPets(10));
89
+
90
+ return (
91
+ <div>
92
+ <For each={pets()}>
93
+ {(pet) => <div>{pet.name}</div>}
94
+ </For>
95
+ </div>
96
+ );
97
+ }
98
+
99
+ // For mutations
100
+ function CreatePet() {
101
+ const createPet = useAction(PetstoreApi.createPet);
102
+
103
+ const handleSubmit = async (formData: FormData) => {
104
+ await createPet({ name: formData.get('name') as string });
105
+ };
106
+
107
+ return <form action={handleSubmit}>...</form>;
108
+ }
109
+ ```
110
+
111
+ ## Comparison with solid-query
112
+
113
+ - **@orval/solid-start**: Uses native SolidStart primitives (`query`, `action`) for server-side data fetching
114
+ - **@orval/solid-query**: Uses TanStack Solid Query (`createQuery`, `createMutation`) for client-side data management
115
+
116
+ Choose `solid-start` when you want to leverage SolidStart's built-in server functions and caching.
117
+ Choose `solid-query` when you need advanced client-side query management features like automatic refetching, optimistic updates, etc.
@@ -0,0 +1,12 @@
1
+ import { ClientBuilder, ClientDependenciesBuilder, ClientFooterBuilder, ClientGeneratorsBuilder, ClientHeaderBuilder, ClientTitleBuilder } from "@orval/core";
2
+
3
+ //#region src/index.d.ts
4
+ declare const getSolidStartDependencies: ClientDependenciesBuilder;
5
+ declare const generateSolidStartTitle: ClientTitleBuilder;
6
+ declare const generateSolidStartHeader: ClientHeaderBuilder;
7
+ declare const generateSolidStartFooter: ClientFooterBuilder;
8
+ declare const generateSolidStart: ClientBuilder;
9
+ declare const builder: () => () => ClientGeneratorsBuilder;
10
+ //#endregion
11
+ export { builder, builder as default, generateSolidStart, generateSolidStartFooter, generateSolidStartHeader, generateSolidStartTitle, getSolidStartDependencies };
12
+ //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs ADDED
@@ -0,0 +1,161 @@
1
+ import { Verbs, generateFormDataAndUrlEncodedFunction, generateMutatorConfig, generateMutatorRequestOptions, generateVerbImports, getIsBodyVerb, pascal, sanitize, toObjectString } from "@orval/core";
2
+
3
+ //#region src/index.ts
4
+ const SOLID_START_DEPENDENCIES = [{
5
+ exports: [
6
+ {
7
+ name: "query",
8
+ values: true
9
+ },
10
+ {
11
+ name: "action",
12
+ values: true
13
+ },
14
+ {
15
+ name: "cache",
16
+ values: true
17
+ },
18
+ {
19
+ name: "revalidate",
20
+ values: true
21
+ }
22
+ ],
23
+ dependency: "@solidjs/router"
24
+ }, {
25
+ exports: [{ name: "DeepNonNullable" }],
26
+ dependency: "@orval/core"
27
+ }];
28
+ const getSolidStartDependencies = () => SOLID_START_DEPENDENCIES;
29
+ const generateSolidStartTitle = (title) => {
30
+ return `${pascal(sanitize(title))}`;
31
+ };
32
+ const generateSolidStartHeader = ({ title, isRequestOptions, isMutator, isGlobalMutator }) => `
33
+ ${isRequestOptions && !isGlobalMutator ? `interface RequestOptions {
34
+ headers?: Record<string, string>;
35
+ signal?: AbortSignal;
36
+ }` : ""}
37
+
38
+ ${isRequestOptions && isMutator ? `type ThirdParameter<T extends (...args: any) => any> = T extends (
39
+ config: any,
40
+ httpClient: any,
41
+ args: infer P,
42
+ ) => any
43
+ ? P
44
+ : never;` : ""}
45
+
46
+ /**
47
+ * Cache Invalidation:
48
+ *
49
+ * Each query provides .key and .keyFor() for cache invalidation.
50
+ *
51
+ * Examples:
52
+ * // Invalidate all calls to a query
53
+ * revalidate(${title}.listPets.key);
54
+ *
55
+ * // Invalidate a specific call with arguments
56
+ * revalidate(${title}.showPetById.keyFor("pet-123", 1));
57
+ *
58
+ * // Invalidate multiple queries
59
+ * revalidate([${title}.listPets.key, ${title}.showPetById.keyFor("pet-123", 1)]);
60
+ */
61
+ export const ${title} = {
62
+ `;
63
+ const generateSolidStartFooter = () => {
64
+ return "};\n";
65
+ };
66
+ const generateImplementation = ({ headers, queryParams, operationName, response, mutator, body, props, verb, override, formData, formUrlEncoded, paramsSerializer }, { route, context }) => {
67
+ const isRequestOptions = override.requestOptions !== false;
68
+ const isFormData = !override.formData.disabled;
69
+ const isFormUrlEncoded = override.formUrlEncoded !== false;
70
+ const isExactOptionalPropertyTypes = !!context.output.tsconfig?.compilerOptions?.exactOptionalPropertyTypes;
71
+ const bodyForm = generateFormDataAndUrlEncodedFunction({
72
+ formData,
73
+ formUrlEncoded,
74
+ body,
75
+ isFormData,
76
+ isFormUrlEncoded
77
+ });
78
+ const dataType = response.definition.success || "unknown";
79
+ const isGetVerb = verb === Verbs.GET;
80
+ const isBodyVerb = getIsBodyVerb(verb);
81
+ if (mutator) {
82
+ const mutatorConfig = generateMutatorConfig({
83
+ route,
84
+ body,
85
+ headers,
86
+ queryParams,
87
+ response,
88
+ verb,
89
+ isFormData,
90
+ isFormUrlEncoded,
91
+ hasSignal: false,
92
+ isExactOptionalPropertyTypes
93
+ });
94
+ const requestOptions = isRequestOptions ? generateMutatorRequestOptions(override.requestOptions, mutator.hasThirdArg) : "";
95
+ const propsImplementation$1 = mutator.bodyTypeName && body.definition ? toObjectString(props, "implementation").replace(new RegExp(String.raw`(\w*):\s?${body.definition}`), `$1: ${mutator.bodyTypeName}<${body.definition}>`) : toObjectString(props, "implementation");
96
+ if (isGetVerb) return ` ${operationName}: query(async (${propsImplementation$1}) => {${bodyForm}
97
+ return ${mutator.name}<${dataType}>(
98
+ ${mutatorConfig},
99
+ fetch,
100
+ ${requestOptions});
101
+ }, "${operationName}"),
102
+ `;
103
+ else return ` ${operationName}: action(async (${propsImplementation$1}) => {${bodyForm}
104
+ return ${mutator.name}<${dataType}>(
105
+ ${mutatorConfig},
106
+ fetch,
107
+ ${requestOptions});
108
+ }, "${operationName}"),
109
+ `;
110
+ }
111
+ const propsImplementation = toObjectString(props, "implementation");
112
+ const queryParamsCode = queryParams ? `const queryString = new URLSearchParams(params as any).toString();
113
+ const url = queryString ? \`${route}?\${queryString}\` : \`${route}\`;` : `const url = \`${route}\`;`;
114
+ const headersCode = headers ? `headers: { ...headers, 'Content-Type': 'application/json' }` : `headers: { 'Content-Type': 'application/json' }`;
115
+ const bodyCode = isBodyVerb && body.implementation ? `,
116
+ body: JSON.stringify(${body.implementation})` : "";
117
+ if (isGetVerb) return ` ${operationName}: query(async (${propsImplementation}) => {${bodyForm}
118
+ ${queryParamsCode}
119
+ const response = await fetch(url, {
120
+ method: '${verb.toUpperCase()}',
121
+ ${headersCode}
122
+ });
123
+ if (!response.ok) {
124
+ throw new Error(\`HTTP error! status: \${response.status}\`);
125
+ }
126
+ return response.json() as Promise<${dataType}>;
127
+ }, "${operationName}"),
128
+ `;
129
+ else return ` ${operationName}: action(async (${propsImplementation}) => {${bodyForm}
130
+ ${queryParamsCode}
131
+ const response = await fetch(url, {
132
+ method: '${verb.toUpperCase()}',
133
+ ${headersCode}${bodyCode}
134
+ });
135
+ if (!response.ok) {
136
+ throw new Error(\`HTTP error! status: \${response.status}\`);
137
+ }
138
+ return response.json() as Promise<${dataType}>;
139
+ }, "${operationName}"),
140
+ `;
141
+ };
142
+ const generateSolidStart = (verbOptions, options) => {
143
+ const imports = generateVerbImports(verbOptions);
144
+ return {
145
+ implementation: generateImplementation(verbOptions, options),
146
+ imports
147
+ };
148
+ };
149
+ const solidStartClientBuilder = {
150
+ client: generateSolidStart,
151
+ header: generateSolidStartHeader,
152
+ dependencies: getSolidStartDependencies,
153
+ footer: generateSolidStartFooter,
154
+ title: generateSolidStartTitle
155
+ };
156
+ const builder = () => () => solidStartClientBuilder;
157
+ var src_default = builder;
158
+
159
+ //#endregion
160
+ export { builder, src_default as default, generateSolidStart, generateSolidStartFooter, generateSolidStartHeader, generateSolidStartTitle, getSolidStartDependencies };
161
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["SOLID_START_DEPENDENCIES: GeneratorDependency[]","getSolidStartDependencies: ClientDependenciesBuilder","generateSolidStartTitle: ClientTitleBuilder","generateSolidStartHeader: ClientHeaderBuilder","generateSolidStartFooter: ClientFooterBuilder","propsImplementation","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 generateFormDataAndUrlEncodedFunction,\n generateMutatorConfig,\n generateMutatorRequestOptions,\n generateVerbImports,\n type GeneratorDependency,\n type GeneratorOptions,\n type GeneratorVerbOptions,\n getIsBodyVerb,\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 exports: [{ name: 'DeepNonNullable' }],\n dependency: '@orval/core',\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 = ({\n title,\n isRequestOptions,\n isMutator,\n isGlobalMutator,\n}) => `\n${\n isRequestOptions && !isGlobalMutator\n ? `interface RequestOptions {\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}`\n : ''\n}\n\n${\n isRequestOptions && isMutator\n ? `type ThirdParameter<T extends (...args: any) => any> = T extends (\n config: any,\n httpClient: any,\n args: infer P,\n) => any\n ? P\n : never;`\n : ''\n}\n\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 isRequestOptions = override.requestOptions !== false;\n const isFormData = !override.formData.disabled;\n const isFormUrlEncoded = override.formUrlEncoded !== false;\n const isExactOptionalPropertyTypes =\n !!context.output.tsconfig?.compilerOptions?.exactOptionalPropertyTypes;\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 mutatorConfig = generateMutatorConfig({\n route,\n body,\n headers,\n queryParams,\n response,\n verb,\n isFormData,\n isFormUrlEncoded,\n hasSignal: false,\n isExactOptionalPropertyTypes,\n });\n\n const requestOptions = isRequestOptions\n ? generateMutatorRequestOptions(\n override.requestOptions,\n mutator.hasThirdArg,\n )\n : '';\n\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 if (isGetVerb) {\n // Use query for GET requests\n return ` ${operationName}: query(async (${propsImplementation}) => {${bodyForm}\n return ${mutator.name}<${dataType}>(\n ${mutatorConfig},\n fetch,\n ${requestOptions});\n }, \"${operationName}\"),\n`;\n } else {\n // Use action for mutations\n return ` ${operationName}: action(async (${propsImplementation}) => {${bodyForm}\n return ${mutator.name}<${dataType}>(\n ${mutatorConfig},\n fetch,\n ${requestOptions});\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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"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@orval/solid-start",
3
+ "version": "8.0.0-rc.6",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "exports": {
7
+ "import": {
8
+ "types": "./dist/index.d.mts",
9
+ "import": "./dist/index.mjs"
10
+ }
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "!dist/**/*.d.ts.map",
15
+ "!dist/**/*.d.mts.map"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsdown --config-loader unrun",
19
+ "dev": "tsdown --config-loader unrun --watch src",
20
+ "lint": "eslint .",
21
+ "clean": "rimraf .turbo dist",
22
+ "nuke": "rimraf .turbo dist node_modules"
23
+ },
24
+ "dependencies": {
25
+ "@orval/core": "8.0.0-rc.6"
26
+ },
27
+ "devDependencies": {
28
+ "eslint": "9.39.2",
29
+ "rimraf": "6.1.2",
30
+ "tsdown": "0.18.2",
31
+ "typescript": "5.9.3"
32
+ },
33
+ "stableVersion": "8.0.0-rc.5"
34
+ }