From b1a993a89ea9e3636140b2e76e3d90b5cfc14ecc Mon Sep 17 00:00:00 2001 From: Evan Jacobs Date: Sun, 2 Jun 2019 18:48:51 -0500 Subject: [PATCH] remove babel-plugin-preval and generate errormap as a build step --- .gitignore | 3 ++- babel-preset.js | 7 ++---- packages/styled-components/package.json | 6 +++-- .../scripts/generateErrorMap.js | 22 +++++++++++++++++++ packages/styled-components/src/utils/error.js | 21 ++---------------- 5 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 packages/styled-components/scripts/generateErrorMap.js diff --git a/.gitignore b/.gitignore index f6937e42..e54e8db9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules dist .DS_Store *.log -package-lock.json \ No newline at end of file +package-lock.json +**/styled-components/src/utils/errors.js diff --git a/babel-preset.js b/babel-preset.js index a0f649bc..5bfeaca9 100644 --- a/babel-preset.js +++ b/babel-preset.js @@ -6,18 +6,15 @@ module.exports = () => ({ [ '@babel/preset-env', { - targets: NODE_ENV === 'test' - ? { node: 'current' } - : undefined, + targets: NODE_ENV === 'test' ? { node: 'current' } : undefined, loose: true, modules, }, ], '@babel/preset-react', - '@babel/preset-flow' + '@babel/preset-flow', ], plugins: [ - 'babel-plugin-preval', ['babel-plugin-transform-react-remove-prop-types', { mode: 'unsafe-wrap' }], ['@babel/plugin-proposal-object-rest-spread', { loose: true }], ['@babel/plugin-proposal-class-properties', { loose: true }], diff --git a/packages/styled-components/package.json b/packages/styled-components/package.json index 1badb8ec..2094d1cd 100644 --- a/packages/styled-components/package.json +++ b/packages/styled-components/package.json @@ -12,12 +12,14 @@ }, "sideEffects": false, "scripts": { + "generateErrors": "node scripts/generateErrorMap.js", + "prebuild": "rimraf dist && npm run generateErrors", "build": "rollup -c", - "prebuild": "rimraf dist", "postbuild": "npm run lint:size", "flow": "flow check", "flow:watch": "flow-watch", - "test": "run-s test:*", + "pretest": "npm run generateErrors", + "test": "npm run test:web && npm run test:native && npm run test:primitives", "test:web": "jest -c ../../scripts/jest/config.main.js", "test:native": "jest -c ../../scripts/jest/config.native.js", "test:primitives": "jest -c ../../scripts/jest/config.primitives.js", diff --git a/packages/styled-components/scripts/generateErrorMap.js b/packages/styled-components/scripts/generateErrorMap.js new file mode 100644 index 00000000..2debab31 --- /dev/null +++ b/packages/styled-components/scripts/generateErrorMap.js @@ -0,0 +1,22 @@ +const fs = require('fs'); +const path = require('path'); + +const md = fs.readFileSync(path.join(__dirname, '../src/utils/errors.md'), 'utf8'); + +const errorMap = md + .split(/^#/gm) + .slice(1) + .reduce((errors, str) => { + const [, code, message] = str.split(/^.*?(\d+)\s*\n/); + + // eslint-disable-next-line no-param-reassign + errors[code] = message; + + return errors; + }, {}); + +fs.writeFileSync( + path.join(__dirname, '../src/utils/errors.js'), + `export default ${JSON.stringify(errorMap)};`, + 'utf8' +); diff --git a/packages/styled-components/src/utils/error.js b/packages/styled-components/src/utils/error.js index 8eb677d3..5d15145d 100644 --- a/packages/styled-components/src/utils/error.js +++ b/packages/styled-components/src/utils/error.js @@ -1,24 +1,7 @@ // @flow +import errorMap from './errors'; -declare var preval: Function; - -/** - * Parse errors.md and turn it into a simple hash of code: message - */ -const ERRORS = - process.env.NODE_ENV !== 'production' - ? preval` - const fs = require('fs'); - const md = fs.readFileSync(__dirname + '/errors.md', 'utf8'); - - module.exports = md.split(/^#/gm).slice(1).reduce((errors, str) => { - const [, code, message] = str.split(/^.*?(\\d+)\\s*\\n/) - errors[code] = message - - return errors; - }, {}); - ` - : {}; +const ERRORS = process.env.NODE_ENV !== 'production' ? errorMap : {}; /** * super basic version of sprintf