npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@inlinemanual/coerce

v1.3.0

Published

Configurable utility for coercing values.

Downloads

8

Readme

Coerce

Configurable utility for coercing values.

npm npm David Travis

How to use

Install the library via NPM:

npm install @InlineManual/coerce --save

Then use in your project like this:

import constructCoertor from 'coerce';

You can use predefined coercion configs:

var coerceText = constructCoertor('text');

coerceText();      // "" (empty string)
coerceText('aaa'); // "aaa"
coerceText(123);   // "123" (number converted to string)
coerceText(true);  // "true"

Or you can define your own coercion config:

var coerceCustom = constructCoertor({
  number: 'some number',
  text: function (input) {return 'aaa' + input;}
});

// if value is any other type than function, it will be returned for
// that type
coerceCustom(123); // "some number"

// function will be used to transform the input value
coerceCustom('bbb'); // "aaabbb"

// if value for any type is not defined, `null` will be used
coerceCustom(true); // null

Predefined coercion types

array

  • Converts null and unefined to an empty array ([]).
  • Leaves array unchanged.

date

Used to handle timestamps.

  • Leaves number unchanged.
  • Converts now to current timestamp.
  • Converts strings like -1 hour to relative timestamp. See parse-relative-time for more details.

element

  • Treats string as CSS selector, returns first matched element (if any).
  • Returns object unchanged.

empty

  • Converts undefined to true.
  • Converts null to true.
  • Converts array to true if empty, otherwise false.
  • Converts string to true if empty, otherwise false.
  • Converts number to true if value is 0, otherwise false.
  • Converts boolean to true if false, otherwise false. (Yeah, I know this is a bit confusing, but if you think about it, it makes sense.)
  • Converts object to true if it has no keys (e.g. {}), otherwise false.
  • Converts function to false.

acceptNumber

Same as empty, but always converts number to false.

rejectNumber

Same as empty, but always converts number to true.

number

  • Leaves number unchanged.
  • Converts undefined to 0.
  • Converts null to 0.
  • Converts false to 0, true to 1.
  • string
    • If empty, converts to 0.
    • If it is possible to parse the string to number, returns parsed number.
    • Otherwise returns null.

text

Alias: string

  • Leaves string unchanged.
  • Converts undefined to "" (empty string).
  • Converts null to "" (empty string).
  • Converts number to string.
  • Converts false to "false", true to "true" (textual representation).

function

  • Leaves function unchanged.
  • Converts all other types to a function that returns original input.

boolean

  • Leaves boolean unchanged.
  • Converts undefined and null to false.
  • Converts zero (0), empty string (""), empty array ([]) and empty object ({}) to false, otherwise to true.
  • Evaluates function and converts returned result to boolean.

Documentation

constructCoertor

Constructs function that will coerce any input according to config.

Parameters

  • config [(string | coercionConfig)] Identifier of pre-made coercion config (string) or custom config (object).

Returns Function

coercionConfigItem

Parameters

  • config (optional, default {})

coercionConfig

Parameters

  • config (optional, default {})

Bug reports, feature requests and contact

If you found any bugs, if you have feature requests or any questions, please, either file an issue at GitHub or send me an e-mail at [email protected].

License

Coerce is published under the MIT license.