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-generatoror via npm:
npm install typed-path-generatortyped-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/:discussIDrun typed-path-generator to generate a relative typescript file:
typed-path-generator ./your-config-file.yamlfurthermore, 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