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

@visulima/fmt

v1.1.11

Published

Util.format-like string formatting utility.

Downloads

3,055

Readme

typescript-image npm-image license-image



Install

npm install @visulima/fmt
yarn add @visulima/fmt
pnpm add @visulima/fmt

Usage

import { format } from "@visulima/fmt";

const formatted = format("hello %s %j %d", ["world", [{ obj: true }, 4, { another: "obj" }]]);

console.log(formatted); // hello world [{"obj":true},4,{"another":"obj"}] NaN

format(fmt, parameters, [options])

fmt

A printf-like format string. Example: 'hello %s %j %d'

parameters

Array of values to be inserted into the format string. Example: ['world', {obj:true}]

options.stringify

Passing an options object as the third parameter with a stringify will mean any objects will be passed to the supplied function instead of an the internal tryStringify function. This can be useful when using augmented capability serializers such as fast-safe-stringify or fast-redact.

uses JSON.stringify instead of util.inspect, this means functions will not be serialized.

build

With the build function you can generate a format function that is optimized for your use case.

import { build } from "@visulima/fmt";

const format = build({
    formatters: {
        // Pass in whatever % interpolator you want, as long as it's a single character;
        // in this case, it's `t`.
        // The formatter should be a function that takes in a value and returns the formatted value.
        t: (time) => new Date(time).toLocaleString(),
    },
});

const formatted = format("hello %s at %t", ["world", Date.now()]);

console.log(formatted); // hello world at 1/1/1970, 1:00:00 AM

Format Specifiers

Format specifiers are dependent on the type of data-elements that are to be added to the string. The most commonly used format specifiers supported are:

| Specifier | Description | | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | %s | Converts all values except for BigInt, -0 and Object to a string. | | %d | Used to convert any value to Number of any type other than BigInt and Symbol. | | %i | Used for all values except BigInt and Symbol. | | %f | Used to convert a value to type Float. It does not support conversion of values of type Symbol. | | %j | Used to add JSON data. If a circular reference is present, the string ‘[Circular]’ is added instead. | | %o | Adds the string representation of an object. Note that it does not contain non-enumerable characteristics of the object. | | %O | Adds the string representation of an object. Note that it will contain all characteristics of the object, including non-enumerable ones. | | %c | Will parse basic CSS from the substitution subject like color: red into ANSI color codes. These codes will then be placed where the %c specifier is. Supported CSS properties are color, background-color, font-weight, font-style, text-decoration, text-decoration-color, and text-decoration-line. Unsupported CSS properties are ignored. An empty %c CSS string substitution will become an ANSI style reset. If color is disabled, %c is ignored. | | %% | Used to add the % sign. |

Benchmark

See benchmark

Supported Node.js Versions

Libraries in this ecosystem make the best effort to track Node.js’ release schedule. Here’s a post on why we think this is important.

Contributing

If you would like to help take a look at the list of issues and check our Contributing guild.

Note: please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Credits

License

The visulima fmt is open-sourced software licensed under the MIT