Skip to content

LeetCode-OpenSource/typed-path-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‡ typed-path-generator

Convert path /user/:userID to (params: { userID: string | number }) => string

GitHub license PRs Welcome code style: prettier npm version

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.

Quick Start

Install

using yarn:

yarn add typed-path-generator

or via npm:

npm install typed-path-generator

Config paths

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

Generate code

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
Options:
 -V, --version output the version number -P, --prettier [path] specify the config path of Prettier -h, --help output usage information 

About

πŸ‡ A more effective way to handle path parameters, which works perfectly with Typescript

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5