1.0.0 • Published 7 years ago

glob-props v1.0.0

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
7 years ago

glob-props

Use /glob/strings/**/*.* as javascript object properties! :sparkles:

npm license travis status Build status Coverage Status David David Commitizen friendly semantic-release

NPM

Installation

npm install glob-props
yarn install glob-props

Usage

import { GlobProps } from 'glob-props'

// define a regular object with glob expressions for keys.
// the values are not constrained in any way.
const regularObject = {
  'src/**/*.*': 'isSrc',
  'dst/**/*.*': 'isDst'
};

const globber = GlobProps(obj);

// Accessing `globber` by a specific key returns:
// 1. A match on the first property that the key matches.
// 2. undefined when no match is found, just like regualrObject.

globber['src/index.ts']              // returns 'isSrc'
globber['src/deep/er/search.txt']    // returns 'isSrc'
globber['dst/index.ts']              // returns 'isDst'
globber['non-existant/glob/pattern'] // returns undefined

Implementation

glob-props creates an object proxy over a regularObject.

When accessed with a concrete string, the proxied get method performs a glob search, returning the value of the first glob that matches the concrete string.

Why

glob-props makes it trivially simple to create a many-to-one mapper or simple routers. The look up is reduced to an object access. And then again, why not?!

Development Tooling

License

Apache-2.0

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Support

Bugs, PRs, comments, suggestions welcomed!