Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 2.69 KB

README.md

File metadata and controls

72 lines (53 loc) · 2.69 KB
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.