1.2.3 • Published 2 years ago

compose-paths v1.2.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Quickly throw together a few local paths and have them assigned to aliases or routes.

const { composePaths } = require('compose-paths')

const paths = composePaths(`

  ${__dirname}
    /src
      /html
        /templates      = TEMPLATES
        /pages          = PAGES

    /public             = PUBLIC
      /images           = IMAGES

`)

paths.TEMPLATES
// "/dir/name/src/html/templates"

paths.PUBLIC
// "/dir/name/public"

paths.aliases
// ["TEMPLATES", "PAGES", "PUBLIC", "IMAGES"]

compose-paths looks at the indentation-level of its input as the cue to concatenate lines together. Either tabs or spaces should be fine, so long as you're consistent.

More examples

Path Route (via aliases and zip)

const { composePaths, zip } = require('compose-paths')

const routes = composePaths(`
    /                   = HOME
    /about              = ABOUT
    /contact            = CONTACT
`)

const paths = composePaths(`
  ${__dirname}
    /src
      /html/pages
        /index.html     = HOME
        /about.html     = ABOUT
        /contact.html   = CONTACT
`)

const staticRoutes = zip(routes, paths)

staticRoutes.forEach(([route, path]) => {
  app.get(route, sendFile(path))
})

Path Route (directly)

const { composePaths } = require('compose-paths')

const pathFromRoute = composePaths(`

  ${__dirname}
    /src/html/pages
      /index.html        = /
      /about.html        = /about
      /contact.html      = /contact

`)

pathFromRoute['/']
// "/dir/name/src/html/pages/index.html"

pathFromRoute['/contact']
// "/dir/name/src/html/pages/contact.html"

pathFromRoute.aliases.forEach(route => {
  console.log(pathFromRoute[route])
})

That's it!

Credits

compose-paths was written by Conan Theobald.

Did you find this useful? If so, I like coffee ☕️ :)

License

MIT licensed: See LICENSE

1.2.3

2 years ago

1.2.2

3 years ago

1.2.0

3 years ago

1.1.1

4 years ago

1.1.3

4 years ago

1.2.1

3 years ago

1.1.2

4 years ago

1.1.0

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago