@orval/angular 6.11.0-alpha.1
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 +28 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +45 -0
- package/package.json +18 -0
package/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[](https://badge.fury.io/js/orval)
|
|
2
|
+
[](https://opensource.org/licenses/MIT)
|
|
3
|
+
[](https://github.com/anymaniax/orval/actions/workflows/tests.yaml)
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="./logo/orval-logo-horizontal.svg?raw=true" width="500" height="160" alt="orval - Restfull Client Generator" />
|
|
7
|
+
</p>
|
|
8
|
+
<h1 align="center">
|
|
9
|
+
Visit <a href="https://orval.dev" target="_blank">orval.dev</a> for docs, guides, API and beer!
|
|
10
|
+
</h1>
|
|
11
|
+
|
|
12
|
+
### Code Generation
|
|
13
|
+
|
|
14
|
+
`orval` is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in `yaml` or `json` formats.
|
|
15
|
+
|
|
16
|
+
`Generate`, `valid`, `cache` and `mock` in your React, Vue, Svelte and Angular applications all with your OpenAPI specification.
|
|
17
|
+
|
|
18
|
+
### Samples
|
|
19
|
+
|
|
20
|
+
You can find below some samples
|
|
21
|
+
|
|
22
|
+
- [react app](https://github.com/anymaniax/orval/tree/master/samples/react-app)
|
|
23
|
+
- [react query](https://github.com/anymaniax/orval/tree/master/samples/react-query)
|
|
24
|
+
- [svelte query](https://github.com/anymaniax/orval/tree/master/samples/svelte-query)
|
|
25
|
+
- [vue query](https://github.com/anymaniax/orval/tree/master/samples/vue-query)
|
|
26
|
+
- [react app with swr](https://github.com/anymaniax/orval/tree/master/samples/react-app-with-swr)
|
|
27
|
+
- [nx fastify react](https://github.com/anymaniax/orval/tree/master/samples/nx-fastify-react)
|
|
28
|
+
- [angular app](https://github.com/anymaniax/orval/tree/master/samples/angular-app)
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClientDependenciesBuilder, ClientTitleBuilder, ClientHeaderBuilder, ClientFooterBuilder, ClientBuilder, ClientGeneratorsBuilder } from '@orval/core';
|
|
2
|
+
|
|
3
|
+
declare const getAngularDependencies: ClientDependenciesBuilder;
|
|
4
|
+
declare const generateAngularTitle: ClientTitleBuilder;
|
|
5
|
+
declare const generateAngularHeader: ClientHeaderBuilder;
|
|
6
|
+
declare const generateAngularFooter: ClientFooterBuilder;
|
|
7
|
+
declare const generateAngular: ClientBuilder;
|
|
8
|
+
declare const builder: () => ClientGeneratorsBuilder;
|
|
9
|
+
|
|
10
|
+
export { builder, builder as default, generateAngular, generateAngularFooter, generateAngularHeader, generateAngularTitle, getAngularDependencies };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _core = require('@orval/core');var V=[{exports:[{name:"HttpClient",values:!0},{name:"HttpHeaders"},{name:"HttpParams"},{name:"HttpContext"}],dependency:"@angular/common/http"},{exports:[{name:"Injectable",values:!0}],dependency:"@angular/core"},{exports:[{name:"Observable",values:!0}],dependency:"rxjs"}],d=new Map,j= exports.getAngularDependencies =()=>V,M= exports.generateAngularTitle =n=>{let t=_core.sanitize.call(void 0, n);return`${_core.pascal.call(void 0, t)}Service`},U= exports.generateAngularHeader =({title:n,isRequestOptions:t,isMutator:a,isGlobalMutator:r,provideIn:s})=>`
|
|
2
|
+
${t&&!r?`type HttpClientOptions = {
|
|
3
|
+
headers?: HttpHeaders | {
|
|
4
|
+
[header: string]: string | string[];
|
|
5
|
+
};
|
|
6
|
+
context?: HttpContext;
|
|
7
|
+
observe?: any;
|
|
8
|
+
params?: HttpParams | {
|
|
9
|
+
[param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;
|
|
10
|
+
};
|
|
11
|
+
reportProgress?: boolean;
|
|
12
|
+
responseType?: any;
|
|
13
|
+
withCredentials?: boolean;
|
|
14
|
+
};`:""}
|
|
15
|
+
|
|
16
|
+
${t&&a?`// eslint-disable-next-line
|
|
17
|
+
type ThirdParameter<T extends (...args: any) => any> = T extends (
|
|
18
|
+
config: any,
|
|
19
|
+
httpClient: any,
|
|
20
|
+
args: infer P,
|
|
21
|
+
) => any
|
|
22
|
+
? P
|
|
23
|
+
: never;`:""}
|
|
24
|
+
|
|
25
|
+
@Injectable(${s?`{ providedIn: '${_core.isBoolean.call(void 0, s)?"root":s}' }`:""})
|
|
26
|
+
export class ${n} {
|
|
27
|
+
constructor(
|
|
28
|
+
private http: HttpClient,
|
|
29
|
+
) {}`,N= exports.generateAngularFooter =({operationNames:n})=>{let t=`};
|
|
30
|
+
|
|
31
|
+
`;return n.forEach(a=>{d.has(a)&&(t+=d.get(a)+`
|
|
32
|
+
`)}),t},_=({headers:n,queryParams:t,operationName:a,response:r,mutator:s,body:i,props:l,verb:o,override:e,formData:h,formUrlEncoded:O},{route:$,context:B})=>{var f,T;let p=(e==null?void 0:e.requestOptions)!==!1,c=(e==null?void 0:e.formData)!==!1,u=(e==null?void 0:e.formUrlEncoded)!==!1,y=!!((T=(f=B.tsconfig)==null?void 0:f.compilerOptions)!=null&&T.exactOptionalPropertyTypes),D=_core.VERBS_WITH_BODY.includes(o),C=_core.generateFormDataAndUrlEncodedFunction.call(void 0, {formData:h,formUrlEncoded:O,body:i,isFormData:c,isFormUrlEncoded:u}),g=r.definition.success||"unknown";if(d.set(a,`export type ${_core.pascal.call(void 0, a)}ClientResult = NonNullable<${g}>`),s){let b=_core.generateMutatorConfig.call(void 0, {route:$,body:i,headers:n,queryParams:t,response:r,verb:o,isFormData:c,isFormUrlEncoded:u,hasSignal:!1,isBodyVerb:D,isExactOptionalPropertyTypes:y}),A=p?_core.generateMutatorRequestOptions.call(void 0, e==null?void 0:e.requestOptions,s.hasThirdArg):"",E=s.bodyTypeName&&i.definition?_core.toObjectString.call(void 0, l,"implementation").replace(new RegExp(`(\\w*):\\s?${i.definition}`),`$1: ${s.bodyTypeName}<${i.definition}>`):_core.toObjectString.call(void 0, l,"implementation");return` ${a}<TData = ${g}>(
|
|
33
|
+
${E}
|
|
34
|
+
${p&&s.hasThirdArg?`options?: ThirdParameter<typeof ${s.name}>`:""}) {${C}
|
|
35
|
+
return ${s.name}<TData>(
|
|
36
|
+
${b},
|
|
37
|
+
this.http,
|
|
38
|
+
${A});
|
|
39
|
+
}
|
|
40
|
+
`}let H=_core.generateOptions.call(void 0, {route:$,body:i,headers:n,queryParams:t,response:r,verb:o,requestOptions:e==null?void 0:e.requestOptions,isFormData:c,isFormUrlEncoded:u,isAngular:!0,isExactOptionalPropertyTypes:y,hasSignal:!1});return` ${a}<TData = ${g}>(
|
|
41
|
+
${_core.toObjectString.call(void 0, l,"implementation")} ${p?`options?: HttpClientOptions
|
|
42
|
+
`:""} ): Observable<TData> {${C}
|
|
43
|
+
return this.http.${o}<TData>(${H});
|
|
44
|
+
}
|
|
45
|
+
`},W= exports.generateAngular =(n,t)=>{let a=_core.generateVerbImports.call(void 0, n);return{implementation:_(n,t),imports:a}},k={client:W,header:U,dependencies:j,footer:N,title:M},z= exports.builder =()=>k,ne= exports.default =z;exports.builder = z; exports.default = ne; exports.generateAngular = W; exports.generateAngularFooter = N; exports.generateAngularHeader = U; exports.generateAngularTitle = M; exports.getAngularDependencies = j;
|
package/package.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@orval/angular",
|
|
3
|
+
"version": "6.11.0-alpha.1",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsup ./src/index.ts --target node12 --minify --clean --dts --splitting",
|
|
12
|
+
"dev": "tsup ./src/index.ts --target node12 --clean --watch src",
|
|
13
|
+
"lint": "eslint src/**/*.ts"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@orval/core": "6.11.0-alpha.1"
|
|
17
|
+
}
|
|
18
|
+
}
|