
Zing
🐌 Zing is a C# style String formatter for JavaScript that empowers Strings with positional arguments - composite formatting. 🚀
📃 Table of Contents
🤖 Features
- ⚡ Quick formatting - Drop in
{0}
,{1}
placeholders and swap them instantly - 🛠 C#-style syntax - Familiar composite formatting for .NET devs in JS/TS
- 🎯 Positional arguments - Control exactly where each value lands
- 🛡 Safe fallback - Leaves unknown placeholders untouched
- 🧩 Lightweight utility - No dependencies, minimal footprint
- 🔄 Multi-replace - Handles all matching placeholders in one pass
- 📜 TypeScript-ready - Strong typing for cleaner code
- 🌍 Cross-platform - Works in browser and Node environments
ℹ️ NOTE
More information about composite formatting.
🕵🏼 Usage
Install it by executing any of the following, depending on your preferred package manager:
pnpm add @igorskyflyer/zing
yarn add @igorskyflyer/zing
npm i @igorskyflyer/zing
🤹🏼 API
zing(value: string, ...args: any[]): string
Formats the provided string in a C# style format, i.e. adds the ability to use positional arguments, like seen with String.Format
in C#.
value: string
=> The string to process that support positional parameters, i.e. zing('Hello {0} {1}', 'Igor', 'Dimitrijević')
would output Hello Igor Dimitrijević
.
The returned value is always a string
.
📝 Changelog
📑 The changelog is available here, CHANGELOG.md.
🪪 License
Licensed under the MIT license which is available here, MIT license.
💖 Support
Consider buying me a coffee. ☕

Thank you for supporting my efforts! 🙏😊
🧬 Related
@igorskyflyer/recursive-readdir
📖 Provides recursive readdir() and readdirSync() functions. 📁
📚 An npm package for fetching Windows registry keys. 🗝
🕶️ Reads a JSON file into a Map. 🌻
🥽 Provides ways of parsing UNC paths and checking whether they are valid. 🎱
@igorskyflyer/scrollend-polyfill
🛴 A performant and light (< 1KB) JavaScript polyfill for the scrollend Event. ⛸️
👨🏻💻 Author
Created by Igor Dimitrijević (@igorskyflyer).