Socket
Book a DemoInstallSign in
Socket

edn-js

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

edn-js

A reader/writer for EDN in JS

latest
Source
npmnpm
Version
0.0.4
Version published
Weekly downloads
7
-12.5%
Maintainers
1
Weekly downloads
 
Created
Source

edn-js

An EDN reader and an EDN writer for JS. It tries to use native JS types when possible but currently JS has no equivalent of EDN's List or UUID; so edn-js provides them.

In addition to standard EDN this implementation also supports cyclic data.

Installation

npm install edn-js

then in your app:

const {read,write,edn,List,UUID} = require('edn-js')

API

read(str)

Just takes a string of EDN data and returns the best approximation of it in native JS data

read('[1 2]') // => [1, 2]
read('#{1 2}') // => new Set([1, 2])
read('{1 2}') // => new Map([[1, 2]])

write(value)

Converts any value to its EDN representation. If its not a builtin type then it should implement either toEDN() returning a string or toJSON() returning a plain Object.

write(new Date(0)) // => '#inst "1970-01-01T00:00:00.000Z"'
write(new Set([1,2,3])) // => '#{1 2 3}'
write(new Map([[Symbol('a'), 1]])) // => '{a 1}'
write({a: 1, b: 2}) // => '#js/Object {"a" 1 "b" 2}'
write([1,2]) // => '#js/Array [1 2]'

edn`str`

This function is designed to be used with ES6's tagged template strings

edn`(1 2)` // => List.from([1,2])

And if you want to interpolate values it does it without serializing them so identity is preserved

const object = {}
edn`(${object})` // => List.from([object])

Support for cyclic data

const m = new Map
m.set('self', m)
write(m) // => '{"self" # 1}'
const copy = read('{"self" # 1}')
copy.get('self') == copy // => true

Keywords

edn

FAQs

Package last updated on 22 May 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts