0.8.8 • Published 6 months ago

@metapages/hash-query v0.8.8

Weekly downloads
-
License
-
Repository
github
Last release
6 months ago

@metapages/hash-query

Get/set URL parameters in the hash string instead of the query string.

  • Includes react hooks for getting/setting typed values.
  • Includes low level tools for getting/setting arbitrary typed values.
    • Includes base64 encoding/decoding of JSON objects, booleans, numbers, etc.

Usage

Install the package:

npm i @metapages/hash-query

Use the hook in your component:

import { useHashParamJson } from "@metapages/hash-query/react-hooks";

...

const [jsonBlob, setJsonBlob] = useHashParamJson<Thing>("key", defaultValue);

Use the low level tools for getting/setting arbitrary typed values:

import {
  getHashParamValueJsonFromWindow,
  setHashParamValueJsonInWindow,
} from "@metapages/hash-query";

const jsonBlob = getHashParamValueJsonFromWindow<Thing>("key");
setHashParamValueJsonInWindow("key", jsonBlob);

How it works

The hash part of the URL (everything after #) is split into the <hash value> part and the key=val query parts of the hash parameter:

https://<origin><path><?querystring>#<hash value>?hashkey1=hashvaue1&hashkey2=hashvaue2...

Examples

Other types:

import {
useHashParam,
useHashParamBase64,
useHashParamBoolean,
useHashParamFloat,
useHashParamInt,
useHashParamJson,
} from "@metapages/hash-query/react-hooks";

Usage is the same as the JSON example above (get/set value)

API and utils for direct manipulation

Low level tools and utils for getting/setting arbitrary typed values in the URL hash string or manipulating the hash string without having to actually set the URL:

Exported functions

# Base Functions
blobToBase64String
blobFromBase64String
stringToBase64String
stringFromBase64String
getUrlHashParams
getUrlHashParamsFromHashString
getHashParamValue
getHashParamFromWindow
getHashParamsFromWindow
setHashParamInWindow
setHashParamValueInHashString
setHashParamValueInUrl
deleteHashParamFromWindow
deleteHashParamFromUrl
# JSON Functions
setHashParamValueJsonInUrl
getHashParamValueJsonFromUrl
setHashParamValueJsonInWindow
getHashParamValueJsonFromWindow
setHashParamValueJsonInHashString
# Float Functions
setHashParamValueFloatInUrl
getHashParamValueFloatFromUrl
setHashParamValueFloatInWindow
getHashParamValueFloatFromWindow
# Integer Functions
setHashParamValueIntInUrl
getHashParamValueIntFromUrl
setHashParamValueIntInWindow
getHashParamValueIntFromWindow
# Boolean Functions
setHashParamValueBooleanInUrl
getHashParamValueBooleanFromUrl
setHashParamValueBooleanInWindow
getHashParamValueBooleanFromWindow
# Base64 Functions
setHashParamValueBase64EncodedInUrl
getHashParamValueBase64DecodedFromUrl
setHashParamValueBase64EncodedInWindow
getHashParamValueBase64DecodedFromWindow
0.8.8

6 months ago

0.8.5

10 months ago

0.8.4

10 months ago

0.8.7

6 months ago

0.8.6

9 months ago

0.7.2

1 year ago

0.5.4

1 year ago

0.7.1

1 year ago

0.5.3

1 year ago

0.7.4

1 year ago

0.7.3

1 year ago

0.5.5

1 year ago

0.7.0

1 year ago

0.5.2

1 year ago

0.5.1

1 year ago

0.7.6

1 year ago

0.7.5

1 year ago

0.7.7

1 year ago

0.8.1

11 months ago

0.6.3

1 year ago

0.8.0

11 months ago

0.6.2

1 year ago

0.8.3

11 months ago

0.6.5

1 year ago

0.8.2

11 months ago

0.6.4

1 year ago

0.6.1

1 year ago

0.6.0

1 year ago

0.4.19

1 year ago

0.4.17

1 year ago

0.4.18

1 year ago

0.4.13

1 year ago

0.4.8

2 years ago

0.4.11

2 years ago

0.4.7

2 years ago

0.4.6

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.1

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.3.12

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.3.9

4 years ago

0.3.6

4 years ago

0.3.8

4 years ago

0.3.7

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago