@magic-libraries/json

@magic json library. returns errors instead of throwing them. checks if output of stringify should error.

Usage no npm install needed!

<script type="module">
  import magicLibrariesJson from 'https://cdn.skypack.dev/@magic-libraries/json';
</script>

README

@magic-libraries/json

json client lib for this is the @magic-client json library.

it returns errors instead of throwing them and catches (some) malformed objects when stringifying.

html-docs

NPM version Linux Build Status Windows Build Status Coverage Status Greenkeeper badge Known Vulnerabilities

installation

npm install --save-exact @magic-libraries/json

usage

in a page/component, just use the LIB.JSON functions

module.exports = () =>
  Pre.View(LIB.JSON.stringify({ some: { object: ['with', 'values'] } }))

renders

LIB.JSON.stringify({ some: { object: ['with', 'values'] } })),

caveat

only use this library without checking it's return value if you know that your input json is not malformed. in all other cases the following pattern should be employed (and enhanced with custom error messages).

module.exports = {
  ViewStringify: unsafe => {
    const result = LIB.JSON.stringify(unsafe)
    return div([result.message ? result.message : result])
  },
  ViewParse: unsafe => {
    const result = LIB.JSON.parse(unsafe)
    // in this case we can not check for .message,
    // since unsafe might have a .message key after parsing
    div([result instanceof Error ? result.message : result])
  },
}

source

the source for this page is in the example directory and gets built and published to github using @magic/core

changelog

0.0.1

first release

0.0.2
  • require node 13.5.0
0.0.3 - BROKEN
  • use @magic-libraries/try-catch
0.0.4 - BROKEN

require @magic-libraries/try-catch from npm

0.0.5 - BROKEN

do not import tryCatch in src/index.mjs

0.0.6
  • FIX: @magic-libaries/tryCatch usage.
  • bump required node version 14.2.0
0.0.7

bump required node version to 14.15.4

0.0.8

update dependencies

0.0.9

update dependencies

0.0.10 - unreleased

...