Convert path /user/:userID
to (params: { userID: string | number }) => string
With Typescript, handling path parameters could be very frustrating. Because there is no type checking for path parameters which is only a string
type, we have to define it manually in an error-prone way. To free us from those work, typed-path-generator
was created. By pre-processing the path string, typed-path-generator
will extract the type info from path parameters and generate a well defined Typescript file.
using yarn:
yarn add typed-path-generator
or via npm:
npm install typed-path-generator
typed-path-generator
using YAML as configuration file. Here's an example:
options:
variableName:
# Used to customize the export variables of generated file.
# import { path, to } from './generated-file.ts'
# Optional, default is `staticPath`
staticPath: path
# Optional, default is `pathFactory`
pathFactory: to
# Optional, default is `ParamsInterface`
ParamsInterface: Params
paths:
# type URL = string // any valid URL path that path-to-regexp understands. see https://github.com/pillarjs/path-to-regexp for more details.
# interface Paths {
# [key: string]: URL | Paths
# }
user: /user/:userID
settings:
emails: /settings/emails
discuss:
list: /discuss
detail: /discuss/:discussID
run typed-path-generator
to generate a relative typescript file:
typed-path-generator ./your-config-file.yaml
furthermore, you can use glob patterns to specify a group of configuration files:
typed-path-generator ./packages/**/route.yaml
-V, --version output the version number
-P, --prettier [path] specify the config path of Prettier
-h, --help output usage information