@arcjet/sprintf
v1.0.0-alpha.30
Published
Arcjet platform-independent replacement for util.format
Downloads
13,418
Readme
@arcjet/sprintf
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 afterMath.floor
is called on it.%O
|%o
|%j
- Replaced if provided with any value afterJSON.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.