globrex
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/globrex package

    0.1.2 • Public • Published
    globrex

    globrex

    Simple but powerful glob to regular expression compiler.

    Install

    npm install globrex --save
    

    Core Features

    • 💪 extended globbing: transform advance ExtGlob features
    • 📦 simple: no dependencies
    • 🛣️ paths: split paths into multiple RegExp segments

    Usage

    const globrex = require('globrex');
     
    const result = globrex('p*uck')
    // => { regex: /^p.*uck$/, string: '^p.*uck$', segments: [ /^p.*uck$/ ] }
     
    result.regex.test('pluck'); // true

    API

    globrex(glob, options)

    Type: function
    Returns: Object

    Transform globs intp regular expressions. Returns object with the following properties:

    regex

    Type: RegExp

    JavaScript RegExp instance.

    Note: Read more about how to use RegExp on MDN.

    path

    This property only exists if the option filepath is true.

    Note: filepath is false by default

    path.segments

    Type: Array

    Array of RegExp instances seperated by /. This can be usable when working with file paths or urls.

    Example array could be:

    [ /^foo$/, /^bar$/, /^([^\/]*)$/, '^baz\\.(md|js|txt)$' ]

    path.regex

    Type: RegExp

    JavaScript RegExp instance build for testign against paths. The regex have different path seperators depending on host OS.

    glob

    Type: String

    Glob string to transform.

    options.extended

    Type: Boolean
    Default: false

    Enable all advanced features from extglob.

    Matching so called "extended" globs pattern like single character matching, matching ranges of characters, group matching, etc.

    Note: Interprets [a-d] as [abcd]. To match a literal -, include it as first or last character.

    options.globstar

    Type: Boolean
    Default: false

    When globstar is false globs like '/foo/*' are transformed to the following '^\/foo\/.*$' which will match any string beginning with '/foo/'.

    When the globstar option is true, the same '/foo/*' glob is transformed to '^\/foo\/[^/]*$' which will match any string beginning with '/foo/' that does not have a '/' to the right of it. '/foo/*' will match: '/foo/bar', '/foo/bar.txt' but not '/foo/bar/baz' or '/foo/bar/baz.txt'.

    Note: When globstar is true, '/foo/**' is equivelant to '/foo/*' when globstar is false.

    options.strict

    Type: Boolean
    Default: false

    Be forgiving about mutiple slashes, like /// and make everything after the first / optional. This is how bash glob works.

    options.flags

    Type: String
    Default: ''

    RegExp flags (e.g. 'i' ) to pass to the RegExp constructor.

    options.filepath

    Type: Boolean
    Default: false

    Parse input strings as it was a file path for special path related features. This feature only makes sense if the input is a POSIX path like /foo/bar/hello.js or URLs.

    When true the returned object will have an additional path object.

    • segment: Array containing a RegExp object for each path segment.
    • regex: OS specific file path RegExp. Path seperator used is based on the operating system.
    • globstar: Regex string used to test for globstars.

    Note: Please only use forward-slashes in file path glob expressions Though windows uses either / or \ as its path separator, only / characters are used by this glob implementation. You must use forward-slashes only in glob expressions. Back-slashes will always be interpreted as escape characters, not path separators.

    References

    Learn more about advanced globbing here

    License

    MIT © Terkel Gjervig

    Install

    npm i globrex

    DownloadsWeekly Downloads

    465,679

    Version

    0.1.2

    License

    MIT

    Unpacked Size

    14.2 kB

    Total Files

    4

    Last publish

    Collaborators

    • terkelg