@xpbytes/express-routes-archive
v3.0.0
Published
Utility class to register routes and dynamically generate their URL or path from anywhere in the express app
Downloads
11
Readme
Express Routes Archive
Utility class to register routes and dynamically generate their URL or path from anywhere in the express app.
Installation
yarn add @xpbytes/express-routes-archive
It has the following peer dependencies:
yarn add @types/express @types/express-serve-static-core @types/node -D
Usage
import { RoutesArchive } from '@xpbytes/express-routes-archive'
const root = new RoutesArchive()
root.register('foo', '/test')
root.register(
'bar',
(mountedAt: string, arg: any) => `${mountedAt}/test?bar=${arg}`
)
root.path('test')
// => /test
root.path('bar', 'my-arg')
// => /test?bar=my-arg
When you have a sub-router / controller, create a new RoutesArchive
, passing in the original and the mount path:
const up = new RoutesArchive('/level', root)
up.register('level', '/two')
up.register('penthouse', (mountedAt: string) => `${mountedAt}/over-9000`)
up.path('level')
// => /level/two
root.path('level')
// => /level/two
Use RoutesArchive#url(route, req)
to generate full urls instead of path only:
root.url('penthouse', req)
// => https://test.xpbytes.com/level/over-9000
Configuration
SSL_ENABLED
env to thruthy to make generated urlshttps
.SERVER_URL
env to mount the path onto that URL instead of the request hostname.