2.1.0 • Published 1 year ago

@rvanbaalen/hashparser v2.1.0

Weekly downloads
8
License
MIT
Repository
github
Last release
1 year ago

HashParser v2

Tiny javascript library to get and set (encoded) query parameters in the URL hash.

npm (scoped) npm bundle size (scoped) downloads

⚠️ v2.* is a complete rewrite from version 1.0 and not backwards compatible.

Installation

npm install @rvanbaalen/hashparser

Before your get started

ℹ️ Important note: HashParser assumes that everything after the hash is a query string.

HashParser uses URLSearchParams to parse and set the query parameters.

Basic usage

import {HashParser} from '@rvanbaalen/hashparser';

const hp = new HashParser();

// Set a paramter in the hash
hp.set('foo', 'bar'); // example.com#foo=bar

// Get a parameter from the hash
hp.get('foo'); // bar

// Remove a parameter from the hash
hp.remove('foo'); // example.com#

Encoded values

import {HashParser} from '@rvanbaalen/hashparser';

// Two ways to use encoded parameters

// 1. Via the static getter

// Set a paramter in the hash
HashParser.encoded.set('foo', 'bar'); // example.com#foo=ImJhciI%3D

// Get a parameter from the hash
HashParser.encoded.get('foo'); // "bar"

// For reference, a default HashParser instance does not decode values
const hp = new HashParser();
hp.get('foo'); // ImJhciI%3D

// 2. Via the instance
const hp = new HashParser({encoded: true});

hp.set('foo', 'bar'); // example.com#foo=ImJhciI%3D
hp.get('foo'); // "bar"

Options

The following options can be passed to a new HashParser instance:

{
  encoded: false, // default value is false, set to true to always encode values
  sync: true // default value is true, this will listen for hashchange events on the window object and update the internal dataset.
}

Building

Compile the source files to the dist folder:

npm run build

Upon each commit, npm run build is automatically executed and ./dist/hashparser.min.js is automatically added pre-commit.

1.1.4

1 year ago

2.0.2

1 year ago

2.1.0

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.6

3 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago