@arcjet/sprintf
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-beta.9 • Public • Published
Arcjet Logo

@arcjet/sprintf

npm badge

Arcjet platform-independent replacement for util.format.

This package is platform-independent in order to support multiple runtimes in varying environments, such as Edge Runtime, Node.js, Bun, Deno, and Cloudflare Workers.

Installation

npm install -S @arcjet/sprintf

Example

import format from "@arcjet/sprintf";

format("Hello %s", "world") === "Hello world";
format("1 %i %d", 2, 3.0) === "1 2 3";

Substitutions

Substitutions will be made for the following character sequences if the matching argument conforms to the type. For example, "%d" will only be replaced by a number, not a string or object.

Object substitution supports any value that is not undefined.

  • %d | %f - Replaced if provided with a number.
  • %i - Replaced if provided with a number after Math.floor is called on it.
  • %O | %o | %j - Replaced if provided with any value after JSON.stringify is called on it. Objects with circular references will be replaced with [Circular]. Functions will be replaced with the function name or <anonymous> if unnamed.
  • %s - Replaced if provided with a string.
  • %% - Replaced by the literal % character.

Implementation

This implementation of this library is based on quick-format-unescaped, which is licensed MIT with licenses included in our source code.

The goal of this library is to be more restrictive than quick-format-unescaped while maintaining as much compatibility as possible, since pino uses it to format strings.

License

Licensed under the Apache License, Version 2.0.

Package Sidebar

Install

npm i @arcjet/sprintf

Homepage

arcjet.com

Weekly Downloads

12,336

Version

1.0.0-beta.9

License

Apache-2.0

Unpacked Size

21.9 kB

Total Files

5

Last publish

Collaborators

  • blaine-arcjet
  • davidmytton
  • wooorm-arcjet