prefix-matches

Find matching keys in a given object, for a given prefix string

Usage no npm install needed!

<script type="module">
  import prefixMatches from 'https://cdn.skypack.dev/prefix-matches';
</script>

README

Prefix Matches

Find matching keys in a given object, for a given prefix string

Warning: experimental

Installation

npm i --save prefix-matches

then, in your scripts:

const prefixMatches = require('prefix-matches')

Example

const prefixMatches = require('prefix-matches')

// Resolves simple cases
prefixMatches('w', {
    watch: 'watch things',
    build: 'build things'
}) // => [{ watch: 'watch things' }]

// Does not flatten result set
prefixMatches('w', {
    watch: {
        js: 'watch javascript',
        css: 'watch css'
    },
    build: 'build things'
}) // => [{ watch: { js: 'watch javascript', css: 'watch css' }}]

// Resolves nested prefixes
prefixMatches('w.j', {
    watch: {
        js: 'watch javascript',
        css: 'watch css'
    },
    write: {
        js: 'write javascript'
    }
}) // => [{ 'watch.js': 'watch javascript' }, { 'write.js': 'write javascript' }]

// ... and so on
prefixMatches('b.f.j', {
    build: {
        frontend: {
            js: 'build javascript',
            css: 'build css'
        }
    }
}) // => [{ 'build.frontend.js': 'build javascript' }]

Why?

To attempt better prefixing support for the package-scripts project.

Tests

A basic test suite has been authored in AVA, used for its terrifying speed. To run it:

npm test