Package Exports
- @adraffy/ens-normalize
- @adraffy/ens-normalize/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@adraffy/ens-normalize) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ens-normalize.js
0-dependancy Compact ES6 Ethereum Name Service (ENS) Name Normalizer.
- Passes 100% ENSIP Norm Validation Tests
- Filesize: 20KB
- Demo
import {ens_normalize} from '@adraffy/ens-normalize';
// npm i @adraffy/ens-normalize
// browser: https://unpkg.com/@adraffy/ens-normalize@latest/dist/index.min.js
// Primary API: string -> string
let normalized = ens_normalize('š“āāļø.eth'); // throws on invalid names
// ready for namehash
// note: does not enforce .eth TLD 3-character minimum
Instead of exposing an IDNA-like API (is_valid()
, get_mapped()
, etc.), this library exposes a single function which converts names to tokens:
// Secondary API: string -> Token[]
// turn a name into a list of tokens
let tokens = ens_tokenize('Rš©\uFE0Fa\xAD./'); // never throws
// [
// {
// type: 'mapped',
// cp: 82, // input
// cps: [ 114 ] // output
// },
// {
// type: 'emoji',
// input: [ 128169, 65039 ], // input
// emoji: [ 128169, 65039 ], // ideal form
// cps: [ 128169 ] // output
// },
// { type: 'valid', cps: [ 97 ] },
// { type: 'ignored', cp: 173 },
// { type: 'stop' },
// { type: 'disallowed', cp: 47 }
// ]
Build
npm run make
compress data from @adraffy/ensip-normnpm run test
run validation testsnpm run build
create/dist/
npm run build-dev
compileparts.js
,dns.js
, andall.js