Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
The 'util' package is a core Node.js module that provides utilities for programmatic use in JavaScript. It includes a collection of helper functions for various tasks such as formatting strings, inspecting objects, and using inheritance.
format
Formats a string using placeholders and returns it. Similar to printf in C.
const util = require('util');
console.log(util.format('%s:%s', 'foo', 'bar', 'baz')); // 'foo:bar baz'
inspect
Returns a string representation of an object for debugging purposes, with options to show hidden properties and control the depth of inspection.
const util = require('util');
console.log(util.inspect({ foo: 'bar' }, { showHidden: false, depth: null }));
inherits
Allows one constructor to inherit the prototype methods from another, a utility for implementing object-oriented inheritance.
const util = require('util');
function Base() {}
function Derived() {}
util.inherits(Derived, Base);
promisify
Converts a callback-based function to a function that returns a promise, facilitating the use of async/await.
const util = require('util');
const fs = require('fs');
const readFileAsync = util.promisify(fs.readFile);
readFileAsync('example.txt', 'utf8').then(console.log).catch(console.error);
Lodash is a utility library offering a wide range of methods for manipulating objects, arrays, strings, etc. It's more comprehensive than 'util' but doesn't include some of the Node.js-specific utilities like promisify.
Underscore.js is a utility library similar to Lodash, providing functional programming helpers without extending any built-in objects. It's less feature-rich compared to Lodash and doesn't include Node.js-specific utilities.
Chalk is a library for styling terminal strings. It doesn't offer the broad utility functions of 'util' but focuses on a specific area of string styling which 'util' doesn't cover.
Bluebird is a library focused on providing advanced features for promises, such as cancellation, progress, and long stack traces. It complements 'util' by enhancing promise functionality beyond what 'util.promisify' offers.
Node.js's util module for all engines.
This implements the Node.js util
module for environments that do not have it, like browsers.
You usually do not have to install util
yourself. If your code runs in Node.js, util
is built in. If your code runs in the browser, bundlers like browserify or webpack (up to version 4 -- see this documentation for how to include polyfills like util
in webpack 5+) also include the util
module.
But if none of those apply, with npm do:
npm install util
var util = require('util')
var EventEmitter = require('events')
function MyClass() { EventEmitter.call(this) }
util.inherits(MyClass, EventEmitter)
The util
module uses ES5 features. If you need to support very old browsers like IE8, use a shim like es5-shim
. You need both the shim and the sham versions of es5-shim
.
To use util.promisify
and util.callbackify
, Promises must already be available. If you need to support browsers like IE11 that do not support Promises, use a shim. es6-promise is a popular one but there are many others available on npm.
See the Node.js util docs. util
currently supports the Node 8 LTS API. However, some of the methods are outdated. The inspect
and format
methods included in this module are a lot more simple and barebones than the ones in Node.js.
PRs are very welcome! The main way to contribute to util
is by porting features, bugfixes and tests from Node.js. Ideally, code contributions to this module are copy-pasted from Node.js and transpiled to ES5, rather than reimplemented from scratch. Matching the Node.js code as closely as possible makes maintenance simpler when new changes land in Node.js.
This module intends to provide exactly the same API as Node.js, so features that are not available in the core util
module will not be accepted. Feature requests should instead be directed at nodejs/node and will be added to this module once they are implemented in Node.js.
If there is a difference in behaviour between Node.js's util
module and this module, please open an issue!
0.12.5
safe-buffer
dependency to a dev-only dependency. (@goto-bus-stop in e84cfd5)FAQs
Node.js's util module for all engines
The npm package util receives a total of 25,412,128 weekly downloads. As such, util popularity was classified as popular.
We found that util demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
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.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.