├── img.gif ├── packages ├── benchmarks │ ├── react-css │ │ ├── client │ │ │ ├── Table.css │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── package.json │ │ └── README.md │ ├── cxs │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── package.json │ │ ├── README.md │ │ └── yarn.lock │ ├── fela │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ ├── package.json │ │ └── yarn.lock │ ├── radium │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── package.json │ │ └── README.md │ ├── react │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── package.json │ │ └── README.md │ ├── aphrodite │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ ├── package.json │ │ └── yarn.lock │ ├── react-jss │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ └── package.json │ ├── styled-jsx │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ └── package.json │ ├── styletron │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ ├── package.json │ │ └── yarn.lock │ ├── emotion │ │ ├── css-mode │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ └── package.json │ │ ├── simple │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ └── inline-mode │ │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ └── package.json │ ├── rockey │ │ ├── rockey-inline │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ ├── rockey │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ └── rockey-speedy │ │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ ├── glamorous │ │ ├── glamor-css │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ └── dynamic-styles │ │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ ├── styled-jss │ │ ├── styled-jss │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ └── w-o-plugins │ │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ └── styled-components │ │ ├── v1 │ │ ├── simple │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ └── package.json │ │ ├── decouple-cell │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ └── package.json │ │ └── inline-style │ │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ └── package.json │ │ ├── v2 │ │ ├── simple │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ ├── decouple-cell │ │ │ ├── client │ │ │ │ ├── index.js │ │ │ │ ├── index.html │ │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ └── inline-style │ │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ │ ├── .babelrc │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ └── yarn.lock │ │ └── v2-plugin │ │ ├── simple │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ ├── package.json │ │ └── yarn.lock │ │ ├── decouple-cell │ │ ├── client │ │ │ ├── index.js │ │ │ ├── index.html │ │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ ├── package.json │ │ └── yarn.lock │ │ └── inline-style │ │ ├── client │ │ ├── index.js │ │ ├── index.html │ │ └── Table.js │ │ ├── .babelrc │ │ ├── README.md │ │ ├── package.json │ │ └── yarn.lock ├── tests │ ├── package.json │ └── index.js ├── benchmarks-utils │ ├── .babelrc │ ├── README.md │ ├── webpack.config.js │ ├── package.json │ └── src │ │ └── index.js └── dev-tasks │ ├── src │ ├── devServer.js │ ├── build.js │ └── webpack.config.js │ └── package.json ├── .gitignore ├── .travis.yml ├── lerna.json ├── package.json ├── README.md └── RESULT.md /img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tkh44/CSS-IN-JS-Benchmarks/master/img.gif -------------------------------------------------------------------------------- /packages/benchmarks/react-css/client/Table.css: -------------------------------------------------------------------------------- 1 | .table { 2 | display: table; 3 | margin: 10px 10px 10px 0; 4 | } 5 | 6 | .row { 7 | display: table-row; 8 | } 9 | 10 | .cell { 11 | display: table-cell; 12 | padding: 10px; 13 | } 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules 3 | 4 | # testing 5 | /coverage 6 | 7 | # production 8 | build 9 | lib 10 | static 11 | etc 12 | 13 | # misc 14 | .DS_Store 15 | npm-debug.log* 16 | lerna-debug.log* 17 | 18 | # IDE 19 | .idea/* 20 | -------------------------------------------------------------------------------- /packages/tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tests", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "dependencies": { 6 | "connect": "3.6.1", 7 | "lighthouse": "1.6.5", 8 | "serve-static": "1.12.1", 9 | "shelljs": "0.7.7" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/benchmarks-utils/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015", 4 | "react" 5 | ], 6 | "plugins": [ 7 | "transform-class-properties", 8 | "transform-async-to-generator", 9 | "transform-regenerator", 10 | "transform-runtime" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/benchmarks/cxs/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/fela/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/radium/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/react/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/aphrodite/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/react-css/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/react-jss/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jsx/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styletron/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/css-mode/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/simple/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-inline/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | import './index.html'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/inline-mode/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/glamor-css/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/styled-jss/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/dynamic-styles/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/w-o-plugins/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/simple/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/simple/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | 5 | import Table from './Table'; 6 | import './index.html'; 7 | 8 | // test 9 | ReactDOM.render(, document.getElementById('root')); 10 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/decouple-cell/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/inline-style/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/simple/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/decouple-cell/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/inline-style/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/cxs/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/fela/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/radium/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/react/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/decouple-cell/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/inline-style/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import Table from './Table'; 5 | 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/aphrodite/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/cxs/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CXS 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/fela/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fela 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/react-css/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/react-jss/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styletron/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/radium/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Radium 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/react/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-speedy/client/index.js: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom'; 2 | import React from 'react'; 3 | import App from 'benchmarks-utils'; 4 | import 'rockey-react/speedy'; 5 | import Table from './Table'; 6 | import './index.html'; 7 | 8 | ReactDOM.render(, document.getElementById('root')); 9 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/aphrodite/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Aphrodite 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/glamor-css/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/react-jss/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React-JSS 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-inline/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-speedy/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Rockey 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/styled-jss/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styletron/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styletron 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/dynamic-styles/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/react-css/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React + CSS 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/w-o-plugins/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jsx/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled-JSX 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/glamor-css/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Glamorous 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/simple/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/simple/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks-utils/README.md: -------------------------------------------------------------------------------- 1 | # Big Table Utils 2 | 3 | ## Available Scripts 4 | 5 | ### `npm run build` 6 | 7 | Builds the app for production to the `build` folder.
8 | It correctly bundles React in production mode and optimizes the build for the best performance.
9 | The build is minified and the filenames include the hashes. 10 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/dynamic-styles/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Gamorous 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/decouple-cell/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/inline-style/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/decouple-cell/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/inline-style/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties" 4 | ], 5 | "presets": [ 6 | ["es2015", { "modules": false }], 7 | "react" 8 | ], 9 | "env": { 10 | "development": { 11 | "presets": [ 12 | "react-hmre" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/styled-jss/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled-JSS 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-inline/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Rockey (speedy) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-speedy/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Rockey (speedy) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jsx/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties", 4 | "styled-jsx/babel" 5 | ], 6 | "presets": [ 7 | ["es2015", { "modules": false }], 8 | "react" 9 | ], 10 | "env": { 11 | "development": { 12 | "presets": [ 13 | "react-hmre" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/css-mode/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties", 4 | ["emotion/babel"] 5 | ], 6 | "presets": [ 7 | ["es2015", { "modules": false }], 8 | "react" 9 | ], 10 | "env": { 11 | "development": { 12 | "presets": [ 13 | "react-hmre" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/inline-mode/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Emotion + Inline Mode 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/simple/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties", 4 | ["emotion/babel"] 5 | ], 6 | "presets": [ 7 | ["es2015", { "modules": false }], 8 | "react" 9 | ], 10 | "env": { 11 | "development": { 12 | "presets": [ 13 | "react-hmre" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/simple/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/simple/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/w-o-plugins/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled-JSS W/O plugins 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/simple/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/simple/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties", 4 | "styled-components" 5 | ], 6 | "presets": [ 7 | ["es2015", { "modules": false }], 8 | "react" 9 | ], 10 | "env": { 11 | "development": { 12 | "presets": [ 13 | "react-hmre" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/inline-mode/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties", 4 | ["emotion/babel", { "inline": true }] 5 | ], 6 | "presets": [ 7 | ["es2015", { "modules": false }], 8 | "react" 9 | ], 10 | "env": { 11 | "development": { 12 | "presets": [ 13 | "react-hmre" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/decouple-cell/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components (Decouple Cell) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/inline-style/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components (Inline Style) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/decouple-cell/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties", 4 | "styled-components" 5 | ], 6 | "presets": [ 7 | ["es2015", { "modules": false }], 8 | "react" 9 | ], 10 | "env": { 11 | "development": { 12 | "presets": [ 13 | "react-hmre" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/inline-style/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "transform-class-properties", 4 | "styled-components" 5 | ], 6 | "presets": [ 7 | ["es2015", { "modules": false }], 8 | "react" 9 | ], 10 | "env": { 11 | "development": { 12 | "presets": [ 13 | "react-hmre" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/decouple-cell/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components (Decouple Cell) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/inline-style/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components (Inline Style) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/decouple-cell/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components (Decouple Cell) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/inline-style/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Styled Components (Inline Style) 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/simple/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Glam 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/dev-tasks/src/devServer.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const webpackDevServer = require('webpack-dev-server'); 3 | const webpack = require('webpack'); 4 | 5 | const webpackConfig = require('./webpack.config.js'); 6 | const compiler = webpack(webpackConfig); 7 | 8 | const server = new webpackDevServer(compiler, { 9 | quiet: true, 10 | stats: 'errors-only', 11 | }); 12 | 13 | server.listen(3000); 14 | -------------------------------------------------------------------------------- /packages/benchmarks/react/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Table = ({ table, toPercent }) => ( 4 |
5 | {table.map((row, i) => ( 6 |
7 | {row.map((x, j) => ( 8 |
9 | {toPercent(x)} 10 |
11 | ))} 12 |
13 | ))} 14 |
15 | ); 16 | 17 | export default Table; 18 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/css-mode/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Emotion + CSS Mode 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/dev-tasks/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dev-tasks", 3 | "version": "1.0.0", 4 | "bin": { 5 | "devBuild": "./src/build.js", 6 | "devServer": "./src/devServer.js" 7 | }, 8 | "keywords": [], 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "chalk": "1.1.3", 13 | "cross-spawn": "5.1.0", 14 | "webpack": "2.4.1", 15 | "webpack-dev-server": "2.4.5", 16 | "yargs": "7.1.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/benchmarks/react/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-react-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package react", 7 | "build": "devBuild --package react" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0" 12 | }, 13 | "devDependencies": { 14 | "dev-tasks": "1.0.0" 15 | }, 16 | "benchmarks": { 17 | "name": "react (without styles)", 18 | "link": "https://github.com/facebook/react" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/benchmarks/cxs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-cxs-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package cxs", 7 | "build": "devBuild --package cxs" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "cxs": "3.0.4" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "cxs", 19 | "useInlineStyles": true, 20 | "useCSS": true, 21 | "link": "https://github.com/jxnblk/cxs" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/radium/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-radium-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package radium", 7 | "build": "devBuild --package radium" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "radium": "0.18.2" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "radium", 19 | "useInlineStyles": true, 20 | "link": "https://github.com/FormidableLabs/radium" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/cxs/README.md: -------------------------------------------------------------------------------- 1 | # CXS Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. 19 | -------------------------------------------------------------------------------- /packages/benchmarks/fela/README.md: -------------------------------------------------------------------------------- 1 | # Aphrodite Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/radium/README.md: -------------------------------------------------------------------------------- 1 | # Radium Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/react-css/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-react-css-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package react-css", 7 | "build": "devBuild --package react-css" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0" 12 | }, 13 | "devDependencies": { 14 | "dev-tasks": "1.0.0" 15 | }, 16 | "benchmarks": { 17 | "name": "react-css", 18 | "useInlineStyles": true, 19 | "useCSS": true, 20 | "link": "https://github.com/facebook/react" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/react/README.md: -------------------------------------------------------------------------------- 1 | # React Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/aphrodite/README.md: -------------------------------------------------------------------------------- 1 | # Aphrodite Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/emotion/simple/README.md: -------------------------------------------------------------------------------- 1 | # React Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/fela/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-fela-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package fela", 7 | "build": "devBuild --package fela" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "fela": "4.3.3", 13 | "react-fela": "4.3.3" 14 | }, 15 | "devDependencies": { 16 | "dev-tasks": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "fela", 20 | "useCSS": true, 21 | "link": "https://github.com/rofrischmann/fela/" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/react-css/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './Table.css'; 3 | 4 | const Table = ({ table, toPercent }) => ( 5 |
6 | {table.map((row, i) => ( 7 |
8 | {row.map((x, j) => ( 9 |
14 | {toPercent(x)} 15 |
16 | ))} 17 |
18 | ))} 19 |
20 | ); 21 | 22 | export default Table; 23 | -------------------------------------------------------------------------------- /packages/benchmarks/react-jss/README.md: -------------------------------------------------------------------------------- 1 | # React-JSS Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey/README.md: -------------------------------------------------------------------------------- 1 | # React Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styletron/README.md: -------------------------------------------------------------------------------- 1 | # Styletron Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/emotion/css-mode/README.md: -------------------------------------------------------------------------------- 1 | # React Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/emotion/inline-mode/README.md: -------------------------------------------------------------------------------- 1 | # React Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/react-css/README.md: -------------------------------------------------------------------------------- 1 | # React + CSS Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-jsx/README.md: -------------------------------------------------------------------------------- 1 | # Styled-JSX Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-inline/README.md: -------------------------------------------------------------------------------- 1 | # React Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-speedy/README.md: -------------------------------------------------------------------------------- 1 | # React Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/dynamic-styles/README.md: -------------------------------------------------------------------------------- 1 | # Glamourous Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/styled-jss/README.md: -------------------------------------------------------------------------------- 1 | # Styled-JSX Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/w-o-plugins/README.md: -------------------------------------------------------------------------------- 1 | # Styled-JSX Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/aphrodite/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-aphrodite-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package aphrodite", 7 | "build": "devBuild --package aphrodite" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "aphrodite": "1.2.0" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "aphrodite", 19 | "useInlineStyles": true, 20 | "useCSS": true, 21 | "link": "https://github.com/Khan/aphrodite" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/simple/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-emotion-simple-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package emotion/simple", 7 | "build": "devBuild --package emotion/simple" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "emotion": "^4.1.4" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "emotion-simple", 19 | "useCSS": true, 20 | "link": "https://github.com/threepointone/emotion" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/glamor-css/README.md: -------------------------------------------------------------------------------- 1 | # Glamourous + Glamour Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/simple/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v1 Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/simple/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v2 Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-rockey-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package rockey/rockey", 7 | "build": "devBuild --package rockey/rockey" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "rockey-react": "=0.0.14" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "rockey", 19 | "useInlineStyles": false, 20 | "useCSS": true, 21 | "link": "https://github.com/tuchk4/rockey" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/simple/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v2 Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/styled-jss/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-jss-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-jss/styled-jss", 7 | "build": "devBuild --package styled-jss/styled-jss" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "benchmarks-utils": "1.0.0", 15 | "styled-jss": "0.6.3" 16 | }, 17 | "benchmarks": { 18 | "name": "styled-jss", 19 | "useCSS": true, 20 | "link": "https://github.com/cssinjs/styled-jss" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/styletron/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styltron-big-table", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "start": "devServer --package styletron", 6 | "build": "devBuild --package styletron" 7 | }, 8 | "license": "MIT", 9 | "dependencies": { 10 | "benchmarks-utils": "1.0.0", 11 | "rockey-react": "0.0.11", 12 | "styletron-client": "2.5.1", 13 | "styletron-react": "2.5.3" 14 | }, 15 | "devDependencies": { 16 | "dev-tasks": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "styletron", 20 | "useCSS": true, 21 | "link": "https://github.com/rtsao/styletron" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/inline-style/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v1 + inline styles Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/inline-style/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v2 + Inline Style Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/decouple-cell/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v1 - Decouple Cell Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/decouple-cell/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v2 - Decouple Cell Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/emotion/css-mode/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-emotion-css-mode-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package emotion/css-mode", 7 | "build": "devBuild --package emotion/css-mode" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "emotion": "^4.1.4" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "emotion-css-mode", 19 | "useInlineStyles": true, 20 | "useCSS": true, 21 | "link": "https://github.com/tkh44/emotion" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/decouple-cell/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v2 - Decouple Cell Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/inline-style/README.md: -------------------------------------------------------------------------------- 1 | # Styled-Components v2 + Inline Style Big Table 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | 14 | ### `npm run build` 15 | 16 | Builds the app for production to the `build` folder.
17 | It correctly bundles React in production mode and optimizes the build for the best performance.
18 | The build is minified and the filenames include the hashes. -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/dynamic-styles/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-glamourous-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package glamorous/dynamic-styles", 7 | "build": "devBuild --package glamorous/dynamic-styles" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "glamor": "2.20.24", 13 | "glamorous": "1.0.1" 14 | }, 15 | "devDependencies": { 16 | "dev-tasks": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "glamorous", 20 | "useCSS": true, 21 | "link": "https://github.com/paypal/glamorous" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/glamor-css/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-glamour-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package glamorous/glamor-css", 7 | "build": "devBuild --package glamorous/glamor-css" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "glamor": "2.20.24", 13 | "glamorous": "1.0.1" 14 | }, 15 | "devDependencies": { 16 | "dev-tasks": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "glamorous-glamour-css", 20 | "useCSS": true, 21 | "link": "https://github.com/paypal/glamorous" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-speedy/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-rockey-speedy-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package rockey/rockey-speedy", 7 | "build": "devBuild --package rockey/rockey-speedy" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "rockey-react": "=0.0.14" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "rockey-speedy", 19 | "useInlineStyles": false, 20 | "useCSS": true, 21 | "link": "https://github.com/tuchk4/rockey" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jsx/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-jsx-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-jsx", 7 | "build": "devBuild --package styled-jsx" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "rockey-react": "0.0.11", 13 | "styled-jsx": "0.5.7" 14 | }, 15 | "devDependencies": { 16 | "dev-tasks": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "styled-jsx", 20 | "useInlineStyles": true, 21 | "useCSS": true, 22 | "link": "https://github.com/zeit/styled-jsx" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/inline-mode/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-emotion-inline-mode-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package emotion/inline-mode", 7 | "build": "devBuild --package emotion/inline-mode" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "emotion": "^4.1.4" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "emotion-inline-mode", 19 | "useInlineStyles": true, 20 | "useCSS": true, 21 | "link": "https://github.com/tkh44/emotion" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/w-o-plugins/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-jss-wo-plugins-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-jss/w-o-plugins", 7 | "build": "devBuild --package styled-jss/w-o-plugins" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "benchmarks-utils": "1.0.0", 15 | "styled-jss": "0.6.3", 16 | "jss": "7.1.1" 17 | }, 18 | "benchmarks": { 19 | "name": "styled-jss-w-o-plugins", 20 | "useCSS": true, 21 | "link": "https://github.com/cssinjs/styled-jss" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-inline/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-rockey-inline-big-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package rockey/rockey-inline", 7 | "build": "devBuild --package rockey/rockey-inline" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "rockey-react": "=0.0.14" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "rockey-inline", 19 | "useInlineStyles": false, 20 | "useCSS": true, 21 | "useInlineStyles": true, 22 | "link": "https://github.com/tuchk4/rockey" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/simple/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v1-simple", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v1/simple", 7 | "build": "devBuild --package styled-components/v1/simple" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "styled-components": "1.4.4", 15 | "benchmarks-utils": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "styled-components-v1", 19 | "useCSS": true, 20 | "link": "https://github.com/styled-components/styled-components" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/simple/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v2-simple", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v2/simple", 7 | "build": "devBuild --package styled-components/v2/simple" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "styled-components": "2.0.0-15", 15 | "benchmarks-utils": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "styled-components-v2", 19 | "useCSS": true, 20 | "link": "https://github.com/styled-components/styled-components/tree/v2" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import rockey from 'rockey-react'; 3 | 4 | const Table = rockey.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = rockey.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = rockey.div` 14 | display: table-cell; 15 | padding: 10px; 16 | 17 | background: ${({ value }) => `rgba(74, 174, 53, ${value})`} 18 | `; 19 | 20 | export default ({ table, toPercent }) => ( 21 | 22 | {table.map((row, i) => ( 23 | 24 | {row.map((x, j) => ( 25 | {toPercent(x)} 26 | ))} 27 | 28 | ))} 29 |
30 | ); 31 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-speedy/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import rockey from 'rockey-react'; 3 | 4 | const Table = rockey.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = rockey.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = rockey.div` 14 | display: table-cell; 15 | padding: 10px; 16 | 17 | background: ${({ value }) => `rgba(74, 174, 53, ${value})`} 18 | `; 19 | 20 | export default ({ table, toPercent }) => ( 21 | 22 | {table.map((row, i) => ( 23 | 24 | {row.map((x, j) => ( 25 | {toPercent(x)} 26 | ))} 27 | 28 | ))} 29 |
30 | ); 31 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/simple/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | background: rgba(74, 174, 53, ${props => props.value}); 17 | `; 18 | 19 | export default ({ table, toPercent }) => ( 20 | 21 | {table.map((row, i) => ( 22 | 23 | {row.map((x, j) => ( 24 | {toPercent(x)} 25 | ))} 26 | 27 | ))} 28 |
29 | ); 30 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/simple/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | background: rgba(74, 174, 53, ${props => props.value}); 17 | `; 18 | 19 | export default ({ table, toPercent }) => ( 20 | 21 | {table.map((row, i) => ( 22 | 23 | {row.map((x, j) => ( 24 | {toPercent(x)} 25 | ))} 26 | 27 | ))} 28 |
29 | ); 30 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/decouple-cell/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v1-decouple-cell", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v1/decouple-cell", 7 | "build": "devBuild --package styled-components/v1/decouple-cell" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "styled-components": "1.4.4", 15 | "benchmarks-utils": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "styled-components-v1-decouple-cell", 19 | "useCSS": true, 20 | "link": "https://github.com/styled-components/styled-components" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/simple/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | background: rgba(74, 174, 53, ${props => props.value}); 17 | `; 18 | 19 | export default ({ table, toPercent }) => ( 20 | 21 | {table.map((row, i) => ( 22 | 23 | {row.map((x, j) => ( 24 | {toPercent(x)} 25 | ))} 26 | 27 | ))} 28 |
29 | ); 30 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/decouple-cell/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v2-decouple-cell", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v2/decouple-cell", 7 | "build": "devBuild --package styled-components/v2/decouple-cell" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "styled-components": "2.0.0-15", 15 | "benchmarks-utils": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "styled-components-v2-decouple-cell", 19 | "useCSS": true, 20 | "link": "https://github.com/styled-components/styled-components/tree/v2" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/inline-style/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v1-inline-style", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v1/inline-style", 7 | "build": "devBuild --package styled-components/v1/inline-style" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "styled-components": "1.4.4", 15 | "benchmarks-utils": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "styled-components-v1-inline-styles", 19 | "useInlineStyles": true, 20 | "useCSS": true, 21 | "link": "https://github.com/styled-components/styled-components" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks-utils/webpack.config.js: -------------------------------------------------------------------------------- 1 | const webpack = require('webpack'); 2 | const path = require('path'); 3 | 4 | const sourcePath = path.join(__dirname, './src'); 5 | const libraryName = 'index'; 6 | 7 | let outputFile = libraryName + '.js'; 8 | 9 | const config = { 10 | entry: __dirname + '/src/index.js', 11 | devtool: 'source-map', 12 | output: { 13 | path: __dirname + '/lib', 14 | filename: outputFile, 15 | library: libraryName, 16 | libraryTarget: 'umd', 17 | umdNamedDefine: true, 18 | }, 19 | module: { 20 | rules: [ 21 | { 22 | test: /(\.jsx|\.js)$/, 23 | loader: 'babel-loader', 24 | exclude: /(node_modules|bower_components)/, 25 | }, 26 | ], 27 | }, 28 | }; 29 | 30 | module.exports = config; 31 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/inline-style/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v2-inline-style", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v2/inline-style", 7 | "build": "devBuild --package styled-components/v2/inline-style" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0" 12 | }, 13 | "dependencies": { 14 | "styled-components": "2.0.0-15", 15 | "benchmarks-utils": "1.0.0" 16 | }, 17 | "benchmarks": { 18 | "name": "styled-components-v2-inline-styles", 19 | "useInlineStyles": true, 20 | "useCSS": true, 21 | "link": "https://github.com/styled-components/styled-components/tree/v2" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/react-jss/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-react-jss-table", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package react-jss", 7 | "build": "devBuild --package react-jss" 8 | }, 9 | "license": "MIT", 10 | "dependencies": { 11 | "benchmarks-utils": "1.0.0", 12 | "react-jss": "5.4.1" 13 | }, 14 | "devDependencies": { 15 | "dev-tasks": "1.0.0" 16 | }, 17 | "dependencies": { 18 | "babel-runtime": "6.23.0", 19 | "react": "15.4.2", 20 | "react-dom": "15.4.2", 21 | "react-jss": "5.4.1", 22 | "benchmarks-utils": "1.0.0" 23 | }, 24 | "benchmarks": { 25 | "name": "react-jss", 26 | "useCSS": true, 27 | "link": "https://github.com/cssinjs/react-jss" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/dynamic-styles/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import glamorous from 'glamorous'; 3 | 4 | const Table = glamorous.div({ 5 | display: 'table', 6 | marginTop: 10, 7 | }); 8 | 9 | const Row = glamorous.div({ 10 | display: 'table-row', 11 | }); 12 | 13 | const Cell = glamorous.div( 14 | { 15 | display: 'table-cell', 16 | padding: '10px', 17 | }, 18 | props => ({ 19 | background: `rgba(74, 174, 53, ${props.value})`, 20 | }) 21 | ); 22 | 23 | export default ({ table, toPercent }) => ( 24 | 25 | {table.map((row, i) => ( 26 | 27 | {row.map((x, j) => ( 28 | {toPercent(x)} 29 | ))} 30 | 31 | ))} 32 |
33 | ); 34 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/styled-jss/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-jss'; 3 | 4 | const Table = styled('div', { 5 | display: 'table', 6 | marginTop: 10, 7 | }); 8 | 9 | const Row = styled('div', { 10 | display: 'table-row', 11 | }); 12 | 13 | const Cell = styled('div', { 14 | display: 'table-cell', 15 | padding: 10, 16 | background: props => `rgba(74, 174, 53, ${props.value})`, 17 | }); 18 | 19 | const TableComponent = ({ table, toPercent }) => ( 20 | 21 | {table.map((row, i) => ( 22 | 23 | {row.map((x, j) => ( 24 | {toPercent(x)} 25 | ))} 26 | 27 | ))} 28 |
29 | ); 30 | 31 | export default TableComponent; 32 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/simple/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v2-plugin-simple", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v2-plugin/simple", 7 | "build": "devBuild --package styled-components/v2-plugin/simple" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0", 12 | "babel-plugin-styled-components": "1.1.4" 13 | }, 14 | "dependencies": { 15 | "styled-components": "2.0.0-15", 16 | "benchmarks-utils": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "styled-components-v2-plugin", 20 | "link": "https://github.com/styled-components/styled-components/tree/v2", 21 | "useCSS": true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/decouple-cell/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const CellDefault = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | const Cell = styled(CellDefault)` 19 | background: rgba(74, 174, 53, ${props => props.value}); 20 | `; 21 | 22 | export default ({ table, toPercent }) => ( 23 | 24 | {table.map((row, i) => ( 25 | 26 | {row.map((x, j) => ( 27 | {toPercent(x)} 28 | ))} 29 | 30 | ))} 31 |
32 | ); 33 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/decouple-cell/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const CellDefault = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | const Cell = styled(CellDefault)` 19 | background: rgba(74, 174, 53, ${props => props.value}); 20 | `; 21 | 22 | export default ({ table, toPercent }) => ( 23 | 24 | {table.map((row, i) => ( 25 | 26 | {row.map((x, j) => ( 27 | {toPercent(x)} 28 | ))} 29 | 30 | ))} 31 |
32 | ); 33 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/decouple-cell/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const CellDefault = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | const Cell = styled(CellDefault)` 19 | background: rgba(74, 174, 53, ${props => props.value}); 20 | `; 21 | 22 | export default ({ table, toPercent }) => ( 23 | 24 | {table.map((row, i) => ( 25 | 26 | {row.map((x, j) => ( 27 | {toPercent(x)} 28 | ))} 29 | 30 | ))} 31 |
32 | ); 33 | -------------------------------------------------------------------------------- /packages/dev-tasks/src/build.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const fs = require('fs'); 3 | const path = require('path'); 4 | const webpack = require('webpack'); 5 | const { argv } = require('yargs'); 6 | 7 | process.NODE_ENV = 'production'; 8 | const packageName = argv.package; 9 | 10 | const webpackConfig = require('./webpack.config.js'); 11 | const compiler = webpack(webpackConfig); 12 | 13 | compiler.run((err, stats) => { 14 | if (err || stats.hasErrors()) { 15 | console.log(`Error at ${packageName}`); 16 | 17 | const info = stats.toJson(); 18 | const space = ' '; 19 | 20 | info.errors.map(err => { 21 | console.log(''); 22 | console.log(space + err.split('\n').slice(0, 3).join('\n' + space)); 23 | console.log(''); 24 | 25 | process.exit(1); 26 | }); 27 | } 28 | }); 29 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/simple/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'emotion/styled'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const CellDefault = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | const Cell = styled('div')` 19 | display: table-cell; 20 | padding: 10px; 21 | background: rgba(74, 174, 53, ${props => props.value}); 22 | `; 23 | 24 | export default ({ table, toPercent }) => ( 25 | 26 | {table.map((row, i) => ( 27 | 28 | {row.map((x, j) => ( 29 | {toPercent(x)} 30 | ))} 31 | 32 | ))} 33 |
34 | ); 35 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/inline-mode/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'emotion/styled'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const CellDefault = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | const Cell = styled('div')` 19 | display: table-cell; 20 | padding: 10px; 21 | background: rgba(74, 174, 53, ${props => props.value}); 22 | `; 23 | 24 | export default ({ table, toPercent }) => ( 25 | 26 | {table.map((row, i) => ( 27 | 28 | {row.map((x, j) => ( 29 | {toPercent(x)} 30 | ))} 31 | 32 | ))} 33 |
34 | ); 35 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v1/inline-style/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | export default ({ table, toPercent }) => ( 19 | 20 | {table.map((row, i) => ( 21 | 22 | {row.map((x, j) => ( 23 | 28 | {toPercent(x)} 29 | 30 | ))} 31 | 32 | ))} 33 |
34 | ); 35 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/inline-style/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | export default ({ table, toPercent }) => ( 19 | 20 | {table.map((row, i) => ( 21 | 22 | {row.map((x, j) => ( 23 | 28 | {toPercent(x)} 29 | 30 | ))} 31 | 32 | ))} 33 |
34 | ); 35 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/inline-style/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | const Table = styled.div` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const Row = styled.div` 10 | display: table-row; 11 | `; 12 | 13 | const Cell = styled.div` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | export default ({ table, toPercent }) => ( 19 | 20 | {table.map((row, i) => ( 21 | 22 | {row.map((x, j) => ( 23 | 28 | {toPercent(x)} 29 | 30 | ))} 31 | 32 | ))} 33 |
34 | ); 35 | -------------------------------------------------------------------------------- /packages/benchmarks/radium/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Radium from 'radium'; 3 | 4 | const styles = { 5 | table: { 6 | display: 'table', 7 | marginTop: 10, 8 | }, 9 | row: { 10 | display: 'table-row', 11 | }, 12 | cell: { 13 | display: 'table-cell', 14 | padding: 10, 15 | }, 16 | }; 17 | 18 | const Table = ({ table, toPercent }) => ( 19 |
20 | {table.map((row, i) => ( 21 |
22 | {row.map((x, j) => ( 23 |
27 | {toPercent(x)} 28 |
29 | ))} 30 |
31 | ))} 32 |
33 | ); 34 | 35 | export default Radium(Table); 36 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/decouple-cell/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v2-plugin-decouple-cell", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v2-plugin/decouple-cell", 7 | "build": "devBuild --package styled-components/v2-plugin/decouple-cell" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0", 12 | "babel-plugin-styled-components": "1.1.4" 13 | }, 14 | "dependencies": { 15 | "styled-components": "2.0.0-15", 16 | "benchmarks-utils": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "styled-components-v2-plugin-decouple-cell", 20 | "link": "https://github.com/styled-components/styled-components/tree/v2", 21 | "useCSS": true 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-inline/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import 'rockey-react/speedy'; 3 | import rockey from 'rockey-react'; 4 | 5 | const Table = rockey.div` 6 | display: table; 7 | margin-top: 10px; 8 | `; 9 | 10 | const Row = rockey.div` 11 | display: table-row; 12 | `; 13 | 14 | const Cell = rockey.div` 15 | display: table-cell; 16 | padding: 10px; 17 | `; 18 | 19 | export default ({ table, toPercent }) => ( 20 | 21 | {table.map((row, i) => ( 22 | 23 | {row.map((x, j) => ( 24 | 29 | {toPercent(x)} 30 | 31 | ))} 32 | 33 | ))} 34 |
35 | ); 36 | -------------------------------------------------------------------------------- /packages/benchmarks-utils/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "benchmarks-utils", 3 | "version": "1.0.0", 4 | "main": "./lib/index.js", 5 | "scripts": { 6 | "postinstall": "webpack --hide-modules --env build" 7 | }, 8 | "license": "MIT", 9 | "devDependencies": { 10 | "babel": "6.5.2", 11 | "babel-core": "6.22.1", 12 | "babel-eslint": "7.1.1", 13 | "babel-loader": "6.2.10", 14 | "babel-plugin-add-module-exports": "0.1.2", 15 | "babel-plugin-transform-async-to-generator": "6.24.1", 16 | "babel-plugin-transform-class-properties": "6.23.0", 17 | "babel-plugin-transform-regenerator": "6.24.1", 18 | "babel-plugin-transform-runtime": "6.23.0", 19 | "babel-preset-es2015": "6.22.0", 20 | "babel-preset-react": "6.23.0", 21 | "react": "15.6", 22 | "webpack": "2.2.1", 23 | "yargs": "6.6.0" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /packages/benchmarks/cxs/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import cxs from 'cxs'; 3 | 4 | const cxsTable = cxs({ 5 | display: 'table', 6 | marginTop: 10, 7 | }); 8 | 9 | const cxsRow = cxs({ 10 | display: 'table-row', 11 | }); 12 | 13 | const cxsCell = cxs({ 14 | display: 'table-cell', 15 | padding: 10, 16 | }); 17 | 18 | const Table = ({ table, toPercent }) => ( 19 |
20 | {table.map((row, i) => ( 21 |
22 | {row.map((x, j) => ( 23 |
28 | {toPercent(x)} 29 |
30 | ))} 31 |
32 | ))} 33 |
34 | ); 35 | 36 | export default Table; 37 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/inline-style/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "table-styled-components-big-table-v2-plugin-inline-style", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "devServer --package styled-components/v2-plugin/inline-style", 7 | "build": "devBuild --package styled-components/v2-plugin/inline-style" 8 | }, 9 | "license": "MIT", 10 | "devDependencies": { 11 | "dev-tasks": "1.0.0", 12 | "babel-plugin-styled-components": "1.1.4" 13 | }, 14 | "dependencies": { 15 | "styled-components": "2.0.0-15", 16 | "benchmarks-utils": "1.0.0" 17 | }, 18 | "benchmarks": { 19 | "name": "styled-components-v2-plugin-inline-styles", 20 | "link": "https://github.com/styled-components/styled-components/tree/v2", 21 | "useInlineStyles": true, 22 | "useCSS": true 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/css-mode/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { css } from 'emotion'; 3 | 4 | const tableClass = css` 5 | display: table; 6 | margin-top: 10px; 7 | `; 8 | 9 | const rowClass = css` 10 | display: table-row; 11 | `; 12 | 13 | const cellClass = css` 14 | display: table-cell; 15 | padding: 10px; 16 | `; 17 | 18 | const Table = ({ table, toPercent }) => ( 19 |
20 | {table.map((row, i) => ( 21 |
22 | {row.map((x, j) => ( 23 |
28 | {toPercent(x)} 29 |
30 | ))} 31 |
32 | ))} 33 |
34 | ); 35 | 36 | export default Table; 37 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jsx/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Table = ({ table, toPercent }) => ( 4 |
5 | {table.map((row, i) => ( 6 |
7 | {row.map((x, j) => ( 8 |
13 | {toPercent(x)} 14 |
15 | ))} 16 |
17 | ))} 18 | 33 |
34 | ); 35 | 36 | export default Table; 37 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/glamor-css/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import glamorous from 'glamorous'; 3 | import { css } from 'glamor'; 4 | 5 | const Table = glamorous.div({ 6 | display: 'table', 7 | marginTop: 10, 8 | }); 9 | 10 | const Row = glamorous.div({ 11 | display: 'table-row', 12 | }); 13 | 14 | const Cell = glamorous.div({ 15 | display: 'table-cell', 16 | padding: '10px', 17 | }); 18 | 19 | export default ({ table, toPercent }) => ( 20 | 21 | {table.map((row, i) => ( 22 | 23 | {row.map((x, j) => { 24 | const style = css({ background: `rgba(74, 174, 53, ${x})` }); 25 | return ( 26 | 27 | {toPercent(x)} 28 | 29 | ); 30 | })} 31 | 32 | ))} 33 |
34 | ); 35 | -------------------------------------------------------------------------------- /packages/benchmarks/aphrodite/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { StyleSheet, css } from 'aphrodite'; 3 | 4 | const styles = StyleSheet.create({ 5 | table: { 6 | display: 'table', 7 | marginTop: 10, 8 | }, 9 | row: { 10 | display: 'table-row', 11 | }, 12 | cell: { 13 | display: 'table-cell', 14 | padding: 10, 15 | }, 16 | }); 17 | 18 | const Table = ({ table, toPercent }) => ( 19 |
20 | {table.map((row, i) => ( 21 |
22 | {row.map((x, j) => ( 23 |
28 | {toPercent(x)} 29 |
30 | ))} 31 |
32 | ))} 33 |
34 | ); 35 | 36 | export default Table; 37 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/w-o-plugins/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { create as createJss } from 'jss'; 3 | import createStyled from 'styled-jss/createStyled'; 4 | 5 | const jss = createJss(); 6 | 7 | const Styled = createStyled(jss); 8 | const styled = Styled(); 9 | 10 | const Table = styled('div', { 11 | display: 'table', 12 | marginTop: '10px', 13 | }); 14 | 15 | const Row = styled('div', { 16 | display: 'table-row', 17 | }); 18 | 19 | const Cell = styled('div', { 20 | display: 'table-cell', 21 | padding: '10px', 22 | background: props => `rgba(74, 174, 53, ${props.value})`, 23 | }); 24 | 25 | const TableComponent = ({ table, toPercent }) => ( 26 | 27 | {table.map((row, i) => ( 28 | 29 | {row.map((x, j) => ( 30 | {toPercent(x)} 31 | ))} 32 | 33 | ))} 34 |
35 | ); 36 | 37 | export default TableComponent; 38 | -------------------------------------------------------------------------------- /packages/benchmarks/react-jss/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import injectSheet from 'react-jss'; 3 | 4 | const styles = { 5 | table: { 6 | display: 'table', 7 | marginTop: 10, 8 | }, 9 | row: { 10 | display: 'table-row', 11 | }, 12 | }; 13 | 14 | const stylesCell = { 15 | cell: { 16 | display: 'table-cell', 17 | padding: 10, 18 | background: props => `rgba(74, 174, 53, ${props.value})`, 19 | }, 20 | }; 21 | 22 | const CellComponent = ({ classes, children }) => ( 23 |
{children}
24 | ); 25 | 26 | const Cell = injectSheet(stylesCell)(CellComponent); 27 | 28 | const Table = ({ classes, table, toPercent }) => ( 29 |
30 | {table.map((row, i) => ( 31 |
32 | {row.map((x, j) => ( 33 | {toPercent(x)} 34 | ))} 35 |
36 | ))} 37 |
38 | ); 39 | 40 | export default injectSheet(styles)(Table); 41 | -------------------------------------------------------------------------------- /packages/benchmarks/fela/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { createRenderer } from 'fela'; 3 | import { Provider, createComponent } from 'react-fela'; 4 | 5 | const Table = createComponent(props => ({ 6 | display: 'table', 7 | 'margin-top': '10px', 8 | })); 9 | 10 | const Row = createComponent(props => ({ 11 | display: 'table-row', 12 | })); 13 | 14 | const Cell = createComponent(props => ({ 15 | display: 'table-cell', 16 | padding: '10px', 17 | background: `rgba(74, 174, 53, ${props.value})`, 18 | })); 19 | 20 | const renderer = createRenderer(); 21 | const mountNode = document.createElement('style'); 22 | document.head.appendChild(mountNode); 23 | 24 | export default ({ table, toPercent }) => ( 25 | 26 | 27 | {table.map((row, i) => ( 28 | 29 | {row.map((x, j) => ( 30 | {toPercent(x)} 31 | ))} 32 | 33 | ))} 34 |
35 |
36 | ); 37 | -------------------------------------------------------------------------------- /packages/benchmarks/emotion/simple/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@threepointone/glam@1.0.6": 6 | version "1.0.6" 7 | resolved "https://registry.yarnpkg.com/@threepointone/glam/-/glam-1.0.6.tgz#0aba87c7f46429c240b2969c4ae51077cd576490" 8 | dependencies: 9 | babylon "^6.17.0" 10 | touch "^1.0.0" 11 | 12 | abbrev@1: 13 | version "1.1.0" 14 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 15 | 16 | babylon@^6.17.0: 17 | version "6.17.0" 18 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932" 19 | 20 | nopt@~1.0.10: 21 | version "1.0.10" 22 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 23 | dependencies: 24 | abbrev "1" 25 | 26 | touch@^1.0.0: 27 | version "1.0.0" 28 | resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" 29 | dependencies: 30 | nopt "~1.0.10" 31 | -------------------------------------------------------------------------------- /packages/benchmarks/styletron/client/Table.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { styled, StyletronProvider } from 'styletron-react'; 3 | import Styletron from 'styletron-client'; 4 | 5 | const Table = styled('div', { 6 | display: 'table', 7 | marginTop: '10px', 8 | }); 9 | 10 | const Row = styled('div', { 11 | display: 'table-row', 12 | }); 13 | 14 | const Cell = styled('div', props => ({ 15 | display: 'table-cell', 16 | padding: '10px', 17 | background: `rgba(74, 174, 53, ${props.value})`, 18 | })); 19 | 20 | const TableComponent = ({ table, toPercent }) => ( 21 | 22 | {table.map((row, i) => ( 23 | 24 | {row.map((x, j) => ( 25 | {toPercent(x)} 26 | ))} 27 | 28 | ))} 29 |
30 | ); 31 | 32 | const styleSheet = document.createElement('style'); 33 | document.head.appendChild(styleSheet); 34 | 35 | const styletron = new Styletron([styleSheet]); 36 | 37 | export default ({ table, toPercent }) => ( 38 | 39 | 40 | 41 | ); 42 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | language: node_js 3 | node_js: 4 | - "7.9" 5 | 6 | services: 7 | - docker 8 | 9 | before_install: 10 | - docker pull justinribeiro/chrome-headless 11 | - docker run -d --net host justinribeiro/chrome-headless 12 | - curl -o- -L https://yarnpkg.com/install.sh | bash 13 | - export PATH=$HOME/.yarn/bin:$PATH 14 | - docker ps -a 15 | - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi) 16 | - echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$PR, BRANCH=$BRANCH" 17 | 18 | install: 19 | - yarn add lerna 20 | - lerna bootstrap --npm-client=yarn 21 | - yarn 22 | 23 | cache: 24 | yarn: true 25 | 26 | script: 27 | - npm run benchmark 28 | 29 | after_success: 30 | - git config user.name "A-gambit" 31 | - git config user.email "a.gambit.gregory@gmail.com" 32 | - git config user.password $GIT_TOKEN 33 | - git remote add upstream "https://$GIT_TOKEN@github.com/A-gambit/CSS-IN-JS-Benchmarks.git" 34 | - git fetch upstream 35 | - git reset upstream/$BRANCH 36 | - git add RESULT.md 37 | - git commit -m 'Travis CI Automaticaly Benchmarks Update [ci skip]' 38 | - git push -q upstream HEAD:$BRANCH 39 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "lerna": "2.0.0-rc.4", 3 | "packages": [ 4 | "packages/tests", 5 | "packages/benchmarks-utils", 6 | "packages/dev-tasks", 7 | "packages/benchmarks/styled-jss/styled-jss", 8 | "packages/benchmarks/styled-jss/w-o-plugins", 9 | "packages/benchmarks/styled-components/v1/decouple-cell", 10 | "packages/benchmarks/styled-components/v1/inline-style", 11 | "packages/benchmarks/styled-components/v1/simple", 12 | "packages/benchmarks/styled-components/v2/decouple-cell", 13 | "packages/benchmarks/styled-components/v2/inline-style", 14 | "packages/benchmarks/styled-components/v2/simple", 15 | "packages/benchmarks/styled-components/v2-plugin/decouple-cell", 16 | "packages/benchmarks/styled-components/v2-plugin/inline-style", 17 | "packages/benchmarks/styled-components/v2-plugin/simple", 18 | "packages/benchmarks/aphrodite", 19 | "packages/benchmarks/cxs", 20 | "packages/benchmarks/emotion/css-mode", 21 | "packages/benchmarks/emotion/inline-mode", 22 | "packages/benchmarks/emotion/simple", 23 | "packages/benchmarks/glamorous/dynamic-styles", 24 | "packages/benchmarks/glamorous/glamor-css", 25 | "packages/benchmarks/react", 26 | "packages/benchmarks/react-jss", 27 | "packages/benchmarks/styled-jsx" 28 | ], 29 | "version": "1.0.0" 30 | } 31 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "babel": "6.5.2", 4 | "babel-core": "6.22.1", 5 | "babel-eslint": "7.1.1", 6 | "babel-loader": "6.2.10", 7 | "babel-plugin-add-module-exports": "0.1.2", 8 | "babel-plugin-transform-async-to-generator": "6.24.1", 9 | "babel-plugin-transform-class-properties": "6.23.0", 10 | "babel-plugin-transform-regenerator": "6.24.1", 11 | "babel-plugin-transform-runtime": "6.23.0", 12 | "babel-preset-es2015": "6.22.0", 13 | "babel-preset-react": "6.23.0", 14 | "babel-preset-react-hmre": "1.1.1", 15 | "babel-runtime": "6.23.0", 16 | "connect": "3.6.1", 17 | "cross-env": "3.1.4", 18 | "css-loader": "0.28.0", 19 | "extract-text-webpack-plugin": "^2.1.2", 20 | "file-loader": "0.10.1", 21 | "husky": "0.13.3", 22 | "lerna": "2.0.0-rc.4", 23 | "lighthouse": "1.6.5", 24 | "lint-staged": "3.4.0", 25 | "prettier": "1.2.2", 26 | "react": "^15.6.1", 27 | "react-dom": "^15.6.1", 28 | "serve-static": "1.12.1", 29 | "shelljs": "0.7.7", 30 | "style-loader": "0.16.1", 31 | "webpack": "2.2.1", 32 | "webpack-dev-server": "2.4.1", 33 | "yargs": "6.6.0" 34 | }, 35 | "scripts": { 36 | "benchmark": "node ./packages/tests/", 37 | "format": "find . -name '*.js' | grep -v node_modules | xargs prettier --trailing-comma es5 --single-quote --write", 38 | "precommit": "lint-staged" 39 | }, 40 | "lint-staged": { 41 | "*.js": [ 42 | "prettier --trailing-comma es5 --single-quote --write", 43 | "git add" 44 | ] 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CSS in JS Benchmarks 2 | 3 | ## Big Table 4 | 5 | ![gif](https://github.com/A-gambit/CSS-IN-JS-Benchmarks/blob/master/img.gif) 6 | 7 | Big Table examples, use: 8 | - react + css 9 | - aphrodite 10 | - glamorous 11 | - glam 12 | - fela 13 | - react-jss 14 | - radium 15 | - rockey 16 | - styled-components 17 | - styled-jsx 18 | - styletron 19 | - etc 20 | 21 | Average results are [here](https://github.com/A-gambit/CSS-IN-JS-Benchmarks/blob/master/RESULT.md). 22 | 23 | New demos and benchmarks will be soon :) 24 | 25 | ## Contribution 26 | 27 | Here is a little contributing guild: 28 | 29 | - Use `node` version `7.9+` 30 | - Install `lerna` and `yarn` (optional) 31 | - `lerna bootstrap` or `lerna bootstrap --npm-client=yarn` - install deps in packages 32 | - `npm i` 33 | - `lerna run build` - make builds for all packages 34 | 35 | 1. Create an appropriate folder for your CSS in JS new implementation. Use [react](https://github.com/A-gambit/CSS-IN-JS-Benchmarks/tree/master/packages/big-table/react) as example of boilerplate. 36 | 2. Add description for your CSS in JS in package.json. [Example](https://github.com/A-gambit/CSS-IN-JS-Benchmarks/blob/master/packages/big-table/aphrodite/package.json#L33-L37) 37 | 3. Add your solution for [Table.js](https://github.com/A-gambit/CSS-IN-JS-Benchmarks/blob/master/packages/big-table/react/client/Table.js) file. 38 | 4. Run benchmarks: `npm run benchmark`. To tun tests for specific packageor - `npm run benchmark -- rockey styled-jss radium` 39 | 40 | 41 | Add your favorite CSS in JS implementation! 42 | Your contributions and suggestions are heartily welcome. =^.^= 43 | -------------------------------------------------------------------------------- /packages/benchmarks/aphrodite/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | aphrodite@1.2.0: 6 | version "1.2.0" 7 | resolved "https://registry.yarnpkg.com/aphrodite/-/aphrodite-1.2.0.tgz#c2f30bd1cdf6a550f4a29a0f1cf22ed10e825764" 8 | dependencies: 9 | asap "^2.0.3" 10 | inline-style-prefixer "^3.0.1" 11 | string-hash "^1.1.3" 12 | 13 | asap@^2.0.3: 14 | version "2.0.5" 15 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 16 | 17 | bowser@^1.6.0: 18 | version "1.6.1" 19 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 20 | 21 | css-in-js-utils@^1.0.3: 22 | version "1.0.3" 23 | resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-1.0.3.tgz#9ac7e02f763cf85d94017666565ed68a5b5f3215" 24 | dependencies: 25 | hyphenate-style-name "^1.0.2" 26 | 27 | hyphenate-style-name@^1.0.2: 28 | version "1.0.2" 29 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 30 | 31 | inline-style-prefixer@^3.0.1: 32 | version "3.0.2" 33 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.2.tgz#989865e0c5de7a946acbea71e16e02741efe0dd7" 34 | dependencies: 35 | bowser "^1.6.0" 36 | css-in-js-utils "^1.0.3" 37 | 38 | string-hash@^1.1.3: 39 | version "1.1.3" 40 | resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" 41 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@^2.0.5: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | classnames@^2.2.5: 10 | version "2.2.5" 11 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" 12 | 13 | css-vendor@^0.3.8: 14 | version "0.3.8" 15 | resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa" 16 | dependencies: 17 | is-in-browser "^1.0.2" 18 | 19 | is-in-browser@^1.0.2: 20 | version "1.1.3" 21 | resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" 22 | 23 | is-react-prop@^0.1.2: 24 | version "0.1.2" 25 | resolved "https://registry.yarnpkg.com/is-react-prop/-/is-react-prop-0.1.2.tgz#b22fbcf6190e91e81939132a110bb94642b56903" 26 | 27 | lodash@^4.17.4: 28 | version "4.17.4" 29 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 30 | 31 | rockey-css-parse@^0.0.14: 32 | version "0.0.14" 33 | resolved "https://registry.yarnpkg.com/rockey-css-parse/-/rockey-css-parse-0.0.14.tgz#5e927753a17b255d7160fac3df4be061c09c9a9c" 34 | dependencies: 35 | lodash "^4.17.4" 36 | 37 | rockey-react@=0.0.14: 38 | version "0.0.14" 39 | resolved "https://registry.yarnpkg.com/rockey-react/-/rockey-react-0.0.14.tgz#9cd8193735bcb2de9fdbcbd0851a568cad960752" 40 | dependencies: 41 | classnames "^2.2.5" 42 | is-react-prop "^0.1.2" 43 | lodash "^4.17.4" 44 | rockey "^0.0.14" 45 | 46 | rockey@^0.0.14: 47 | version "0.0.14" 48 | resolved "https://registry.yarnpkg.com/rockey/-/rockey-0.0.14.tgz#00e32440d7c763d7b7cf8be2f94fe3f2d2797754" 49 | dependencies: 50 | asap "^2.0.5" 51 | classnames "^2.2.5" 52 | css-vendor "^0.3.8" 53 | lodash "^4.17.4" 54 | rockey-css-parse "^0.0.14" 55 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-inline/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@^2.0.5: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | classnames@^2.2.5: 10 | version "2.2.5" 11 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" 12 | 13 | css-vendor@^0.3.8: 14 | version "0.3.8" 15 | resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa" 16 | dependencies: 17 | is-in-browser "^1.0.2" 18 | 19 | is-in-browser@^1.0.2: 20 | version "1.1.3" 21 | resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" 22 | 23 | is-react-prop@^0.1.2: 24 | version "0.1.2" 25 | resolved "https://registry.yarnpkg.com/is-react-prop/-/is-react-prop-0.1.2.tgz#b22fbcf6190e91e81939132a110bb94642b56903" 26 | 27 | lodash@^4.17.4: 28 | version "4.17.4" 29 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 30 | 31 | rockey-css-parse@^0.0.14: 32 | version "0.0.14" 33 | resolved "https://registry.yarnpkg.com/rockey-css-parse/-/rockey-css-parse-0.0.14.tgz#5e927753a17b255d7160fac3df4be061c09c9a9c" 34 | dependencies: 35 | lodash "^4.17.4" 36 | 37 | rockey-react@=0.0.14: 38 | version "0.0.14" 39 | resolved "https://registry.yarnpkg.com/rockey-react/-/rockey-react-0.0.14.tgz#9cd8193735bcb2de9fdbcbd0851a568cad960752" 40 | dependencies: 41 | classnames "^2.2.5" 42 | is-react-prop "^0.1.2" 43 | lodash "^4.17.4" 44 | rockey "^0.0.14" 45 | 46 | rockey@^0.0.14: 47 | version "0.0.14" 48 | resolved "https://registry.yarnpkg.com/rockey/-/rockey-0.0.14.tgz#00e32440d7c763d7b7cf8be2f94fe3f2d2797754" 49 | dependencies: 50 | asap "^2.0.5" 51 | classnames "^2.2.5" 52 | css-vendor "^0.3.8" 53 | lodash "^4.17.4" 54 | rockey-css-parse "^0.0.14" 55 | -------------------------------------------------------------------------------- /packages/benchmarks/rockey/rockey-speedy/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@^2.0.5: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | classnames@^2.2.5: 10 | version "2.2.5" 11 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" 12 | 13 | css-vendor@^0.3.8: 14 | version "0.3.8" 15 | resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa" 16 | dependencies: 17 | is-in-browser "^1.0.2" 18 | 19 | is-in-browser@^1.0.2: 20 | version "1.1.3" 21 | resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" 22 | 23 | is-react-prop@^0.1.2: 24 | version "0.1.2" 25 | resolved "https://registry.yarnpkg.com/is-react-prop/-/is-react-prop-0.1.2.tgz#b22fbcf6190e91e81939132a110bb94642b56903" 26 | 27 | lodash@^4.17.4: 28 | version "4.17.4" 29 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 30 | 31 | rockey-css-parse@^0.0.14: 32 | version "0.0.14" 33 | resolved "https://registry.yarnpkg.com/rockey-css-parse/-/rockey-css-parse-0.0.14.tgz#5e927753a17b255d7160fac3df4be061c09c9a9c" 34 | dependencies: 35 | lodash "^4.17.4" 36 | 37 | rockey-react@=0.0.14: 38 | version "0.0.14" 39 | resolved "https://registry.yarnpkg.com/rockey-react/-/rockey-react-0.0.14.tgz#9cd8193735bcb2de9fdbcbd0851a568cad960752" 40 | dependencies: 41 | classnames "^2.2.5" 42 | is-react-prop "^0.1.2" 43 | lodash "^4.17.4" 44 | rockey "^0.0.14" 45 | 46 | rockey@^0.0.14: 47 | version "0.0.14" 48 | resolved "https://registry.yarnpkg.com/rockey/-/rockey-0.0.14.tgz#00e32440d7c763d7b7cf8be2f94fe3f2d2797754" 49 | dependencies: 50 | asap "^2.0.5" 51 | classnames "^2.2.5" 52 | css-vendor "^0.3.8" 53 | lodash "^4.17.4" 54 | rockey-css-parse "^0.0.14" 55 | -------------------------------------------------------------------------------- /RESULT.md: -------------------------------------------------------------------------------- 1 | ## Results: 2 | *sorted by rerender time* 3 | 4 | Solution | Use CSS | Use Inline-Styles | Mount Time (ms) | Rerender time (ms) 5 | :--- | :--- | :--- | :--- | :--- 6 | [react (without styles)](https://github.com/facebook/react) | - | - | 17.68 | 54.5 7 | [emotion-css-mode](https://github.com/tkh44/emotion) | + | + | 29.31 | 61.09 8 | [styled-jsx](https://github.com/zeit/styled-jsx) | + | + | 33.97 | 63.85 9 | [aphrodite](https://github.com/Khan/aphrodite) | + | + | 37.92 | 68.98 10 | [cxs](https://github.com/jxnblk/cxs) | + | + | 30.94 | 69.21 11 | [styled-jss-w-o-plugins](https://github.com/cssinjs/styled-jss) | + | - | 89.94 | 79.07 12 | [styled-components-v1-inline-styles](https://github.com/styled-components/styled-components) | + | + | 79.93 | 83.8 13 | [styled-components-v2-inline-styles](https://github.com/styled-components/styled-components/tree/v2) | + | + | 81.87 | 85.16 14 | [emotion-inline-mode](https://github.com/tkh44/emotion) | + | - | 68.21 | 85.62 15 | [emotion-simple](https://github.com/threepointone/emotion) | + | - | 64.95 | 86.43 16 | [styled-jss](https://github.com/cssinjs/styled-jss) | + | - | 119.61 | 90.87 17 | [styled-components-v2-plugin-inline-styles](https://github.com/styled-components/styled-components/tree/v2) | + | + | 91.6 | 91.01 18 | [glamorous](https://github.com/paypal/glamorous) | + | - | 144.71 | 216.96 19 | [react-jss](https://github.com/cssinjs/react-jss) | + | - | 140.9 | 242.18 20 | [glamorous-glamour-css](https://github.com/paypal/glamorous) | + | - | 195.68 | 314.95 21 | [styled-components-v2-plugin-decouple-cell](https://github.com/styled-components/styled-components/tree/v2) | + | - | 935.17 | 2,297.57 22 | [styled-components-v2-decouple-cell](https://github.com/styled-components/styled-components/tree/v2) | + | - | 886.16 | 2,459.95 23 | [styled-components-v2-plugin](https://github.com/styled-components/styled-components/tree/v2) | + | - | 1,263.42 | 3,326.45 24 | [styled-components-v2](https://github.com/styled-components/styled-components/tree/v2) | + | - | 1,260.35 | 3,424.29 25 | [styled-components-v1](https://github.com/styled-components/styled-components) | + | - | 1,401.69 | 3,660.68 26 | [styled-components-v1-decouple-cell](https://github.com/styled-components/styled-components) | + | - | 1,455.37 | 3,722.98 27 | -------------------------------------------------------------------------------- /packages/benchmarks-utils/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | function getTable(max = 30) { 4 | let table = []; 5 | for (let i = 0; i < max; i++) { 6 | table[i] = [1]; 7 | for (let j = 1; j < max; j++) { 8 | const next = table[i][j - 1] - Math.random() * table[i][j - 1] / 10; 9 | table[i].push(next.toFixed(4)); 10 | } 11 | } 12 | return table; 13 | } 14 | 15 | function getUniqueSize(table) { 16 | let set = new Set(); 17 | table.forEach(row => row.forEach(x => set.add(x))); 18 | return set.size; 19 | } 20 | 21 | function toPercent(x) { 22 | return (x * 100).toFixed(2).toString() + '%'; 23 | } 24 | 25 | async function runTestRerender() { 26 | const input = document.querySelector('input'); 27 | for (let i = 0; i < 10; i++) { 28 | await new Promise(resolve => { 29 | performance.mark('startRerender' + i); 30 | input.click(); 31 | 32 | setTimeout(() => { 33 | setTimeout(() => { 34 | performance.mark('endRerender' + i); 35 | performance.measure( 36 | 'measureRerender' + i, 37 | 'startRerender' + i, 38 | 'endRerender' + i 39 | ); 40 | resolve(); 41 | }, 0); 42 | }, 0); 43 | }); 44 | } 45 | } 46 | 47 | function willMount() { 48 | if (document.location.search.includes('test=true')) { 49 | performance.mark('startMount'); 50 | } 51 | } 52 | 53 | function didMount() { 54 | if (!document.location.search.includes('test=true')) { 55 | return; 56 | } 57 | performance.mark('endMount'); 58 | performance.measure('measureMount', 'startMount', 'endMount'); 59 | 60 | if (document.location.search.includes('butch=true')) { 61 | return runTestRerender(); 62 | } 63 | 64 | const input = document.querySelector('input'); 65 | performance.mark('startRerender'); 66 | input.click(); 67 | setTimeout(() => { 68 | performance.mark('endRerender'); 69 | performance.measure('measureRerender', 'startRerender', 'endRerender'); 70 | }, 0); 71 | } 72 | 73 | export default class App extends React.Component { 74 | constructor(props) { 75 | super(props); 76 | this.state = { 77 | table: getTable(), 78 | }; 79 | } 80 | 81 | componentWillMount() { 82 | willMount(); 83 | } 84 | 85 | componentDidMount() { 86 | didMount(); 87 | } 88 | 89 | handleClick = () => { 90 | this.setState({ table: getTable() }); 91 | }; 92 | 93 | render() { 94 | const { table: Table } = this.props; 95 | return ( 96 |
97 |
98 | 99 | {' '} 100 | {getUniqueSize(this.state.table)} unique cells 101 |
102 | 103 | 104 | ); 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/styled-jss/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | css-vendor@^0.3.8: 6 | version "0.3.8" 7 | resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa" 8 | dependencies: 9 | is-in-browser "^1.0.2" 10 | 11 | is-in-browser@1.0.2, is-in-browser@^1.0.2: 12 | version "1.0.2" 13 | resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.0.2.tgz#f688bea8f1e5aadc3244ebc870d188cfb9b613cf" 14 | 15 | is-react-prop@^0.1.2: 16 | version "0.1.2" 17 | resolved "https://registry.yarnpkg.com/is-react-prop/-/is-react-prop-0.1.2.tgz#b22fbcf6190e91e81939132a110bb94642b56903" 18 | 19 | js-tokens@^3.0.0: 20 | version "3.0.1" 21 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 22 | 23 | jss-camel-case@^4.0.0: 24 | version "4.0.0" 25 | resolved "https://registry.yarnpkg.com/jss-camel-case/-/jss-camel-case-4.0.0.tgz#39ef2a137aaa1e2f160ab826845305f8efabcfd5" 26 | 27 | jss-compose@^3.0.0: 28 | version "3.0.1" 29 | resolved "https://registry.yarnpkg.com/jss-compose/-/jss-compose-3.0.1.tgz#0ac07f20baf1d523c211016d383dab08dcfe4186" 30 | dependencies: 31 | warning "^3.0.0" 32 | 33 | jss-default-unit@^6.0.0: 34 | version "6.1.1" 35 | resolved "https://registry.yarnpkg.com/jss-default-unit/-/jss-default-unit-6.1.1.tgz#a9a04887a3860d2a8ceb73ddfbc2ddcf808bacb2" 36 | 37 | jss-expand@^3.0.0: 38 | version "3.0.1" 39 | resolved "https://registry.yarnpkg.com/jss-expand/-/jss-expand-3.0.1.tgz#90f1b30ad0ab700e666ea54f7186341c50d7feed" 40 | 41 | jss-extend@^4.0.0: 42 | version "4.0.1" 43 | resolved "https://registry.yarnpkg.com/jss-extend/-/jss-extend-4.0.1.tgz#6b716a1b217ba32715dbcb69940ec67b35c415dc" 44 | dependencies: 45 | warning "^3.0.0" 46 | 47 | jss-global@^1.0.0: 48 | version "1.0.1" 49 | resolved "https://registry.yarnpkg.com/jss-global/-/jss-global-1.0.1.tgz#36731778f6d8649110611f7c178dbcd60fd92b24" 50 | 51 | jss-nested@^4.0.0: 52 | version "4.0.1" 53 | resolved "https://registry.yarnpkg.com/jss-nested/-/jss-nested-4.0.1.tgz#f50cc206430c8a920ccd54e3b756f7fc72455130" 54 | dependencies: 55 | warning "^3.0.0" 56 | 57 | jss-preset-default@^2.0.0: 58 | version "2.0.0" 59 | resolved "https://registry.yarnpkg.com/jss-preset-default/-/jss-preset-default-2.0.0.tgz#0368d99626b31067e8d04ab3c7cb17ba8354d422" 60 | dependencies: 61 | jss-camel-case "^4.0.0" 62 | jss-compose "^3.0.0" 63 | jss-default-unit "^6.0.0" 64 | jss-expand "^3.0.0" 65 | jss-extend "^4.0.0" 66 | jss-global "^1.0.0" 67 | jss-nested "^4.0.0" 68 | jss-props-sort "^4.0.0" 69 | jss-vendor-prefixer "^5.0.0" 70 | 71 | jss-props-sort@^4.0.0: 72 | version "4.0.0" 73 | resolved "https://registry.yarnpkg.com/jss-props-sort/-/jss-props-sort-4.0.0.tgz#ef4239c6795ca304c18dce9e0395a1789ed9f78a" 74 | 75 | jss-vendor-prefixer@^5.0.0: 76 | version "5.1.0" 77 | resolved "https://registry.yarnpkg.com/jss-vendor-prefixer/-/jss-vendor-prefixer-5.1.0.tgz#59b73544de81e6b2efd71f6d3b744671826865a2" 78 | dependencies: 79 | css-vendor "^0.3.8" 80 | 81 | jss@^7.1.1: 82 | version "7.1.1" 83 | resolved "https://registry.yarnpkg.com/jss/-/jss-7.1.1.tgz#b04ce8bfa60123a8b423e0edf17af8d008a5e8e5" 84 | dependencies: 85 | is-in-browser "1.0.2" 86 | warning "3.0.0" 87 | 88 | loose-envify@^1.0.0: 89 | version "1.3.1" 90 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 91 | dependencies: 92 | js-tokens "^3.0.0" 93 | 94 | styled-jss@0.6.3: 95 | version "0.6.3" 96 | resolved "https://registry.yarnpkg.com/styled-jss/-/styled-jss-0.6.3.tgz#c31dc46a57832501b111ee91b99a3a198766fcab" 97 | dependencies: 98 | is-react-prop "^0.1.2" 99 | jss "^7.1.1" 100 | jss-preset-default "^2.0.0" 101 | 102 | warning@3.0.0, warning@^3.0.0: 103 | version "3.0.0" 104 | resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" 105 | dependencies: 106 | loose-envify "^1.0.0" 107 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-jss/w-o-plugins/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | css-vendor@^0.3.8: 6 | version "0.3.8" 7 | resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa" 8 | dependencies: 9 | is-in-browser "^1.0.2" 10 | 11 | is-in-browser@1.0.2, is-in-browser@^1.0.2: 12 | version "1.0.2" 13 | resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.0.2.tgz#f688bea8f1e5aadc3244ebc870d188cfb9b613cf" 14 | 15 | is-react-prop@^0.1.2: 16 | version "0.1.2" 17 | resolved "https://registry.yarnpkg.com/is-react-prop/-/is-react-prop-0.1.2.tgz#b22fbcf6190e91e81939132a110bb94642b56903" 18 | 19 | js-tokens@^3.0.0: 20 | version "3.0.1" 21 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 22 | 23 | jss-camel-case@^4.0.0: 24 | version "4.0.0" 25 | resolved "https://registry.yarnpkg.com/jss-camel-case/-/jss-camel-case-4.0.0.tgz#39ef2a137aaa1e2f160ab826845305f8efabcfd5" 26 | 27 | jss-compose@^3.0.0: 28 | version "3.0.1" 29 | resolved "https://registry.yarnpkg.com/jss-compose/-/jss-compose-3.0.1.tgz#0ac07f20baf1d523c211016d383dab08dcfe4186" 30 | dependencies: 31 | warning "^3.0.0" 32 | 33 | jss-default-unit@^6.0.0: 34 | version "6.1.1" 35 | resolved "https://registry.yarnpkg.com/jss-default-unit/-/jss-default-unit-6.1.1.tgz#a9a04887a3860d2a8ceb73ddfbc2ddcf808bacb2" 36 | 37 | jss-expand@^3.0.0: 38 | version "3.0.1" 39 | resolved "https://registry.yarnpkg.com/jss-expand/-/jss-expand-3.0.1.tgz#90f1b30ad0ab700e666ea54f7186341c50d7feed" 40 | 41 | jss-extend@^4.0.0: 42 | version "4.0.1" 43 | resolved "https://registry.yarnpkg.com/jss-extend/-/jss-extend-4.0.1.tgz#6b716a1b217ba32715dbcb69940ec67b35c415dc" 44 | dependencies: 45 | warning "^3.0.0" 46 | 47 | jss-global@^1.0.0: 48 | version "1.0.1" 49 | resolved "https://registry.yarnpkg.com/jss-global/-/jss-global-1.0.1.tgz#36731778f6d8649110611f7c178dbcd60fd92b24" 50 | 51 | jss-nested@^4.0.0: 52 | version "4.0.1" 53 | resolved "https://registry.yarnpkg.com/jss-nested/-/jss-nested-4.0.1.tgz#f50cc206430c8a920ccd54e3b756f7fc72455130" 54 | dependencies: 55 | warning "^3.0.0" 56 | 57 | jss-preset-default@^2.0.0: 58 | version "2.0.0" 59 | resolved "https://registry.yarnpkg.com/jss-preset-default/-/jss-preset-default-2.0.0.tgz#0368d99626b31067e8d04ab3c7cb17ba8354d422" 60 | dependencies: 61 | jss-camel-case "^4.0.0" 62 | jss-compose "^3.0.0" 63 | jss-default-unit "^6.0.0" 64 | jss-expand "^3.0.0" 65 | jss-extend "^4.0.0" 66 | jss-global "^1.0.0" 67 | jss-nested "^4.0.0" 68 | jss-props-sort "^4.0.0" 69 | jss-vendor-prefixer "^5.0.0" 70 | 71 | jss-props-sort@^4.0.0: 72 | version "4.0.0" 73 | resolved "https://registry.yarnpkg.com/jss-props-sort/-/jss-props-sort-4.0.0.tgz#ef4239c6795ca304c18dce9e0395a1789ed9f78a" 74 | 75 | jss-vendor-prefixer@^5.0.0: 76 | version "5.1.0" 77 | resolved "https://registry.yarnpkg.com/jss-vendor-prefixer/-/jss-vendor-prefixer-5.1.0.tgz#59b73544de81e6b2efd71f6d3b744671826865a2" 78 | dependencies: 79 | css-vendor "^0.3.8" 80 | 81 | jss@7.1.1, jss@^7.1.1: 82 | version "7.1.1" 83 | resolved "https://registry.yarnpkg.com/jss/-/jss-7.1.1.tgz#b04ce8bfa60123a8b423e0edf17af8d008a5e8e5" 84 | dependencies: 85 | is-in-browser "1.0.2" 86 | warning "3.0.0" 87 | 88 | loose-envify@^1.0.0: 89 | version "1.3.1" 90 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 91 | dependencies: 92 | js-tokens "^3.0.0" 93 | 94 | styled-jss@0.6.3: 95 | version "0.6.3" 96 | resolved "https://registry.yarnpkg.com/styled-jss/-/styled-jss-0.6.3.tgz#c31dc46a57832501b111ee91b99a3a198766fcab" 97 | dependencies: 98 | is-react-prop "^0.1.2" 99 | jss "^7.1.1" 100 | jss-preset-default "^2.0.0" 101 | 102 | warning@3.0.0, warning@^3.0.0: 103 | version "3.0.0" 104 | resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" 105 | dependencies: 106 | loose-envify "^1.0.0" 107 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/glamor-css/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | babel-runtime@^6.18.0: 10 | version "6.23.0" 11 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 12 | dependencies: 13 | core-js "^2.4.0" 14 | regenerator-runtime "^0.10.0" 15 | 16 | core-js@^1.0.0: 17 | version "1.2.7" 18 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 19 | 20 | core-js@^2.4.0: 21 | version "2.4.1" 22 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 23 | 24 | encoding@^0.1.11: 25 | version "0.1.12" 26 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 27 | dependencies: 28 | iconv-lite "~0.4.13" 29 | 30 | fbjs@^0.8.8: 31 | version "0.8.12" 32 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 33 | dependencies: 34 | core-js "^1.0.0" 35 | isomorphic-fetch "^2.1.1" 36 | loose-envify "^1.0.0" 37 | object-assign "^4.1.0" 38 | promise "^7.1.1" 39 | setimmediate "^1.0.5" 40 | ua-parser-js "^0.7.9" 41 | 42 | glamor@2.20.24: 43 | version "2.20.24" 44 | resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.24.tgz#a299af2eec687322634ba38e4a0854d8743d2041" 45 | dependencies: 46 | babel-runtime "^6.18.0" 47 | fbjs "^0.8.8" 48 | object-assign "^4.1.0" 49 | 50 | glamorous@1.0.1: 51 | version "1.0.1" 52 | resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-1.0.1.tgz#df69bd5de7bd39ba4e57c693bb552b8b09cfd995" 53 | 54 | iconv-lite@~0.4.13: 55 | version "0.4.16" 56 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 57 | 58 | is-stream@^1.0.1: 59 | version "1.1.0" 60 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 61 | 62 | isomorphic-fetch@^2.1.1: 63 | version "2.2.1" 64 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 65 | dependencies: 66 | node-fetch "^1.0.1" 67 | whatwg-fetch ">=0.10.0" 68 | 69 | js-tokens@^3.0.0: 70 | version "3.0.1" 71 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 72 | 73 | loose-envify@^1.0.0: 74 | version "1.3.1" 75 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 76 | dependencies: 77 | js-tokens "^3.0.0" 78 | 79 | node-fetch@^1.0.1: 80 | version "1.6.3" 81 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 82 | dependencies: 83 | encoding "^0.1.11" 84 | is-stream "^1.0.1" 85 | 86 | object-assign@^4.1.0: 87 | version "4.1.1" 88 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 89 | 90 | promise@^7.1.1: 91 | version "7.1.1" 92 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 93 | dependencies: 94 | asap "~2.0.3" 95 | 96 | regenerator-runtime@^0.10.0: 97 | version "0.10.5" 98 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 99 | 100 | setimmediate@^1.0.5: 101 | version "1.0.5" 102 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 103 | 104 | ua-parser-js@^0.7.9: 105 | version "0.7.12" 106 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 107 | 108 | whatwg-fetch@>=0.10.0: 109 | version "2.0.3" 110 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 111 | -------------------------------------------------------------------------------- /packages/benchmarks/glamorous/dynamic-styles/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | babel-runtime@^6.18.0: 10 | version "6.23.0" 11 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 12 | dependencies: 13 | core-js "^2.4.0" 14 | regenerator-runtime "^0.10.0" 15 | 16 | core-js@^1.0.0: 17 | version "1.2.7" 18 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 19 | 20 | core-js@^2.4.0: 21 | version "2.4.1" 22 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 23 | 24 | encoding@^0.1.11: 25 | version "0.1.12" 26 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 27 | dependencies: 28 | iconv-lite "~0.4.13" 29 | 30 | fbjs@^0.8.8: 31 | version "0.8.12" 32 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 33 | dependencies: 34 | core-js "^1.0.0" 35 | isomorphic-fetch "^2.1.1" 36 | loose-envify "^1.0.0" 37 | object-assign "^4.1.0" 38 | promise "^7.1.1" 39 | setimmediate "^1.0.5" 40 | ua-parser-js "^0.7.9" 41 | 42 | glamor@2.20.24: 43 | version "2.20.24" 44 | resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.24.tgz#a299af2eec687322634ba38e4a0854d8743d2041" 45 | dependencies: 46 | babel-runtime "^6.18.0" 47 | fbjs "^0.8.8" 48 | object-assign "^4.1.0" 49 | 50 | glamorous@1.0.1: 51 | version "1.0.1" 52 | resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-1.0.1.tgz#df69bd5de7bd39ba4e57c693bb552b8b09cfd995" 53 | 54 | iconv-lite@~0.4.13: 55 | version "0.4.16" 56 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 57 | 58 | is-stream@^1.0.1: 59 | version "1.1.0" 60 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 61 | 62 | isomorphic-fetch@^2.1.1: 63 | version "2.2.1" 64 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 65 | dependencies: 66 | node-fetch "^1.0.1" 67 | whatwg-fetch ">=0.10.0" 68 | 69 | js-tokens@^3.0.0: 70 | version "3.0.1" 71 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 72 | 73 | loose-envify@^1.0.0: 74 | version "1.3.1" 75 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 76 | dependencies: 77 | js-tokens "^3.0.0" 78 | 79 | node-fetch@^1.0.1: 80 | version "1.6.3" 81 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 82 | dependencies: 83 | encoding "^0.1.11" 84 | is-stream "^1.0.1" 85 | 86 | object-assign@^4.1.0: 87 | version "4.1.1" 88 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 89 | 90 | promise@^7.1.1: 91 | version "7.1.1" 92 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 93 | dependencies: 94 | asap "~2.0.3" 95 | 96 | regenerator-runtime@^0.10.0: 97 | version "0.10.5" 98 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 99 | 100 | setimmediate@^1.0.5: 101 | version "1.0.5" 102 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 103 | 104 | ua-parser-js@^0.7.9: 105 | version "0.7.12" 106 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 107 | 108 | whatwg-fetch@>=0.10.0: 109 | version "2.0.3" 110 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 111 | -------------------------------------------------------------------------------- /packages/benchmarks/cxs/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | babel-runtime@^6.18.0: 10 | version "6.23.0" 11 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 12 | dependencies: 13 | core-js "^2.4.0" 14 | regenerator-runtime "^0.10.0" 15 | 16 | core-js@^1.0.0: 17 | version "1.2.7" 18 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 19 | 20 | core-js@^2.4.0: 21 | version "2.4.1" 22 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 23 | 24 | cxs@^3.0.4: 25 | version "3.0.4" 26 | resolved "https://registry.yarnpkg.com/cxs/-/cxs-3.0.4.tgz#2e1a1537742931a53dbe3157afbf121da62df797" 27 | dependencies: 28 | glamor "^2.17.14" 29 | 30 | encoding@^0.1.11: 31 | version "0.1.12" 32 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 33 | dependencies: 34 | iconv-lite "~0.4.13" 35 | 36 | fbjs@^0.8.8: 37 | version "0.8.12" 38 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 39 | dependencies: 40 | core-js "^1.0.0" 41 | isomorphic-fetch "^2.1.1" 42 | loose-envify "^1.0.0" 43 | object-assign "^4.1.0" 44 | promise "^7.1.1" 45 | setimmediate "^1.0.5" 46 | ua-parser-js "^0.7.9" 47 | 48 | glamor@^2.17.14: 49 | version "2.20.24" 50 | resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.24.tgz#a299af2eec687322634ba38e4a0854d8743d2041" 51 | dependencies: 52 | babel-runtime "^6.18.0" 53 | fbjs "^0.8.8" 54 | object-assign "^4.1.0" 55 | 56 | iconv-lite@~0.4.13: 57 | version "0.4.16" 58 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 59 | 60 | is-stream@^1.0.1: 61 | version "1.1.0" 62 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 63 | 64 | isomorphic-fetch@^2.1.1: 65 | version "2.2.1" 66 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 67 | dependencies: 68 | node-fetch "^1.0.1" 69 | whatwg-fetch ">=0.10.0" 70 | 71 | js-tokens@^3.0.0: 72 | version "3.0.1" 73 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 74 | 75 | loose-envify@^1.0.0: 76 | version "1.3.1" 77 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 78 | dependencies: 79 | js-tokens "^3.0.0" 80 | 81 | node-fetch@^1.0.1: 82 | version "1.6.3" 83 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 84 | dependencies: 85 | encoding "^0.1.11" 86 | is-stream "^1.0.1" 87 | 88 | object-assign@^4.1.0: 89 | version "4.1.1" 90 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 91 | 92 | promise@^7.1.1: 93 | version "7.1.1" 94 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 95 | dependencies: 96 | asap "~2.0.3" 97 | 98 | regenerator-runtime@^0.10.0: 99 | version "0.10.5" 100 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 101 | 102 | setimmediate@^1.0.5: 103 | version "1.0.5" 104 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 105 | 106 | ua-parser-js@^0.7.9: 107 | version "0.7.12" 108 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 109 | 110 | whatwg-fetch@>=0.10.0: 111 | version "2.0.3" 112 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 113 | -------------------------------------------------------------------------------- /packages/dev-tasks/src/webpack.config.js: -------------------------------------------------------------------------------- 1 | const webpack = require('webpack'); 2 | const path = require('path'); 3 | const chalk = require('chalk'); 4 | const ExtractTextPlugin = require('extract-text-webpack-plugin'); 5 | 6 | const { argv } = require('yargs'); 7 | const packageName = argv.package; 8 | 9 | const sourcePath = path.join( 10 | __dirname, 11 | '..', 12 | '..', 13 | 'benchmarks', 14 | packageName, 15 | './client' 16 | ); 17 | const staticsPath = path.join( 18 | __dirname, 19 | '..', 20 | '..', 21 | 'benchmarks', 22 | packageName, 23 | './static' 24 | ); 25 | 26 | const isProd = process.NODE_ENV === 'production'; 27 | console.log( 28 | `webpack build with env ${isProd ? chalk.green('production') : chalk.green('development')}` 29 | ); 30 | 31 | const plugins = [ 32 | new webpack.optimize.CommonsChunkPlugin({ 33 | name: 'vendor', 34 | minChunks: Infinity, 35 | filename: 'vendor.bundle.js', 36 | }), 37 | new webpack.EnvironmentPlugin({ 38 | NODE_ENV: process.NODE_ENV, 39 | }), 40 | new webpack.NamedModulesPlugin(), 41 | ]; 42 | 43 | if (isProd) { 44 | plugins.push( 45 | new webpack.LoaderOptionsPlugin({ 46 | minimize: true, 47 | debug: false, 48 | }), 49 | new ExtractTextPlugin('styles.css'), 50 | new webpack.optimize.UglifyJsPlugin({ 51 | compress: { 52 | warnings: false, 53 | screw_ie8: true, 54 | conditionals: true, 55 | unused: true, 56 | comparisons: true, 57 | sequences: true, 58 | dead_code: true, 59 | evaluate: true, 60 | if_return: true, 61 | join_vars: true, 62 | }, 63 | output: { 64 | comments: false, 65 | }, 66 | }) 67 | ); 68 | } else { 69 | plugins.push(new webpack.HotModuleReplacementPlugin()); 70 | } 71 | 72 | module.exports = { 73 | devtool: isProd ? 'source-map' : 'eval', 74 | context: sourcePath, 75 | entry: { 76 | js: './index.js', 77 | vendor: ['react'], 78 | }, 79 | output: { 80 | path: staticsPath, 81 | filename: '[name].bundle.js', 82 | }, 83 | module: { 84 | rules: [ 85 | { 86 | test: /\.html$/, 87 | exclude: /node_modules/, 88 | use: { 89 | loader: 'file-loader', 90 | query: { 91 | name: '[name].[ext]', 92 | }, 93 | }, 94 | }, 95 | { 96 | test: /\.(js|jsx)$/, 97 | include: sourcePath, 98 | exclude: /node_modules/, 99 | use: ['babel-loader'], 100 | }, 101 | { 102 | test: /\.css$/, 103 | exclude: /node_modules/, 104 | use: isProd 105 | ? ExtractTextPlugin.extract({ 106 | fallback: 'style-loader', 107 | use: { loader: 'css-loader', options: { sourceMap: true } }, 108 | }) 109 | : [ 110 | 'style-loader', 111 | { 112 | loader: 'css-loader', 113 | options: { sourceMap: true }, 114 | }, 115 | ], 116 | }, 117 | ], 118 | }, 119 | resolve: { 120 | extensions: [ 121 | '.webpack-loader.js', 122 | '.web-loader.js', 123 | '.loader.js', 124 | '.js', 125 | '.jsx', 126 | ], 127 | modules: [ 128 | // path.join(__dirname, '..', '..', packageName, 'node_modules') 129 | // 'node_modules', 130 | path.join( 131 | __dirname, 132 | '..', 133 | '..', 134 | 'benchmarks', 135 | packageName, 136 | 'node_modules' 137 | ), 138 | path.join(__dirname, '..', '..', '..', 'node_modules'), 139 | ], 140 | }, 141 | 142 | plugins, 143 | 144 | performance: isProd && { 145 | maxAssetSize: 100, 146 | maxEntrypointSize: 300, 147 | hints: 'warning', 148 | }, 149 | 150 | stats: { 151 | colors: { 152 | green: '\u001b[32m', 153 | }, 154 | }, 155 | 156 | devServer: { 157 | contentBase: './client', 158 | historyApiFallback: true, 159 | port: 3000, 160 | compress: isProd, 161 | inline: !isProd, 162 | hot: !isProd, 163 | stats: { 164 | assets: true, 165 | children: false, 166 | chunks: false, 167 | hash: false, 168 | modules: false, 169 | publicPath: false, 170 | timings: true, 171 | version: false, 172 | warnings: true, 173 | colors: { 174 | green: '\u001b[32m', 175 | }, 176 | }, 177 | }, 178 | }; 179 | -------------------------------------------------------------------------------- /packages/benchmarks/fela/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | core-js@^1.0.0: 10 | version "1.2.7" 11 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 12 | 13 | css-in-js-utils@^1.0.3: 14 | version "1.0.3" 15 | resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-1.0.3.tgz#9ac7e02f763cf85d94017666565ed68a5b5f3215" 16 | dependencies: 17 | hyphenate-style-name "^1.0.2" 18 | 19 | encoding@^0.1.11: 20 | version "0.1.12" 21 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 22 | dependencies: 23 | iconv-lite "~0.4.13" 24 | 25 | fbjs@^0.8.9: 26 | version "0.8.12" 27 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 28 | dependencies: 29 | core-js "^1.0.0" 30 | isomorphic-fetch "^2.1.1" 31 | loose-envify "^1.0.0" 32 | object-assign "^4.1.0" 33 | promise "^7.1.1" 34 | setimmediate "^1.0.5" 35 | ua-parser-js "^0.7.9" 36 | 37 | fela@4.3.3: 38 | version "4.3.3" 39 | resolved "https://registry.yarnpkg.com/fela/-/fela-4.3.3.tgz#9cb31a169553d5198f60f447ee30863edd2135f6" 40 | dependencies: 41 | css-in-js-utils "^1.0.3" 42 | 43 | hyphenate-style-name@^1.0.2: 44 | version "1.0.2" 45 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 46 | 47 | iconv-lite@~0.4.13: 48 | version "0.4.16" 49 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 50 | 51 | invariant@^2.2.1: 52 | version "2.2.2" 53 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 54 | dependencies: 55 | loose-envify "^1.0.0" 56 | 57 | is-stream@^1.0.1: 58 | version "1.1.0" 59 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 60 | 61 | isomorphic-fetch@^2.1.1: 62 | version "2.2.1" 63 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 64 | dependencies: 65 | node-fetch "^1.0.1" 66 | whatwg-fetch ">=0.10.0" 67 | 68 | js-tokens@^3.0.0: 69 | version "3.0.1" 70 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 71 | 72 | loose-envify@^1.0.0: 73 | version "1.3.1" 74 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 75 | dependencies: 76 | js-tokens "^3.0.0" 77 | 78 | node-fetch@^1.0.1: 79 | version "1.6.3" 80 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 81 | dependencies: 82 | encoding "^0.1.11" 83 | is-stream "^1.0.1" 84 | 85 | object-assign@^4.1.0: 86 | version "4.1.1" 87 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 88 | 89 | promise@^7.1.1: 90 | version "7.1.1" 91 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 92 | dependencies: 93 | asap "~2.0.3" 94 | 95 | prop-types@^15.5.8: 96 | version "15.5.8" 97 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 98 | dependencies: 99 | fbjs "^0.8.9" 100 | 101 | react-broadcast@0.1.2: 102 | version "0.1.2" 103 | resolved "https://registry.yarnpkg.com/react-broadcast/-/react-broadcast-0.1.2.tgz#950de63578a2af399a396067a617af7402182330" 104 | dependencies: 105 | invariant "^2.2.1" 106 | 107 | react-fela@4.3.3: 108 | version "4.3.3" 109 | resolved "https://registry.yarnpkg.com/react-fela/-/react-fela-4.3.3.tgz#7fdd93c2178b4d276b70601d0d7a8cf3c22212a2" 110 | dependencies: 111 | prop-types "^15.5.8" 112 | react-broadcast "0.1.2" 113 | 114 | setimmediate@^1.0.5: 115 | version "1.0.5" 116 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 117 | 118 | ua-parser-js@^0.7.9: 119 | version "0.7.12" 120 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 121 | 122 | whatwg-fetch@>=0.10.0: 123 | version "2.0.3" 124 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 125 | -------------------------------------------------------------------------------- /packages/benchmarks/styletron/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/react@*": 6 | version "15.0.23" 7 | resolved "https://registry.yarnpkg.com/@types/react/-/react-15.0.23.tgz#f3facbef5290610f54242f00308759d3a3c27346" 8 | 9 | asap@~2.0.3: 10 | version "2.0.5" 11 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 12 | 13 | bowser@^1.0.0: 14 | version "1.6.1" 15 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 16 | 17 | classnames@^2.2.5: 18 | version "2.2.5" 19 | resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" 20 | 21 | core-js@^1.0.0: 22 | version "1.2.7" 23 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 24 | 25 | encoding@^0.1.11: 26 | version "0.1.12" 27 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 28 | dependencies: 29 | iconv-lite "~0.4.13" 30 | 31 | fbjs@^0.8.9: 32 | version "0.8.12" 33 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 34 | dependencies: 35 | core-js "^1.0.0" 36 | isomorphic-fetch "^2.1.1" 37 | loose-envify "^1.0.0" 38 | object-assign "^4.1.0" 39 | promise "^7.1.1" 40 | setimmediate "^1.0.5" 41 | ua-parser-js "^0.7.9" 42 | 43 | hyphenate-style-name@^1.0.1: 44 | version "1.0.2" 45 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 46 | 47 | iconv-lite@~0.4.13: 48 | version "0.4.16" 49 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 50 | 51 | inline-style-prefixer@^2.0.1: 52 | version "2.0.5" 53 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" 54 | dependencies: 55 | bowser "^1.0.0" 56 | hyphenate-style-name "^1.0.1" 57 | 58 | is-react-prop@^0.1.1: 59 | version "0.1.2" 60 | resolved "https://registry.yarnpkg.com/is-react-prop/-/is-react-prop-0.1.2.tgz#b22fbcf6190e91e81939132a110bb94642b56903" 61 | 62 | is-stream@^1.0.1: 63 | version "1.1.0" 64 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 65 | 66 | isomorphic-fetch@^2.1.1: 67 | version "2.2.1" 68 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 69 | dependencies: 70 | node-fetch "^1.0.1" 71 | whatwg-fetch ">=0.10.0" 72 | 73 | js-tokens@^3.0.0: 74 | version "3.0.1" 75 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 76 | 77 | lodash@^4.17.4: 78 | version "4.17.4" 79 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 80 | 81 | loose-envify@^1.0.0, loose-envify@^1.1.0: 82 | version "1.3.1" 83 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 84 | dependencies: 85 | js-tokens "^3.0.0" 86 | 87 | node-fetch@^1.0.1: 88 | version "1.6.3" 89 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 90 | dependencies: 91 | encoding "^0.1.11" 92 | is-stream "^1.0.1" 93 | 94 | object-assign@^4.1.0: 95 | version "4.1.1" 96 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 97 | 98 | promise@^7.1.1: 99 | version "7.1.1" 100 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 101 | dependencies: 102 | asap "~2.0.3" 103 | 104 | prop-types@^15.5.7: 105 | version "15.5.8" 106 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 107 | dependencies: 108 | fbjs "^0.8.9" 109 | 110 | react@^15.4.2: 111 | version "15.5.4" 112 | resolved "https://registry.yarnpkg.com/react/-/react-15.5.4.tgz#fa83eb01506ab237cdc1c8c3b1cea8de012bf047" 113 | dependencies: 114 | fbjs "^0.8.9" 115 | loose-envify "^1.1.0" 116 | object-assign "^4.1.0" 117 | prop-types "^15.5.7" 118 | 119 | rockey-react@0.0.11: 120 | version "0.0.11" 121 | resolved "https://registry.yarnpkg.com/rockey-react/-/rockey-react-0.0.11.tgz#a6d69f4dc0ecb8a232c0efe9f4ae7c97eb3516fe" 122 | dependencies: 123 | classnames "^2.2.5" 124 | is-react-prop "^0.1.1" 125 | lodash "^4.17.4" 126 | react "^15.4.2" 127 | rockey "^0.0.7" 128 | 129 | rockey@^0.0.7: 130 | version "0.0.7" 131 | resolved "https://registry.yarnpkg.com/rockey/-/rockey-0.0.7.tgz#112921c3124c36f248b8d2e295f922e8d6440898" 132 | dependencies: 133 | classnames "^2.2.5" 134 | lodash "^4.17.4" 135 | 136 | setimmediate@^1.0.5: 137 | version "1.0.5" 138 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 139 | 140 | styletron-client@2.5.1, styletron-client@^2.5.1: 141 | version "2.5.1" 142 | resolved "https://registry.yarnpkg.com/styletron-client/-/styletron-client-2.5.1.tgz#df0b6fd65965b035d2ff58df61b422aa80e23577" 143 | dependencies: 144 | styletron-core "^2.5.1" 145 | 146 | styletron-core@^2.5.1, styletron-core@^2.5.7: 147 | version "2.5.7" 148 | resolved "https://registry.yarnpkg.com/styletron-core/-/styletron-core-2.5.7.tgz#2c4a1fae537b42235462e438c24ab619bbf8993e" 149 | 150 | styletron-react@2.5.3: 151 | version "2.5.3" 152 | resolved "https://registry.yarnpkg.com/styletron-react/-/styletron-react-2.5.3.tgz#381a170f65a1519fb474e8b0ab098d2b03201e59" 153 | dependencies: 154 | "@types/react" "*" 155 | styletron-client "^2.5.1" 156 | styletron-server "^2.5.1" 157 | styletron-utils "^2.5.1" 158 | 159 | styletron-server@^2.5.1: 160 | version "2.5.7" 161 | resolved "https://registry.yarnpkg.com/styletron-server/-/styletron-server-2.5.7.tgz#f3d0e86e1b8540cde10f25bfa08c40dc0df3851f" 162 | dependencies: 163 | styletron-core "^2.5.7" 164 | 165 | styletron-utils@^2.5.1: 166 | version "2.5.4" 167 | resolved "https://registry.yarnpkg.com/styletron-utils/-/styletron-utils-2.5.4.tgz#f08cca7d58ee0338ce85e408cb32900e65620240" 168 | dependencies: 169 | inline-style-prefixer "^2.0.1" 170 | 171 | ua-parser-js@^0.7.9: 172 | version "0.7.12" 173 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 174 | 175 | whatwg-fetch@>=0.10.0: 176 | version "2.0.3" 177 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 178 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/simple/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | base64-js@^1.0.2: 10 | version "1.2.0" 11 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 12 | 13 | bowser@^1.0.0: 14 | version "1.6.1" 15 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 16 | 17 | buffer@^5.0.3: 18 | version "5.0.6" 19 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588" 20 | dependencies: 21 | base64-js "^1.0.2" 22 | ieee754 "^1.1.4" 23 | 24 | core-js@^1.0.0: 25 | version "1.2.7" 26 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 27 | 28 | css-color-keywords@^1.0.0: 29 | version "1.0.0" 30 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 31 | 32 | css-to-react-native@^2.0.3: 33 | version "2.0.3" 34 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.3.tgz#7d3a11409ac283acef447a13d3bbd09980c68a4f" 35 | dependencies: 36 | css-color-keywords "^1.0.0" 37 | fbjs "^0.8.5" 38 | postcss-value-parser "^3.3.0" 39 | 40 | encoding@^0.1.11: 41 | version "0.1.12" 42 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 43 | dependencies: 44 | iconv-lite "~0.4.13" 45 | 46 | fbjs@^0.8.5, fbjs@^0.8.9: 47 | version "0.8.12" 48 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 49 | dependencies: 50 | core-js "^1.0.0" 51 | isomorphic-fetch "^2.1.1" 52 | loose-envify "^1.0.0" 53 | object-assign "^4.1.0" 54 | promise "^7.1.1" 55 | setimmediate "^1.0.5" 56 | ua-parser-js "^0.7.9" 57 | 58 | has-flag@^1.0.0: 59 | version "1.0.0" 60 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 61 | 62 | hyphenate-style-name@^1.0.1: 63 | version "1.0.2" 64 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 65 | 66 | iconv-lite@~0.4.13: 67 | version "0.4.16" 68 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 69 | 70 | ieee754@^1.1.4: 71 | version "1.1.8" 72 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 73 | 74 | inline-style-prefixer@^2.0.5: 75 | version "2.0.5" 76 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" 77 | dependencies: 78 | bowser "^1.0.0" 79 | hyphenate-style-name "^1.0.1" 80 | 81 | is-function@^1.0.1: 82 | version "1.0.1" 83 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" 84 | 85 | is-plain-object@^2.0.1: 86 | version "2.0.1" 87 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" 88 | dependencies: 89 | isobject "^1.0.0" 90 | 91 | is-stream@^1.0.1: 92 | version "1.1.0" 93 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 94 | 95 | isobject@^1.0.0: 96 | version "1.0.2" 97 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" 98 | 99 | isomorphic-fetch@^2.1.1: 100 | version "2.2.1" 101 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 102 | dependencies: 103 | node-fetch "^1.0.1" 104 | whatwg-fetch ">=0.10.0" 105 | 106 | js-tokens@^3.0.0: 107 | version "3.0.1" 108 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 109 | 110 | loose-envify@^1.0.0: 111 | version "1.3.1" 112 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 113 | dependencies: 114 | js-tokens "^3.0.0" 115 | 116 | node-fetch@^1.0.1: 117 | version "1.6.3" 118 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 119 | dependencies: 120 | encoding "^0.1.11" 121 | is-stream "^1.0.1" 122 | 123 | object-assign@^4.1.0: 124 | version "4.1.1" 125 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 126 | 127 | postcss-value-parser@^3.3.0: 128 | version "3.3.0" 129 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" 130 | 131 | promise@^7.1.1: 132 | version "7.1.1" 133 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 134 | dependencies: 135 | asap "~2.0.3" 136 | 137 | prop-types@^15.5.4: 138 | version "15.5.8" 139 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 140 | dependencies: 141 | fbjs "^0.8.9" 142 | 143 | setimmediate@^1.0.5: 144 | version "1.0.5" 145 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 146 | 147 | styled-components@2.0.0-15: 148 | version "2.0.0-15" 149 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-15.tgz#77843c9f5267c60a97e28c97719d1ee89ea28be1" 150 | dependencies: 151 | buffer "^5.0.3" 152 | css-to-react-native "^2.0.3" 153 | fbjs "^0.8.9" 154 | inline-style-prefixer "^2.0.5" 155 | is-function "^1.0.1" 156 | is-plain-object "^2.0.1" 157 | prop-types "^15.5.4" 158 | stylis "^2.0.0" 159 | supports-color "^3.2.3" 160 | 161 | stylis@^2.0.0: 162 | version "2.0.4" 163 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.4.tgz#6c95c88605d23eefea5564360c0053e2e4f04803" 164 | 165 | supports-color@^3.2.3: 166 | version "3.2.3" 167 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 168 | dependencies: 169 | has-flag "^1.0.0" 170 | 171 | ua-parser-js@^0.7.9: 172 | version "0.7.12" 173 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 174 | 175 | whatwg-fetch@>=0.10.0: 176 | version "2.0.3" 177 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 178 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/decouple-cell/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | base64-js@^1.0.2: 10 | version "1.2.0" 11 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 12 | 13 | bowser@^1.0.0: 14 | version "1.6.1" 15 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 16 | 17 | buffer@^5.0.3: 18 | version "5.0.6" 19 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588" 20 | dependencies: 21 | base64-js "^1.0.2" 22 | ieee754 "^1.1.4" 23 | 24 | core-js@^1.0.0: 25 | version "1.2.7" 26 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 27 | 28 | css-color-keywords@^1.0.0: 29 | version "1.0.0" 30 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 31 | 32 | css-to-react-native@^2.0.3: 33 | version "2.0.3" 34 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.3.tgz#7d3a11409ac283acef447a13d3bbd09980c68a4f" 35 | dependencies: 36 | css-color-keywords "^1.0.0" 37 | fbjs "^0.8.5" 38 | postcss-value-parser "^3.3.0" 39 | 40 | encoding@^0.1.11: 41 | version "0.1.12" 42 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 43 | dependencies: 44 | iconv-lite "~0.4.13" 45 | 46 | fbjs@^0.8.5, fbjs@^0.8.9: 47 | version "0.8.12" 48 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 49 | dependencies: 50 | core-js "^1.0.0" 51 | isomorphic-fetch "^2.1.1" 52 | loose-envify "^1.0.0" 53 | object-assign "^4.1.0" 54 | promise "^7.1.1" 55 | setimmediate "^1.0.5" 56 | ua-parser-js "^0.7.9" 57 | 58 | has-flag@^1.0.0: 59 | version "1.0.0" 60 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 61 | 62 | hyphenate-style-name@^1.0.1: 63 | version "1.0.2" 64 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 65 | 66 | iconv-lite@~0.4.13: 67 | version "0.4.16" 68 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 69 | 70 | ieee754@^1.1.4: 71 | version "1.1.8" 72 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 73 | 74 | inline-style-prefixer@^2.0.5: 75 | version "2.0.5" 76 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" 77 | dependencies: 78 | bowser "^1.0.0" 79 | hyphenate-style-name "^1.0.1" 80 | 81 | is-function@^1.0.1: 82 | version "1.0.1" 83 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" 84 | 85 | is-plain-object@^2.0.1: 86 | version "2.0.1" 87 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" 88 | dependencies: 89 | isobject "^1.0.0" 90 | 91 | is-stream@^1.0.1: 92 | version "1.1.0" 93 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 94 | 95 | isobject@^1.0.0: 96 | version "1.0.2" 97 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" 98 | 99 | isomorphic-fetch@^2.1.1: 100 | version "2.2.1" 101 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 102 | dependencies: 103 | node-fetch "^1.0.1" 104 | whatwg-fetch ">=0.10.0" 105 | 106 | js-tokens@^3.0.0: 107 | version "3.0.1" 108 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 109 | 110 | loose-envify@^1.0.0: 111 | version "1.3.1" 112 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 113 | dependencies: 114 | js-tokens "^3.0.0" 115 | 116 | node-fetch@^1.0.1: 117 | version "1.6.3" 118 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 119 | dependencies: 120 | encoding "^0.1.11" 121 | is-stream "^1.0.1" 122 | 123 | object-assign@^4.1.0: 124 | version "4.1.1" 125 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 126 | 127 | postcss-value-parser@^3.3.0: 128 | version "3.3.0" 129 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" 130 | 131 | promise@^7.1.1: 132 | version "7.1.1" 133 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 134 | dependencies: 135 | asap "~2.0.3" 136 | 137 | prop-types@^15.5.4: 138 | version "15.5.8" 139 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 140 | dependencies: 141 | fbjs "^0.8.9" 142 | 143 | setimmediate@^1.0.5: 144 | version "1.0.5" 145 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 146 | 147 | styled-components@2.0.0-15: 148 | version "2.0.0-15" 149 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-15.tgz#77843c9f5267c60a97e28c97719d1ee89ea28be1" 150 | dependencies: 151 | buffer "^5.0.3" 152 | css-to-react-native "^2.0.3" 153 | fbjs "^0.8.9" 154 | inline-style-prefixer "^2.0.5" 155 | is-function "^1.0.1" 156 | is-plain-object "^2.0.1" 157 | prop-types "^15.5.4" 158 | stylis "^2.0.0" 159 | supports-color "^3.2.3" 160 | 161 | stylis@^2.0.0: 162 | version "2.0.4" 163 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.4.tgz#6c95c88605d23eefea5564360c0053e2e4f04803" 164 | 165 | supports-color@^3.2.3: 166 | version "3.2.3" 167 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 168 | dependencies: 169 | has-flag "^1.0.0" 170 | 171 | ua-parser-js@^0.7.9: 172 | version "0.7.12" 173 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 174 | 175 | whatwg-fetch@>=0.10.0: 176 | version "2.0.3" 177 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 178 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2/inline-style/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | base64-js@^1.0.2: 10 | version "1.2.0" 11 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 12 | 13 | bowser@^1.0.0: 14 | version "1.6.1" 15 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 16 | 17 | buffer@^5.0.3: 18 | version "5.0.6" 19 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588" 20 | dependencies: 21 | base64-js "^1.0.2" 22 | ieee754 "^1.1.4" 23 | 24 | core-js@^1.0.0: 25 | version "1.2.7" 26 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 27 | 28 | css-color-keywords@^1.0.0: 29 | version "1.0.0" 30 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 31 | 32 | css-to-react-native@^2.0.3: 33 | version "2.0.3" 34 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.3.tgz#7d3a11409ac283acef447a13d3bbd09980c68a4f" 35 | dependencies: 36 | css-color-keywords "^1.0.0" 37 | fbjs "^0.8.5" 38 | postcss-value-parser "^3.3.0" 39 | 40 | encoding@^0.1.11: 41 | version "0.1.12" 42 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 43 | dependencies: 44 | iconv-lite "~0.4.13" 45 | 46 | fbjs@^0.8.5, fbjs@^0.8.9: 47 | version "0.8.12" 48 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 49 | dependencies: 50 | core-js "^1.0.0" 51 | isomorphic-fetch "^2.1.1" 52 | loose-envify "^1.0.0" 53 | object-assign "^4.1.0" 54 | promise "^7.1.1" 55 | setimmediate "^1.0.5" 56 | ua-parser-js "^0.7.9" 57 | 58 | has-flag@^1.0.0: 59 | version "1.0.0" 60 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 61 | 62 | hyphenate-style-name@^1.0.1: 63 | version "1.0.2" 64 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 65 | 66 | iconv-lite@~0.4.13: 67 | version "0.4.16" 68 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 69 | 70 | ieee754@^1.1.4: 71 | version "1.1.8" 72 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 73 | 74 | inline-style-prefixer@^2.0.5: 75 | version "2.0.5" 76 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" 77 | dependencies: 78 | bowser "^1.0.0" 79 | hyphenate-style-name "^1.0.1" 80 | 81 | is-function@^1.0.1: 82 | version "1.0.1" 83 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" 84 | 85 | is-plain-object@^2.0.1: 86 | version "2.0.1" 87 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" 88 | dependencies: 89 | isobject "^1.0.0" 90 | 91 | is-stream@^1.0.1: 92 | version "1.1.0" 93 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 94 | 95 | isobject@^1.0.0: 96 | version "1.0.2" 97 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" 98 | 99 | isomorphic-fetch@^2.1.1: 100 | version "2.2.1" 101 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 102 | dependencies: 103 | node-fetch "^1.0.1" 104 | whatwg-fetch ">=0.10.0" 105 | 106 | js-tokens@^3.0.0: 107 | version "3.0.1" 108 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 109 | 110 | loose-envify@^1.0.0: 111 | version "1.3.1" 112 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 113 | dependencies: 114 | js-tokens "^3.0.0" 115 | 116 | node-fetch@^1.0.1: 117 | version "1.6.3" 118 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 119 | dependencies: 120 | encoding "^0.1.11" 121 | is-stream "^1.0.1" 122 | 123 | object-assign@^4.1.0: 124 | version "4.1.1" 125 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 126 | 127 | postcss-value-parser@^3.3.0: 128 | version "3.3.0" 129 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" 130 | 131 | promise@^7.1.1: 132 | version "7.1.1" 133 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 134 | dependencies: 135 | asap "~2.0.3" 136 | 137 | prop-types@^15.5.4: 138 | version "15.5.8" 139 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 140 | dependencies: 141 | fbjs "^0.8.9" 142 | 143 | setimmediate@^1.0.5: 144 | version "1.0.5" 145 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 146 | 147 | styled-components@2.0.0-15: 148 | version "2.0.0-15" 149 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-15.tgz#77843c9f5267c60a97e28c97719d1ee89ea28be1" 150 | dependencies: 151 | buffer "^5.0.3" 152 | css-to-react-native "^2.0.3" 153 | fbjs "^0.8.9" 154 | inline-style-prefixer "^2.0.5" 155 | is-function "^1.0.1" 156 | is-plain-object "^2.0.1" 157 | prop-types "^15.5.4" 158 | stylis "^2.0.0" 159 | supports-color "^3.2.3" 160 | 161 | stylis@^2.0.0: 162 | version "2.0.4" 163 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.4.tgz#6c95c88605d23eefea5564360c0053e2e4f04803" 164 | 165 | supports-color@^3.2.3: 166 | version "3.2.3" 167 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 168 | dependencies: 169 | has-flag "^1.0.0" 170 | 171 | ua-parser-js@^0.7.9: 172 | version "0.7.12" 173 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 174 | 175 | whatwg-fetch@>=0.10.0: 176 | version "2.0.3" 177 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 178 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/simple/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | babel-plugin-styled-components@1.1.4: 10 | version "1.1.4" 11 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.1.4.tgz#b0e6d5bb01059bc7ab9118d3d686f6472ee8e91f" 12 | dependencies: 13 | stylis "2.0.0" 14 | 15 | base64-js@^1.0.2: 16 | version "1.2.0" 17 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 18 | 19 | bowser@^1.0.0: 20 | version "1.6.1" 21 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 22 | 23 | buffer@^5.0.3: 24 | version "5.0.6" 25 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588" 26 | dependencies: 27 | base64-js "^1.0.2" 28 | ieee754 "^1.1.4" 29 | 30 | core-js@^1.0.0: 31 | version "1.2.7" 32 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 33 | 34 | css-color-keywords@^1.0.0: 35 | version "1.0.0" 36 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 37 | 38 | css-to-react-native@^2.0.3: 39 | version "2.0.3" 40 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.3.tgz#7d3a11409ac283acef447a13d3bbd09980c68a4f" 41 | dependencies: 42 | css-color-keywords "^1.0.0" 43 | fbjs "^0.8.5" 44 | postcss-value-parser "^3.3.0" 45 | 46 | encoding@^0.1.11: 47 | version "0.1.12" 48 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 49 | dependencies: 50 | iconv-lite "~0.4.13" 51 | 52 | fbjs@^0.8.5, fbjs@^0.8.9: 53 | version "0.8.12" 54 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 55 | dependencies: 56 | core-js "^1.0.0" 57 | isomorphic-fetch "^2.1.1" 58 | loose-envify "^1.0.0" 59 | object-assign "^4.1.0" 60 | promise "^7.1.1" 61 | setimmediate "^1.0.5" 62 | ua-parser-js "^0.7.9" 63 | 64 | has-flag@^1.0.0: 65 | version "1.0.0" 66 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 67 | 68 | hyphenate-style-name@^1.0.1: 69 | version "1.0.2" 70 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 71 | 72 | iconv-lite@~0.4.13: 73 | version "0.4.16" 74 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 75 | 76 | ieee754@^1.1.4: 77 | version "1.1.8" 78 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 79 | 80 | inline-style-prefixer@^2.0.5: 81 | version "2.0.5" 82 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" 83 | dependencies: 84 | bowser "^1.0.0" 85 | hyphenate-style-name "^1.0.1" 86 | 87 | is-function@^1.0.1: 88 | version "1.0.1" 89 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" 90 | 91 | is-plain-object@^2.0.1: 92 | version "2.0.1" 93 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" 94 | dependencies: 95 | isobject "^1.0.0" 96 | 97 | is-stream@^1.0.1: 98 | version "1.1.0" 99 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 100 | 101 | isobject@^1.0.0: 102 | version "1.0.2" 103 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" 104 | 105 | isomorphic-fetch@^2.1.1: 106 | version "2.2.1" 107 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 108 | dependencies: 109 | node-fetch "^1.0.1" 110 | whatwg-fetch ">=0.10.0" 111 | 112 | js-tokens@^3.0.0: 113 | version "3.0.1" 114 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 115 | 116 | loose-envify@^1.0.0: 117 | version "1.3.1" 118 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 119 | dependencies: 120 | js-tokens "^3.0.0" 121 | 122 | node-fetch@^1.0.1: 123 | version "1.6.3" 124 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 125 | dependencies: 126 | encoding "^0.1.11" 127 | is-stream "^1.0.1" 128 | 129 | object-assign@^4.1.0: 130 | version "4.1.1" 131 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 132 | 133 | postcss-value-parser@^3.3.0: 134 | version "3.3.0" 135 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" 136 | 137 | promise@^7.1.1: 138 | version "7.1.1" 139 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 140 | dependencies: 141 | asap "~2.0.3" 142 | 143 | prop-types@^15.5.4: 144 | version "15.5.8" 145 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 146 | dependencies: 147 | fbjs "^0.8.9" 148 | 149 | setimmediate@^1.0.5: 150 | version "1.0.5" 151 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 152 | 153 | styled-components@2.0.0-15: 154 | version "2.0.0-15" 155 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-15.tgz#77843c9f5267c60a97e28c97719d1ee89ea28be1" 156 | dependencies: 157 | buffer "^5.0.3" 158 | css-to-react-native "^2.0.3" 159 | fbjs "^0.8.9" 160 | inline-style-prefixer "^2.0.5" 161 | is-function "^1.0.1" 162 | is-plain-object "^2.0.1" 163 | prop-types "^15.5.4" 164 | stylis "^2.0.0" 165 | supports-color "^3.2.3" 166 | 167 | stylis@2.0.0, stylis@^2.0.0: 168 | version "2.0.0" 169 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.0.tgz#6785a6546bd73478799a67d49d67086953b50ad5" 170 | 171 | supports-color@^3.2.3: 172 | version "3.2.3" 173 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 174 | dependencies: 175 | has-flag "^1.0.0" 176 | 177 | ua-parser-js@^0.7.9: 178 | version "0.7.12" 179 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 180 | 181 | whatwg-fetch@>=0.10.0: 182 | version "2.0.3" 183 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 184 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/decouple-cell/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | babel-plugin-styled-components@1.1.4: 10 | version "1.1.4" 11 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.1.4.tgz#b0e6d5bb01059bc7ab9118d3d686f6472ee8e91f" 12 | dependencies: 13 | stylis "2.0.0" 14 | 15 | base64-js@^1.0.2: 16 | version "1.2.0" 17 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 18 | 19 | bowser@^1.0.0: 20 | version "1.6.1" 21 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 22 | 23 | buffer@^5.0.3: 24 | version "5.0.6" 25 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588" 26 | dependencies: 27 | base64-js "^1.0.2" 28 | ieee754 "^1.1.4" 29 | 30 | core-js@^1.0.0: 31 | version "1.2.7" 32 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 33 | 34 | css-color-keywords@^1.0.0: 35 | version "1.0.0" 36 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 37 | 38 | css-to-react-native@^2.0.3: 39 | version "2.0.3" 40 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.3.tgz#7d3a11409ac283acef447a13d3bbd09980c68a4f" 41 | dependencies: 42 | css-color-keywords "^1.0.0" 43 | fbjs "^0.8.5" 44 | postcss-value-parser "^3.3.0" 45 | 46 | encoding@^0.1.11: 47 | version "0.1.12" 48 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 49 | dependencies: 50 | iconv-lite "~0.4.13" 51 | 52 | fbjs@^0.8.5, fbjs@^0.8.9: 53 | version "0.8.12" 54 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 55 | dependencies: 56 | core-js "^1.0.0" 57 | isomorphic-fetch "^2.1.1" 58 | loose-envify "^1.0.0" 59 | object-assign "^4.1.0" 60 | promise "^7.1.1" 61 | setimmediate "^1.0.5" 62 | ua-parser-js "^0.7.9" 63 | 64 | has-flag@^1.0.0: 65 | version "1.0.0" 66 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 67 | 68 | hyphenate-style-name@^1.0.1: 69 | version "1.0.2" 70 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 71 | 72 | iconv-lite@~0.4.13: 73 | version "0.4.16" 74 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 75 | 76 | ieee754@^1.1.4: 77 | version "1.1.8" 78 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 79 | 80 | inline-style-prefixer@^2.0.5: 81 | version "2.0.5" 82 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" 83 | dependencies: 84 | bowser "^1.0.0" 85 | hyphenate-style-name "^1.0.1" 86 | 87 | is-function@^1.0.1: 88 | version "1.0.1" 89 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" 90 | 91 | is-plain-object@^2.0.1: 92 | version "2.0.1" 93 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" 94 | dependencies: 95 | isobject "^1.0.0" 96 | 97 | is-stream@^1.0.1: 98 | version "1.1.0" 99 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 100 | 101 | isobject@^1.0.0: 102 | version "1.0.2" 103 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" 104 | 105 | isomorphic-fetch@^2.1.1: 106 | version "2.2.1" 107 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 108 | dependencies: 109 | node-fetch "^1.0.1" 110 | whatwg-fetch ">=0.10.0" 111 | 112 | js-tokens@^3.0.0: 113 | version "3.0.1" 114 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 115 | 116 | loose-envify@^1.0.0: 117 | version "1.3.1" 118 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 119 | dependencies: 120 | js-tokens "^3.0.0" 121 | 122 | node-fetch@^1.0.1: 123 | version "1.6.3" 124 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 125 | dependencies: 126 | encoding "^0.1.11" 127 | is-stream "^1.0.1" 128 | 129 | object-assign@^4.1.0: 130 | version "4.1.1" 131 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 132 | 133 | postcss-value-parser@^3.3.0: 134 | version "3.3.0" 135 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" 136 | 137 | promise@^7.1.1: 138 | version "7.1.1" 139 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 140 | dependencies: 141 | asap "~2.0.3" 142 | 143 | prop-types@^15.5.4: 144 | version "15.5.8" 145 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 146 | dependencies: 147 | fbjs "^0.8.9" 148 | 149 | setimmediate@^1.0.5: 150 | version "1.0.5" 151 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 152 | 153 | styled-components@2.0.0-15: 154 | version "2.0.0-15" 155 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-15.tgz#77843c9f5267c60a97e28c97719d1ee89ea28be1" 156 | dependencies: 157 | buffer "^5.0.3" 158 | css-to-react-native "^2.0.3" 159 | fbjs "^0.8.9" 160 | inline-style-prefixer "^2.0.5" 161 | is-function "^1.0.1" 162 | is-plain-object "^2.0.1" 163 | prop-types "^15.5.4" 164 | stylis "^2.0.0" 165 | supports-color "^3.2.3" 166 | 167 | stylis@2.0.0, stylis@^2.0.0: 168 | version "2.0.0" 169 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.0.tgz#6785a6546bd73478799a67d49d67086953b50ad5" 170 | 171 | supports-color@^3.2.3: 172 | version "3.2.3" 173 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 174 | dependencies: 175 | has-flag "^1.0.0" 176 | 177 | ua-parser-js@^0.7.9: 178 | version "0.7.12" 179 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 180 | 181 | whatwg-fetch@>=0.10.0: 182 | version "2.0.3" 183 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 184 | -------------------------------------------------------------------------------- /packages/benchmarks/styled-components/v2-plugin/inline-style/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.5" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" 8 | 9 | babel-plugin-styled-components@1.1.4: 10 | version "1.1.4" 11 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.1.4.tgz#b0e6d5bb01059bc7ab9118d3d686f6472ee8e91f" 12 | dependencies: 13 | stylis "2.0.0" 14 | 15 | base64-js@^1.0.2: 16 | version "1.2.0" 17 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 18 | 19 | bowser@^1.0.0: 20 | version "1.6.1" 21 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.6.1.tgz#9157e9498f456e937173a2918f3b2161e5353eb3" 22 | 23 | buffer@^5.0.3: 24 | version "5.0.6" 25 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588" 26 | dependencies: 27 | base64-js "^1.0.2" 28 | ieee754 "^1.1.4" 29 | 30 | core-js@^1.0.0: 31 | version "1.2.7" 32 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 33 | 34 | css-color-keywords@^1.0.0: 35 | version "1.0.0" 36 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" 37 | 38 | css-to-react-native@^2.0.3: 39 | version "2.0.3" 40 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.3.tgz#7d3a11409ac283acef447a13d3bbd09980c68a4f" 41 | dependencies: 42 | css-color-keywords "^1.0.0" 43 | fbjs "^0.8.5" 44 | postcss-value-parser "^3.3.0" 45 | 46 | encoding@^0.1.11: 47 | version "0.1.12" 48 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 49 | dependencies: 50 | iconv-lite "~0.4.13" 51 | 52 | fbjs@^0.8.5, fbjs@^0.8.9: 53 | version "0.8.12" 54 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" 55 | dependencies: 56 | core-js "^1.0.0" 57 | isomorphic-fetch "^2.1.1" 58 | loose-envify "^1.0.0" 59 | object-assign "^4.1.0" 60 | promise "^7.1.1" 61 | setimmediate "^1.0.5" 62 | ua-parser-js "^0.7.9" 63 | 64 | has-flag@^1.0.0: 65 | version "1.0.0" 66 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 67 | 68 | hyphenate-style-name@^1.0.1: 69 | version "1.0.2" 70 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 71 | 72 | iconv-lite@~0.4.13: 73 | version "0.4.16" 74 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.16.tgz#65de3beeb39e2960d67f049f1634ffcbcde9014b" 75 | 76 | ieee754@^1.1.4: 77 | version "1.1.8" 78 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" 79 | 80 | inline-style-prefixer@^2.0.5: 81 | version "2.0.5" 82 | resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" 83 | dependencies: 84 | bowser "^1.0.0" 85 | hyphenate-style-name "^1.0.1" 86 | 87 | is-function@^1.0.1: 88 | version "1.0.1" 89 | resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" 90 | 91 | is-plain-object@^2.0.1: 92 | version "2.0.1" 93 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" 94 | dependencies: 95 | isobject "^1.0.0" 96 | 97 | is-stream@^1.0.1: 98 | version "1.1.0" 99 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 100 | 101 | isobject@^1.0.0: 102 | version "1.0.2" 103 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" 104 | 105 | isomorphic-fetch@^2.1.1: 106 | version "2.2.1" 107 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 108 | dependencies: 109 | node-fetch "^1.0.1" 110 | whatwg-fetch ">=0.10.0" 111 | 112 | js-tokens@^3.0.0: 113 | version "3.0.1" 114 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 115 | 116 | loose-envify@^1.0.0: 117 | version "1.3.1" 118 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 119 | dependencies: 120 | js-tokens "^3.0.0" 121 | 122 | node-fetch@^1.0.1: 123 | version "1.6.3" 124 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" 125 | dependencies: 126 | encoding "^0.1.11" 127 | is-stream "^1.0.1" 128 | 129 | object-assign@^4.1.0: 130 | version "4.1.1" 131 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 132 | 133 | postcss-value-parser@^3.3.0: 134 | version "3.3.0" 135 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" 136 | 137 | promise@^7.1.1: 138 | version "7.1.1" 139 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" 140 | dependencies: 141 | asap "~2.0.3" 142 | 143 | prop-types@^15.5.4: 144 | version "15.5.8" 145 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" 146 | dependencies: 147 | fbjs "^0.8.9" 148 | 149 | setimmediate@^1.0.5: 150 | version "1.0.5" 151 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 152 | 153 | styled-components@2.0.0-15: 154 | version "2.0.0-15" 155 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-15.tgz#77843c9f5267c60a97e28c97719d1ee89ea28be1" 156 | dependencies: 157 | buffer "^5.0.3" 158 | css-to-react-native "^2.0.3" 159 | fbjs "^0.8.9" 160 | inline-style-prefixer "^2.0.5" 161 | is-function "^1.0.1" 162 | is-plain-object "^2.0.1" 163 | prop-types "^15.5.4" 164 | stylis "^2.0.0" 165 | supports-color "^3.2.3" 166 | 167 | stylis@2.0.0, stylis@^2.0.0: 168 | version "2.0.0" 169 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.0.tgz#6785a6546bd73478799a67d49d67086953b50ad5" 170 | 171 | supports-color@^3.2.3: 172 | version "3.2.3" 173 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 174 | dependencies: 175 | has-flag "^1.0.0" 176 | 177 | ua-parser-js@^0.7.9: 178 | version "0.7.12" 179 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" 180 | 181 | whatwg-fetch@>=0.10.0: 182 | version "2.0.3" 183 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 184 | -------------------------------------------------------------------------------- /packages/tests/index.js: -------------------------------------------------------------------------------- 1 | const connect = require('connect'); 2 | const serveStatic = require('serve-static'); 3 | 4 | const shell = require('shelljs'); 5 | const chalk = require('chalk'); 6 | 7 | const http = require('http'); 8 | const path = require('path'); 9 | const fs = require('fs'); 10 | const { argv } = require('yargs'); 11 | 12 | const Lighthouse = require('lighthouse'); 13 | const { 14 | ChromeLauncher, 15 | } = require('lighthouse/lighthouse-cli/chrome-launcher.js'); 16 | 17 | const packageJson = 'package.json'; 18 | 19 | const filterPackages = argv._.length ? argv._ : null; 20 | 21 | run(); 22 | 23 | function launchChromeAndRunLighthouse(url, flags, config) { 24 | const launcher = new ChromeLauncher({ 25 | port: 9222, 26 | autoSelectChrome: true, 27 | }); 28 | return launcher 29 | .isDebuggerReady() 30 | .catch(() => { 31 | if (flags.skipAutolaunch) { 32 | return; 33 | } 34 | return launcher.run(); 35 | }) 36 | .then(() => Lighthouse(url, flags, config)) 37 | .then(results => launcher.kill().then(() => results)) 38 | .catch(err => { 39 | return launcher.kill().then(() => { 40 | throw err; 41 | }, console.error); 42 | }); 43 | } 44 | 45 | function getPackageList() { 46 | const lernaConfig = require('../../lerna.json'); 47 | 48 | return lernaConfig.packages 49 | .filter(pckg => pckg.indexOf('packages/benchmarks/') === 0) 50 | .map(pckg => { 51 | // NOTE: use NODE_PATH env variable to prevent .. .. .. 52 | const { benchmarks } = require(path.join( 53 | '..', 54 | '..', 55 | pckg, 56 | 'package.json' 57 | )); 58 | 59 | return Object.assign({}, benchmarks, { 60 | path: path.resolve(__dirname, '..', '..', pckg), 61 | }); 62 | }) 63 | .filter(info => { 64 | return !filterPackages || filterPackages.indexOf(info.name) !== -1; 65 | }); 66 | } 67 | 68 | function getAverageValue(arr) { 69 | let total = 0; 70 | for (let i = 0; i < arr.length; i++) { 71 | total += arr[i]; 72 | } 73 | return total / arr.length; 74 | } 75 | 76 | async function runTestCase(url) { 77 | const config = require('lighthouse/lighthouse-core/config/perf.json'); 78 | const flags = { maxWaitForLoad: 60000, interactive: true }; 79 | 80 | const mountDuration = []; 81 | const rerenderDuration = []; 82 | 83 | let butch = true; 84 | 85 | for (let i = 0; i < 5; i++) { 86 | try { 87 | const currentRes = await launchChromeAndRunLighthouse( 88 | `${url}&butch=${butch}`, 89 | flags, 90 | config 91 | ); 92 | const values = currentRes.audits['user-timings'].extendedInfo.value; 93 | const mountTime = values[2].duration; 94 | mountTime && mountDuration.push(mountTime); 95 | let curRerenderDuration = []; 96 | for (let i = 3; i < values.length; i++) { 97 | if (!values[i].duration) { 98 | continue; 99 | } 100 | curRerenderDuration.push(values[i].duration); 101 | } 102 | if (curRerenderDuration.length) { 103 | rerenderDuration.push(getAverageValue(curRerenderDuration)); 104 | } else if (butch) { 105 | i--; 106 | butch = false; 107 | } 108 | } catch (err) { 109 | console.log(err); 110 | i--; 111 | } 112 | } 113 | return { 114 | mountDuration: getAverageValue(mountDuration), 115 | rerenderDuration: getAverageValue(rerenderDuration), 116 | }; 117 | } 118 | 119 | function getIcon(value) { 120 | return value ? '+' : '-'; 121 | } 122 | 123 | function format(value) { 124 | return value.toLocaleString(undefined, { maximumFractionDigits: 2 }); 125 | } 126 | 127 | function arrayToTable(array, cols) { 128 | const nextLine = '\r\n'; 129 | const nextCol = ' | '; 130 | 131 | let table = `## Results:${nextLine}*sorted by rerender time*${nextLine}${nextLine}`; 132 | 133 | table += cols.join(nextCol); 134 | table += nextLine; 135 | table += cols.map(() => ':---').join(nextCol); 136 | table += nextLine; 137 | 138 | array.forEach(item => { 139 | table += 140 | [ 141 | item.link ? `[${item.name}](${item.link})` : item.name, 142 | getIcon(item.useCSS), 143 | getIcon(item.useInlineStyles), 144 | format(item.mountDuration), 145 | format(item.rerenderDuration), 146 | ].join(nextCol) + nextLine; 147 | }); 148 | 149 | return table; 150 | } 151 | 152 | function writeResults(res) { 153 | const sortRes = res.sort((a, b) => a.rerenderDuration - b.rerenderDuration); 154 | 155 | const table = arrayToTable(sortRes, [ 156 | 'Solution', 157 | 'Use CSS', 158 | 'Use Inline-Styles', 159 | 'Mount Time (ms)', 160 | 'Rerender time (ms)', 161 | ]); 162 | 163 | if (!filterPackages) { 164 | sortRes.map(res => { 165 | console.log(''); 166 | console.log(`${chalk.green(res.name)}`); 167 | console.log(` - Mount time: ${chalk.cyan(res.mountDuration)} ms`); 168 | console.log(` - Renderer time: ${chalk.cyan(res.rerenderDuration)} ms`); 169 | console.log(''); 170 | }); 171 | 172 | fs.writeFileSync(__dirname + '/../../RESULT.md', table); 173 | 174 | console.log(''); 175 | console.log('Saved into RESULT.md'); 176 | console.log(''); 177 | } 178 | } 179 | 180 | async function run() { 181 | let res = []; 182 | 183 | const port = 3000; 184 | const packages = getPackageList(); 185 | 186 | shell.config.verbose = true; 187 | 188 | if (!packages.length) { 189 | console.log('There are no packages'); 190 | return; 191 | } 192 | 193 | console.log(''); 194 | if (filterPackages) { 195 | console.log( 196 | `${chalk.green('Run benchmark')} for ${filterPackages 197 | .map(n => chalk.cyan(n)) 198 | .join(', ')} packages` 199 | ); 200 | console.log(` note that metrics will not be saved to RESULTS.md`); 201 | } else { 202 | console.log( 203 | `${chalk.green('Run benchmark')}. Found ${packages.length} packages` 204 | ); 205 | } 206 | console.log(''); 207 | 208 | for (let i = 0; i < packages.length; i++) { 209 | const app = connect(); 210 | const packageInfo = packages[i]; 211 | const currentPort = port + i; 212 | 213 | console.log(''); 214 | console.log( 215 | ` (${i + 1}/${packages.length}) ${chalk.green(packageInfo.name)} at port ${currentPort}` 216 | ); 217 | console.log(''); 218 | 219 | if (!process.env.SKIP_BUILD) { 220 | console.log(` ${chalk.cyan('prepre package build')}`); 221 | console.log(''); 222 | shell.exec(`npm --prefix ${packageInfo.path} run build`); 223 | 224 | console.log(''); 225 | console.log(` ${chalk.cyan('build completed')}`); 226 | console.log(''); 227 | } 228 | 229 | app.use( 230 | serveStatic(path.join(packageInfo.path, 'static'), { 231 | index: ['index.html'], 232 | }) 233 | ); 234 | 235 | const server = http.createServer(app).listen(currentPort); 236 | const url = `http://localhost:${currentPort}?test=true`; 237 | 238 | console.log(` run tests...`); 239 | const packageRes = await runTestCase(url); 240 | 241 | console.log(''); 242 | console.log(` ${chalk.green(packageInfo.name)}:`); 243 | console.log(` - Rerender Duration: ${packageRes.rerenderDuration} ms`); 244 | console.log(` - Mount Duration: ${packageRes.mountDuration} ms`); 245 | 246 | res.push({ 247 | name: packageInfo.name, 248 | useInlineStyles: packageInfo.useInlineStyles || false, 249 | useCSS: packageInfo.useCSS || false, 250 | link: packageInfo.link, 251 | rerenderDuration: packageRes.rerenderDuration, 252 | mountDuration: packageRes.mountDuration, 253 | }); 254 | 255 | server.close(); 256 | } 257 | 258 | writeResults(res); 259 | } 260 | --------------------------------------------------------------------------------