Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/roziscoding/format
Simple library to format values with a tagged template string
https://github.com/roziscoding/format
Last synced: 2 months ago
JSON representation
Simple library to format values with a tagged template string
- Host: GitHub
- URL: https://github.com/roziscoding/format
- Owner: roziscoding
- License: gpl-3.0
- Created: 2020-07-31T00:48:48.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-10-11T12:45:22.000Z (about 1 year ago)
- Last Synced: 2024-09-19T00:29:11.948Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 424 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Format
Simple, 0 dependency library meant to make formatting strings easy
## Installation
`npm i @roziscoding/format`
OR
`yarn add @roziscoding/format`
## Usage
```typescript
import { getFormat, getFullFormat } from '@roziscoding/format'
import { currency, json, date, time } from '@roziscoding/format/strategies'const format = getFormat([currency, json, date, time], { locale: 'PT-br' }) // Does not load any strategy. Only uses passed ones
const fullFormat = getFullFormat({ locale: 'PT-br' }) // Loads all default strategiesconst name = 'Roz'
const age = 23
const balance = 50
const date = new Date()console.log(
format`Hi, ${name}! You are ${age} years old, and have ${{ USD: balance }} on ${{ date }} at ${{
time: date
}}!`
)
// Hi, Roz! You are 23 years old, and have US$ 50,00 on 30/07/2020 at 23:38:17!console.log(
fullFormat`Hi, ${name}! You are ${age} years old, and have ${{ USD: balance }} on ${{
date
}} at ${{
time: date
}}!`
)
// Hi, Roz! You are 23 years old, and have US$ 50,00 on 30/07/2020 at 23:38:17!
```## Options
So far, every stragy accepts a `locale` option, which should be passed in the template literal param, like so: `${{ USD: balance, locale: 'en-US' }}`. This can be set globally by passing a second parameter to `getFormat`, ou a single parameter to `getFullFormat`. If this isn't passed, `undefined` will be used.
### Strategy specific options
- **date**: Accepts every option accepted by `Date.prototype.toLocaleDateString`
- **time**: Accepts every option accepted by `Date.prototype.toLocaleTimeString`
- **currency**: Accepts every option accepted by `Number.prototype.toLocaleString`
- **json**:
- **indent**: Number param that should be passed to `JSON.stringify` as a third parameter, to### Contributing
- clone this
- do your changes
- add tests
- run `npm test`. Coverage must be 100%
- commit with gitmoji
- open a PR