215 MB
4,079 files
Updated 2 days ago
Name
Size
.github
test
.editorconfig145 Bytes
xet
.eslintrc203 Bytes
xet
.nycrc216 Bytes
xet
CHANGELOG.md11.4 kB
xet
LICENSE1.07 kB
xet
README.md2.11 kB
xet
index.d.ts486 Bytes
xet
index.js1.22 kB
xet
package.json2.36 kB
xet
tsconfig.json116 Bytes
xet
README.md

side-channel Version Badge

github actions coverage License Downloads

npm badge

Store information about any JS value in a side channel. Uses WeakMap if available.

Warning: in an environment that lacks WeakMap, this implementation will leak memory until you delete the key.

Getting started

npm install --save side-channel

Usage/Examples

const assert = require('assert');
const getSideChannel = require('side-channel');

const channel = getSideChannel();

const key = {};
assert.equal(channel.has(key), false);
assert.throws(() => channel.assert(key), TypeError);

channel.set(key, 42);

channel.assert(key); // does not throw
assert.equal(channel.has(key), true);
assert.equal(channel.get(key), 42);

channel.delete(key);
assert.equal(channel.has(key), false);
assert.throws(() => channel.assert(key), TypeError);

Tests

Clone the repo, npm install, and run npm test

Total size
215 MB
Files
4,079
Last updated
Aug 7
Pre-warmed CDN
US EU US EU

Contributors