rollup-plugin-json-parse

1.1.5 • Public • Published

npm version Greenkeeper badge

rollup-plugin-json-parse

A rollup plugin that wraps compatible objects with JSON.parse().

Anything that is not compatible or would be less than 1024 characters, is left unchanged.

Why?

It improves performance!

Because the JSON grammar is much simpler than JavaScript’s grammar, JSON can be parsed more efficiently than JavaScript. This knowledge can be applied to improve start-up performance for web apps that ship large JSON-like configuration object literals (such as inline Redux stores).

See this video on the chrome dev channel and the article on the V8 blog for more info.

Chrome dev YouTube video

Installation

npm install --save-dev rollup-plugin-json-parse

Usage

import { rollup } from 'rollup';
const rollupPluginJsonParse = require('rollup-plugin-json-parse');
 
export default {
  input: 'main.js',
  plugins: [
    rollupPluginJsonParse({
      minJSONStringSize: 1024 // default
    })
  ]
});

Example

The following assumes minJSONStringSize of 0 for demonstration purposes.

Input

const a = {
  prop1: () => {}, // can't be optimized
  prop2: {
    prop3: 2,
    prop4: 'something',
    ['prop 5']: null
  }
};

Output

const a = {
  prop1: () => {}, // can't be optimized
  prop2: /*@__PURE__*/JSON.parse("{\"prop3\":2,\"prop4\":\"something\",\"prop 5\":null}")
};

Package Sidebar

Install

npm i rollup-plugin-json-parse

Weekly Downloads

30

Version

1.1.5

License

MIT

Unpacked Size

17.6 kB

Total Files

9

Last publish

Collaborators

  • tjenkinson