Skip to content

About

Resolve an options object based on configuration.

Resources

Security policy

Stars

9 stars

Watchers

2 watching

Forks

Repository files navigation

resolve-options

NPM version Downloads Build Status Coveralls Status

Resolve an options object based on configuration.

Usage

// This example assumes a Vinyl file

var createResolver = require("resolve-options");

var config = {
  cwd: {
    type: "string",
    default: process.cwd,
  },
  sourcemaps: {
    type: "boolean",
    default: false,
  },
  since: {
    type: ["date", "number"],
  },
  read: {
    type: "boolean",
  },
};

var options = {
  sourcemaps: true,
  since: Date.now(),
  read: function (file) {
    return file.extname !== ".mp4";
  },
};

var resolver = createResolver(config, options);

var cwd = resolver.resolve("cwd", file);
// cwd === process.cwd()

var sourcemaps = resolver.resolve("sourcemaps", file);
// sourcemaps === true

var read = resolver.resolve("read", file);
// Given .mp4, read === false
// Given .txt, read === true

API

createResolver([config,] [options])

Takes a config object that describes the options to accept/resolve and an options object (usually passed by a user) to resolve against the config. Returns a resolver that contains a resolve method for realtime resolution of options.

The config object takes the following structure:

config {
  [optionKey] {
    type // string, array or function
    default // any value or function
  }
}

Each option is represented by its optionKey in the config object. It must be an object with a type property.

The type property must be a string, array or function which will be passed to the value-or-function module (functions will be bound to the resolver to allow for dependent options).

A default property may also be specified as a fallback if the option isn't available or is invalid. The default value can be any value or a function (functions will be bound to the resolver to allow for dependent defaults). Note: default values are not type-validated by the value-or-function module.

resolver.resolve(optionKey, [...arguments])

Takes an optionKey string and any number of arguments to apply if an option is a function. Returns the resolved value for the optionKey.

resolver.resolveConstant(optionKey)

Like resolve, but only returns a value if the option is constant (not a function).

Strict No LLM / No AI Policy

No LLMs for issues.

No LLMs for patches / pull requests.

No LLMs for comments on the bug tracker, including translation.

English is encouraged, but not required. You are welcome to post in your native language and rely on others to have their own translation tools of choice to interpret your words.

License

MIT

About

Resolve an options object based on configuration.

Resources

Security policy

Stars

9 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages