JSPM

@brycemarshall/string-format

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 220
  • Score
    100M100P100Q94562F
  • License MIT

A typescript port of Matt Esch's string-template package.

Package Exports

  • @brycemarshall/string-format

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@brycemarshall/string-format) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@brycemarshall/string-format

A Typescript port of Matt Esch's string-template library (original NPM Package at https://www.npmjs.com/package/string-template)

Installation

npm install @brycemarshall/string-format

The module exports the following two functions:

function stringFormat(format: string, ...args: any[]): string
function stringFormatc(format: string, inline?: boolean): string

Usage - stringFormat

A simple string formatting function based on named or indexed arguments

import { stringFormat } from '@brycemarshall/string-format';

// Format using an object hash with keys matching [0-9a-zA-Z]+
let greeting = stringFormat("Hello {name}, you have {count} unread messages", {
    name: "Robert",
    count: 12
})
// greeting -> "Hello Robert, you have 12 unread messages"

// Format using a number indexed array
let greeting = stringFormat("Hello {0}, you have {1} unread messages", ["Robert", 12])
// greeting -> "Hello Robert, you have 12 unread messages"


// Format using optional arguments
let greeting = stringFormat("Hello {0}, you have {1} unread messages",
     "Robert",
     12)
// greeting -> "Hello Robert, you have 12 unread messages"

// Escape {} pairs by using double {{}}
let text = stringFormat("{{0}}")
// text -> "{0}"

Usage - stringFormatc

@brycemarshall/string-format exposes two template compiling options for when you need the additional performance. Arguments passed to the compiled template are of the same structure as the main string-template function, so either a single object/array or a list of arguments.

import { stringFormatc } from '@brycemarshall/string-format';

let greetingTemplate = stringFormatc("Hello {0}, you have {1} unread messages")

let greeting = greetingTemplate("Robert", 12)
// -> "Hello Robert, you have 12 unread messages"

Passing a truthy second argument to compile will opt into using new Function to generate a function. The function returned contains a literal string concatenation statement, interleaving the correct arguments you have passed in.

import { stringFormatc } from '@brycemarshall/string-format';

let greetingTemplate = stringFormatc("Hello {0}, you have {1} unread messages", true)
// -> greetingTemplate generated using new Function

let greeting = greetingTemplate(["Robert", 12])
// -> "Hello Robert, you have 12 unread messages"

Contributors

  • Matt-Esch, Bryce Marshall

MIT Licenced