Skip to content

Parse and stringify comma-separated tokens

License

Notifications You must be signed in to change notification settings

wooorm/comma-separated-tokens

Repository files navigation

comma-separated-tokens

Build Coverage Downloads Size

Parse and stringify comma-separated tokens.

Contents

What is this?

This is a tiny package that can parse and stringify comma-separated tokens, as used for example in the HTML accept attribute, according to the WHATWG spec.

When should I use this?

This package is rather niche, it’s low-level and particularly useful when working with hast.

Install

This package is ESM only. In Node.js (version 14.14+, 16.0+), install with npm:

npm install comma-separated-tokens

In Deno with esm.sh:

import {parse, stringify} from 'https://esm.sh/comma-separated-tokens@2'

In browsers with esm.sh:

<script type="module">
  import {parse, stringify} from 'https://esm.sh/comma-separated-tokens@2?bundle'
</script>

Use

import {parse, stringify} from 'comma-separated-tokens'

parse(' a ,b,,d d ') //=> ['a', 'b', '', 'd d']
stringify(['a', 'b', '', 'd d']) //=> 'a, b, , d d'

API

This package exports the identifier parse and stringify. There is no default export.

parse(value)

Parse commma-separated tokens (string) to an array of strings (Array<string>), according to the WHATWG spec.

stringify(values[, options])

Serialize an array of strings or numbers (Array<string|number>) to comma-separated tokens (string). Handles empty items at start or end correctly.

👉 Note: it’s not possible to specify initial or final whitespace per value.

options

Configuration (optional).

options.padLeft

Whether to pad a space before a token (boolean, default: true).

options.padRight

Whether to pad a space after a token (boolean, default: false).

Types

This package is fully typed with TypeScript. It exports the additional type Options.

Compatibility

This package is at least compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+ and 16.0+. It also works in Deno and modern browsers.

Related

Contribute

Yes please! See How to Contribute to Open Source.

Security

This package is safe.

License

MIT © Titus Wormer