Socket
Socket
Sign inDemoInstall

resolve-options

Package Overview
Dependencies
1
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    resolve-options

Resolve an options object based on configuration.


Version published
Weekly downloads
1.8M
increased by3.49%
Maintainers
1
Install size
18.4 kB
Created
Weekly downloads
 

Package description

What is resolve-options?

The resolve-options npm package is designed to help developers manage and resolve configuration options for their applications or libraries. It provides a structured way to define defaults, validate types, and handle option resolution logic in a centralized manner.

What are resolve-options's main functionalities?

Defining and resolving options

This feature allows developers to define a schema for options including types and default values, and then resolve them against user-provided values. The example shows how to define a simple configuration and resolve it.

const resolveOptions = require('resolve-options');

const config = {
  option: {
    type: 'string',
    default: 'default value'
  }
};

const resolved = resolveOptions(config, { option: 'custom value' });
console.log(resolved.option); // Outputs: 'custom value'

Type validation

This feature ensures that the options provided by the user match the expected type defined in the configuration schema. The example demonstrates type validation where a type mismatch throws an error.

const resolveOptions = require('resolve-options');

const config = {
  option: {
    type: 'number',
    default: 10
  }
};

try {
  const resolved = resolveOptions(config, { option: 'not a number' });
} catch (error) {
  console.error(error); // Outputs: Error indicating the type mismatch
}

Other packages similar to resolve-options

Changelog

Source

2.0.0 (2022-06-24)

⚠ BREAKING CHANGES

  • Normalize repository, dropping node <10.13 support (#5)

Features

  • Add resolveConstant method on a resolver (#3) (02439c4)

Miscellaneous Chores

  • Normalize repository, dropping node <10.13 support (#5) (0ddd042)

Readme

Source

resolve-options

NPM version Downloads Build Status AppVeyor Build Status Coveralls Status Gitter chat

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.

License

MIT

Keywords

FAQs

Last updated on 19 Aug 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc