Sugar.js Utility Library

2.0.6 · active · verified Tue Apr 21

Sugar.js is a comprehensive JavaScript utility library that extends native object prototypes (e.g., String, Number, Array, Date) with additional methods for common operations. It provides functional programming utilities, robust date/time manipulation, and various helper functions. The current stable version is 2.0.6. While it offers polyfills, its primary design philosophy is to augment existing prototypes rather than providing standalone utility functions, which differentiates it from libraries like Lodash or Ramda. Releases appear to be driven by feature enhancements and bug fixes, with a major version bump from v1 to v2 bringing significant changes and requiring a dedicated upgrade path. It supports both browser and Node.js environments and ships with TypeScript type definitions.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to import the full Sugar library, a specific module, and an individual method using CommonJS `require` syntax (adapted for TypeScript). It showcases extensions to `Number`, `Array`, and `Date` prototypes, including locale loading, and basic string manipulation.

import Sugar = require('sugar');
import round = require('sugar/number/round');

// Demonstrate Number module extension
const num = 3.14159;
console.log(`Original number: ${num}`);
console.log(`Rounded to 2 decimal places: ${Sugar.Number.round(num, 2)}`);
console.log(`Ceiling: ${Sugar.Number.ceil(num)}`);

// Demonstrate individual method import
const valueToRound = 4.567;
console.log(`Value for direct round import: ${valueToRound}`);
console.log(`Rounded using direct import: ${round(valueToRound)}`);

// Demonstrate Array module extension
const arr = [1, 2, 3, 4, 5];
console.log(`Original array: ${arr}`);
console.log(`Array first element: ${Sugar.Array.first(arr)}`);
console.log(`Array last element: ${Sugar.Array.last(arr)}`);
console.log(`Array shuffled: ${Sugar.Array.shuffle(arr)}`);

// Demonstrate Date module and locale
require('sugar/locales/fr'); // Load French locale as a side effect
const today = new Date(); // Native Date object
console.log(`Today's date (default format): ${today.format()}`); // Sugar extends Date.prototype
console.log(`Today's date (French format): ${today.format('{Weekday}, {Month} {day}, {year}', 'fr')}`);

// Demonstrate chaining with prototype extensions
const originalString = '  hello world  ';
console.log(`Original string: "${originalString}"`);
const chainedResult = originalString.trim().capitalize();
console.log(`Chained string operation: "${chainedResult}"`);

view raw JSON →