Skip to content

Latest commit

 

History

History

strings

@thi.ng/strings

npm version npm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

About

Various higher-order, configurable string formatting & utility functions, some memoized. Please sources / docstrings for now.

Partially based on Clojure version of thi.ng/strf.

Status

STABLE - used in production

Installation

yarn add @thi.ng/strings

Package sizes (gzipped): ESM: 2.32 KB / CJS: 2.55 KB / UMD: 2.42 KB

Dependencies

Usage examples

Several demos in this repo's /examples directory are using this package.

A selection:

Screenshot Description Live demo Source
Basic crypto-currency candle chart with multiple moving averages plots Demo Source
Basic SPA example with atom-based UI router Demo Source
rstream based spreadsheet w/ S-expression formula DSL Demo Source
XML/HTML/SVG to hiccup/JS conversion Demo Source

API

Generated API docs

Basic usage examples

// create a custom string formatter
const fmt = defFormat([
    "Price: ",
    { usd: "$", gbp: "£", eur: "€" },
    float(2),
    " (",
    percent(2),
    " off)"
]);

// use format
fmt("usd", 1.2345, 0.5);
// Price: $1.23 (50.00% off)

fmt("eur", 1.2345, 0.25)
// Price: €1.23 (25.00% off)

General

  • defFormat
  • format
  • hstr
  • ignore
  • interpolate
  • str

Case

  • camel
  • capitalize
  • kebab
  • lower
  • snake
  • slugify
  • upper

Numeric & radix-based

  • float
  • floatFixedWidth
  • maybeParseFloat
  • maybeParseInt
  • percent
  • radix
  • uuid
  • B8 / B16 / B32 - binary / bitstring presets
  • U8 / U16 / U24 / U32 / U64 - hex format presets (unsigned values)

Padding / truncation

  • center
  • padLeft
  • padRight
  • truncate
  • truncateLeft
  • wrap
  • Z2 / Z3 / Z4 - zero-pad presets

Units

  • units - define new unit w/ magnitudes & suffixes
  • bits
  • bytes
  • grams
  • meters
  • seconds

String creation & editing

  • charRange
  • repeat
  • splice

Authors

Karsten Schmidt

License

© 2015 - 2020 Karsten Schmidt // Apache Software License 2.0