Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

qc-util

dhurlburtusa394MIT0.2.0

The utility module of the QC ecosystem.

printf, toBool, toDate, toInt, toNum, toStr, typeOf, qc

readme

qc-util

The utility module of the QC ecosystem. This module is intended to be isomorphic. That is, it is designed to run on node or in a modern browser.

Build Status

Install

npm install qc-util

To avoid potential issues, update npm before installing:

npm install npm -g

Node Usage

import { Arr, Bool, Dte, Mth, Num, Obj, Str, typeOf } from 'qc-util';

Arr.wrap('item'); // ['item'].
Bool.toBool('no'); // `Boolean('no')` returns `true` instead of `false`.
Dte.toDate('7/12/2016', { formats: 'm/d/Y' }); // => new Date(2016, 6, 12).
Num.toInt('1e4'); // `parseInt('1e4')` returns `1` instead of `10000`.
Num.toInt('Infinity'); // `parseInt('Infinity')` returns `NaN` instead of `null`.
Str.toStr(null); // `'' + null` returns `'null'` instead of `null`.

Mth.round(1234.5678, -2); // `1234.57`

var obj = {};
Obj.put(obj, 'name.first', 'foo');
// obj now is: `{ name: { first: 'foo' } }`
Obj.put(obj, 'name.last', 'bar');
// obj now is: `{ name: { first: 'foo', last: 'bar' } }`

null is Legitimate

In the QC ecosystem, null is considered a legitimate value. This aligns with how null is treated in JSON which is important because JavaScript objects/arrays are serialized to and from JSON.

As demonstrated in the below example, null is legitimate in JSON. However, undefined is not. A property assigned the undefined value is treated the same as if the property wasn't defined at all.

JSON.stringify({ foo: undefined }); // `'{}'`
JSON.stringify({ foo: null }); // `'{"foo":null}'`

Browser Usage

ES2015 (aka ES6) features are used where supported by Node. Since many browsers still don't support the same ES6 features that Node supports, the JavaScript source will need to be transpiled before using. The source is tested with Babel. After transpiling, it is recommended that the transpiled source be bundled into a single file. To test that the transpiled source runs correctly when bundled, Webpack is used.

changelog

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[Unreleased]

Nothing yet.

[0.1.0] - 2016-09-23

Fixed

  • Issue with dates on Feb 29th with year < 100.

[0.1.0] - 2016-09-09

Added

  • Support for the c format symbol to the Date.convert function.
  • Automatic parsing of most common ISO 8601 date formatted strings.
  • Support for the O and P format symbols to the Date.convert function which allows parsing of timezone offsets.

Fixed

  • Some documentation typos.