├── .eslintignore ├── .eslintrc.json ├── .github ├── commit-convention.md └── workflows │ ├── main.yml │ ├── publish.yml │ └── release.yml ├── .gitignore ├── .npmignore ├── .prettierignore ├── .prettierrc.json ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── bin └── cli.mjs ├── build.config.ts ├── docs ├── .gitignore ├── README.md ├── index.html ├── index.md ├── mdocs.config.ts ├── package-lock.json ├── package.json └── template.md ├── package-lock.json ├── package.json ├── play ├── api-axios-config.ts ├── api-axios.ts ├── api-fetch.ts ├── api-types.ts └── test.ts ├── src ├── cli-start.ts ├── cli.ts ├── code-formatter.ts ├── code-gen-process.ts ├── commands │ └── generate-templates │ │ ├── configuration.ts │ │ ├── index.ts │ │ └── templates-gen-process.ts ├── component-type-name-resolver.ts ├── configuration.ts ├── constants.ts ├── errors.ts ├── index.ts ├── schema-components-map.ts ├── schema-parser │ ├── base-schema-parsers │ │ ├── array.ts │ │ ├── complex.ts │ │ ├── discriminator.ts │ │ ├── enum.ts │ │ ├── object.ts │ │ └── primitive.ts │ ├── complex-schema-parsers │ │ ├── all-of.ts │ │ ├── any-of.ts │ │ ├── not.ts │ │ └── one-of.ts │ ├── mono-schema-parser.ts │ ├── schema-formatters.ts │ ├── schema-parser-fabric.ts │ ├── schema-parser.ts │ ├── schema-utils.ts │ └── util │ │ └── enum-key-resolver.ts ├── schema-routes │ ├── schema-routes.ts │ └── util │ │ └── specific-arg-name-resolver.ts ├── schema-walker.ts ├── swagger-schema-resolver.ts ├── templates-worker.ts ├── translators │ ├── javascript.ts │ └── translator.ts ├── type-name-formatter.ts ├── types.ts └── util │ ├── file-system.ts │ ├── formatOptions.ts │ ├── id.ts │ ├── internal-case.ts │ ├── logger.ts │ ├── name-resolver.ts │ ├── object-assign.ts │ ├── pascal-case.ts │ ├── random.ts │ ├── request.ts │ └── sort-by-property.ts ├── swagger-typescript-api.config.ts ├── templates ├── README.md ├── base │ ├── README.md │ ├── data-contract-jsdoc.ejs │ ├── data-contracts.ejs │ ├── enum-data-contract.ejs │ ├── http-client.ejs │ ├── http-clients │ │ ├── axios-http-client.ejs │ │ └── fetch-http-client.ejs │ ├── interface-data-contract.ejs │ ├── object-field-jsdoc.ejs │ ├── route-docs.ejs │ ├── route-name.ejs │ ├── route-type.ejs │ └── type-data-contract.ejs ├── default │ ├── README.md │ ├── api.ejs │ ├── procedure-call.ejs │ └── route-types.ejs └── modular │ ├── README.md │ ├── api.ejs │ ├── procedure-call.ejs │ └── route-types.ejs └── tsconfig.json /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | build 3 | bin 4 | build.config.ts -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@hunghg255/eslint-config-ts"], 3 | "rules": { 4 | "verbatimModuleSyntax": "off" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.github/commit-convention.md: -------------------------------------------------------------------------------- 1 | ## Git Commit Message Convention 2 | 3 | > This is adapted from [Commit convention](https://www.conventionalcommits.org/en/v1.0.0/). 4 | 5 | #### TL;DR: 6 | 7 | Messages must be matched by the following regex: 8 | 9 | ``` js 10 | /^((feat|fix|docs|style|core|i18n|a11y|report|misc|cli|audits|improve|security|deprecated|refactor|perf|test|workflow|build|ci|chore|types|wip|release|deps?|merge|examples?|revert)(\(.+\))?(\:|\!\:)|(Merge|Revert|Version)) .{1,50}$/ 11 | ``` 12 | 13 | #### Examples 14 | 15 | Appears under "Features" header, `compiler` subheader: 16 | 17 | ``` 18 | feat(compiler): add 'comments' option 19 | ``` 20 | 21 | Appears under "Bug Fixes" header, `v-model` subheader, with a link to issue #28: 22 | 23 | ``` 24 | fix(v-model): handle events on blur 25 | 26 | close #28 27 | ``` 28 | 29 | Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation: 30 | 31 | ``` 32 | perf(core): improve vdom diffing by removing 'foo' option 33 | 34 | BREAKING CHANGE: The 'foo' option has been removed. 35 | ``` 36 | 37 | The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header. 38 | 39 | ``` 40 | revert: feat(compiler): add 'comments' option 41 | 42 | This reverts commit 667ecc1654a317a13331b17617d973392f415f02. 43 | ``` 44 | 45 | ### Full Message Format 46 | 47 | A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: 48 | 49 | ``` 50 | (): 51 | 52 | 53 | 54 |