From 81142234122cf254612d820a84826096f4de76a3 Mon Sep 17 00:00:00 2001 From: Chris Williams Date: Thu, 7 Dec 2017 16:57:47 -0800 Subject: [PATCH] [xy-chart] use babel instead of webpack to support deep imports --- packages/xy-chart/package.json | 10 +++---- packages/xy-chart/src/chart/XYChart.jsx | 2 +- packages/xy-chart/src/enhancer/ParentSize.jsx | 1 + .../xy-chart/src/enhancer/WithTooltip.jsx | 1 + .../xy-chart/src/enhancer/withParentSize.js | 1 + .../xy-chart/src/enhancer/withScreenSize.js | 1 + packages/xy-chart/src/index.js | 14 +++++---- .../xy-chart/src/style/LinearGradient.jsx | 1 + packages/xy-chart/src/style/Pattern.jsx | 1 + packages/xy-chart/src/style/chartTheme.js | 1 + packages/xy-chart/src/utils/computeStats.js | 1 + .../xy-chart/test/enhancer/ParentSize.test.js | 7 +++++ .../test/enhancer/WithTooltip.test.js | 11 +++++++ .../test/enhancer/withParentSize.test.js | 7 +++++ .../test/enhancer/withScreenSize.test.js | 7 +++++ .../test/style/LinearGradient.test.js | 7 +++++ packages/xy-chart/test/style/Pattern.test.js | 19 ++++++++++++ .../xy-chart/test/style/chartTheme.test.js | 7 +++++ .../xy-chart/test/utils/computeStats.test.js | 7 +++++ packages/xy-chart/webpack.config.js | 29 ------------------- 20 files changed, 94 insertions(+), 41 deletions(-) create mode 100644 packages/xy-chart/src/enhancer/ParentSize.jsx create mode 100644 packages/xy-chart/src/enhancer/WithTooltip.jsx create mode 100644 packages/xy-chart/src/enhancer/withParentSize.js create mode 100644 packages/xy-chart/src/enhancer/withScreenSize.js create mode 100644 packages/xy-chart/src/style/LinearGradient.jsx create mode 100644 packages/xy-chart/src/style/Pattern.jsx create mode 100644 packages/xy-chart/src/style/chartTheme.js create mode 100644 packages/xy-chart/src/utils/computeStats.js create mode 100644 packages/xy-chart/test/enhancer/ParentSize.test.js create mode 100644 packages/xy-chart/test/enhancer/WithTooltip.test.js create mode 100644 packages/xy-chart/test/enhancer/withParentSize.test.js create mode 100644 packages/xy-chart/test/enhancer/withScreenSize.test.js create mode 100644 packages/xy-chart/test/style/LinearGradient.test.js create mode 100644 packages/xy-chart/test/style/Pattern.test.js create mode 100644 packages/xy-chart/test/style/chartTheme.test.js create mode 100644 packages/xy-chart/test/utils/computeStats.test.js delete mode 100644 packages/xy-chart/webpack.config.js diff --git a/packages/xy-chart/package.json b/packages/xy-chart/package.json index fa16d0ee..e5d2ba44 100644 --- a/packages/xy-chart/package.json +++ b/packages/xy-chart/package.json @@ -4,8 +4,8 @@ "description": "A package of charts with standard x- and y- axes. https://williaster.github.io/data-ui", "main": "build/index.js", "scripts": { - "build": "webpack -p", - "dev": "webpack --progress --colors --watch", + "build": "babel src/ -d build/", + "dev": "babel src/ -d build/ --watch", "prepublish": "npm run build", "test": "jest --colors --verbose --coverage" }, @@ -42,7 +42,8 @@ "prop-types": "^15.5.10" }, "devDependencies": { - "babel-core": "^6.24.1", + "babel-cli": "^6.26.0", + "babel-core": "^6.26.0", "babel-jest": "^20.0.3", "babel-loader": "^6.4.1", "babel-plugin-syntax-jsx": "^6.18.0", @@ -52,8 +53,7 @@ "jest": "^20.0.3", "react": "^16.0.0", "react-dom": "^16.0.0", - "react-test-renderer": "^16.0.0", - "webpack": "^2.4.1" + "react-test-renderer": "^16.0.0" }, "peerDependencies": { "react": "^15.0.0-0 || ^16.0.0-0", diff --git a/packages/xy-chart/src/chart/XYChart.jsx b/packages/xy-chart/src/chart/XYChart.jsx index 5481bc8c..4795d2c4 100644 --- a/packages/xy-chart/src/chart/XYChart.jsx +++ b/packages/xy-chart/src/chart/XYChart.jsx @@ -3,12 +3,12 @@ import PropTypes from 'prop-types'; import Grid from '@vx/grid/build/grids/Grid'; import Group from '@vx/group/build/Group'; -import WithTooltip, { withTooltipPropTypes } from '@data-ui/shared/build/enhancer/WithTooltip'; import collectVoronoiData from '../utils/collectVoronoiData'; import findClosestDatums from '../utils/findClosestDatums'; import shallowCompareObjectEntries from '../utils/shallowCompareObjectEntries'; import Voronoi from './Voronoi'; +import WithTooltip, { withTooltipPropTypes } from '../enhancer/WithTooltip'; import { componentName, diff --git a/packages/xy-chart/src/enhancer/ParentSize.jsx b/packages/xy-chart/src/enhancer/ParentSize.jsx new file mode 100644 index 00000000..02f03f5e --- /dev/null +++ b/packages/xy-chart/src/enhancer/ParentSize.jsx @@ -0,0 +1 @@ +export { default } from '@vx/responsive/build/components/ParentSize'; diff --git a/packages/xy-chart/src/enhancer/WithTooltip.jsx b/packages/xy-chart/src/enhancer/WithTooltip.jsx new file mode 100644 index 00000000..0b25adba --- /dev/null +++ b/packages/xy-chart/src/enhancer/WithTooltip.jsx @@ -0,0 +1 @@ +export { default, withTooltipPropTypes } from '@data-ui/shared/build/enhancer/WithTooltip'; diff --git a/packages/xy-chart/src/enhancer/withParentSize.js b/packages/xy-chart/src/enhancer/withParentSize.js new file mode 100644 index 00000000..3e6af553 --- /dev/null +++ b/packages/xy-chart/src/enhancer/withParentSize.js @@ -0,0 +1 @@ +export { default } from '@vx/responsive/build/enhancers/withParentSize'; diff --git a/packages/xy-chart/src/enhancer/withScreenSize.js b/packages/xy-chart/src/enhancer/withScreenSize.js new file mode 100644 index 00000000..9e4f37e4 --- /dev/null +++ b/packages/xy-chart/src/enhancer/withScreenSize.js @@ -0,0 +1 @@ +export { default } from '@vx/responsive/build/enhancers/withScreenSize'; diff --git a/packages/xy-chart/src/index.js b/packages/xy-chart/src/index.js index 12e8064d..5346bcef 100644 --- a/packages/xy-chart/src/index.js +++ b/packages/xy-chart/src/index.js @@ -13,15 +13,17 @@ export { default as StackedAreaSeries } from './series/StackedAreaSeries'; export { default as StackedBarSeries } from './series/StackedBarSeries'; export { default as BoxPlotSeries } from './series/BoxPlotSeries'; export { default as ViolinPlotSeries } from './series/ViolinPlotSeries'; -export { computeStats } from '@vx/stats'; +export { default as computeStats } from './utils/computeStats'; export { default as HorizontalReferenceLine } from './annotation/HorizontalReferenceLine'; export { default as CrossHair } from './chart/CrossHair'; -export { default as WithTooltip, withTooltipPropTypes } from '@data-ui/shared/build/enhancer/WithTooltip'; -export { LinearGradient } from '@vx/gradient'; -export { PatternLines, PatternCircles, PatternWaves, PatternHexagons } from '@vx/pattern'; -export { withScreenSize, withParentSize, ParentSize } from '@vx/responsive'; +export { default as LinearGradient } from './style/LinearGradient'; +export { PatternLines, PatternCircles, PatternWaves, PatternHexagons } from './style/Pattern'; +export { default as withScreenSize } from './enhancer/withScreenSize'; +export { default as withParentSize } from './enhancer/withParentSize'; +export { default as ParentSize } from './enhancer/ParentSize'; +export { default as WithTooltip, withTooltipPropTypes } from './enhancer/WithTooltip'; export { default as withTheme } from './enhancer/withTheme'; -export { chartTheme as theme } from '@data-ui/theme'; +export { default as theme } from './style/chartTheme'; diff --git a/packages/xy-chart/src/style/LinearGradient.jsx b/packages/xy-chart/src/style/LinearGradient.jsx new file mode 100644 index 00000000..fd87d00a --- /dev/null +++ b/packages/xy-chart/src/style/LinearGradient.jsx @@ -0,0 +1 @@ +export { default } from '@vx/gradient/build/gradients/LinearGradient'; diff --git a/packages/xy-chart/src/style/Pattern.jsx b/packages/xy-chart/src/style/Pattern.jsx new file mode 100644 index 00000000..f5f5f81a --- /dev/null +++ b/packages/xy-chart/src/style/Pattern.jsx @@ -0,0 +1 @@ +export { PatternLines, PatternCircles, PatternWaves, PatternHexagons } from '@vx/pattern'; diff --git a/packages/xy-chart/src/style/chartTheme.js b/packages/xy-chart/src/style/chartTheme.js new file mode 100644 index 00000000..8c5bcb4c --- /dev/null +++ b/packages/xy-chart/src/style/chartTheme.js @@ -0,0 +1 @@ +export { chartTheme as default } from '@data-ui/theme'; diff --git a/packages/xy-chart/src/utils/computeStats.js b/packages/xy-chart/src/utils/computeStats.js new file mode 100644 index 00000000..35939386 --- /dev/null +++ b/packages/xy-chart/src/utils/computeStats.js @@ -0,0 +1 @@ +export { computeStats as default } from '@vx/stats'; diff --git a/packages/xy-chart/test/enhancer/ParentSize.test.js b/packages/xy-chart/test/enhancer/ParentSize.test.js new file mode 100644 index 00000000..9cb769c3 --- /dev/null +++ b/packages/xy-chart/test/enhancer/ParentSize.test.js @@ -0,0 +1,7 @@ +import { ParentSize } from '../../src'; + +describe('ParentSize', () => { + test('it should be defined', () => { + expect(ParentSize).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/test/enhancer/WithTooltip.test.js b/packages/xy-chart/test/enhancer/WithTooltip.test.js new file mode 100644 index 00000000..61362d99 --- /dev/null +++ b/packages/xy-chart/test/enhancer/WithTooltip.test.js @@ -0,0 +1,11 @@ +import { WithTooltip, withTooltipPropTypes } from '../../src'; + +describe('WithTooltip', () => { + test('it should be defined', () => { + expect(WithTooltip).toBeDefined(); + }); + + test('withTooltipPropTypes should be defined', () => { + expect(withTooltipPropTypes).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/test/enhancer/withParentSize.test.js b/packages/xy-chart/test/enhancer/withParentSize.test.js new file mode 100644 index 00000000..3ceb06d2 --- /dev/null +++ b/packages/xy-chart/test/enhancer/withParentSize.test.js @@ -0,0 +1,7 @@ +import { withParentSize } from '../../src'; + +describe('withParentSize', () => { + test('it should be defined', () => { + expect(withParentSize).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/test/enhancer/withScreenSize.test.js b/packages/xy-chart/test/enhancer/withScreenSize.test.js new file mode 100644 index 00000000..b35a4ad5 --- /dev/null +++ b/packages/xy-chart/test/enhancer/withScreenSize.test.js @@ -0,0 +1,7 @@ +import { withScreenSize } from '../../src'; + +describe('withScreenSize', () => { + test('it should be defined', () => { + expect(withScreenSize).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/test/style/LinearGradient.test.js b/packages/xy-chart/test/style/LinearGradient.test.js new file mode 100644 index 00000000..6ae5890c --- /dev/null +++ b/packages/xy-chart/test/style/LinearGradient.test.js @@ -0,0 +1,7 @@ +import { LinearGradient } from '../../src'; + +describe('LinearGradient', () => { + test('it should be defined', () => { + expect(LinearGradient).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/test/style/Pattern.test.js b/packages/xy-chart/test/style/Pattern.test.js new file mode 100644 index 00000000..b9204bd8 --- /dev/null +++ b/packages/xy-chart/test/style/Pattern.test.js @@ -0,0 +1,19 @@ +import { PatternLines, PatternCircles, PatternWaves, PatternHexagons } from '../../src'; + +describe('Pattern', () => { + test('PatternLines should be defined', () => { + expect(PatternLines).toBeDefined(); + }); + + test('PatternCircles should be defined', () => { + expect(PatternCircles).toBeDefined(); + }); + + test('PatternWaves should be defined', () => { + expect(PatternWaves).toBeDefined(); + }); + + test('PatternHexagons should be defined', () => { + expect(PatternHexagons).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/test/style/chartTheme.test.js b/packages/xy-chart/test/style/chartTheme.test.js new file mode 100644 index 00000000..4f41fb6b --- /dev/null +++ b/packages/xy-chart/test/style/chartTheme.test.js @@ -0,0 +1,7 @@ +import { theme } from '../../src'; + +describe('theme', () => { + test('it should be defined', () => { + expect(theme).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/test/utils/computeStats.test.js b/packages/xy-chart/test/utils/computeStats.test.js new file mode 100644 index 00000000..295ef45a --- /dev/null +++ b/packages/xy-chart/test/utils/computeStats.test.js @@ -0,0 +1,7 @@ +import { computeStats } from '../../src'; + +describe('computeStats', () => { + test('it should be defined', () => { + expect(computeStats).toBeDefined(); + }); +}); diff --git a/packages/xy-chart/webpack.config.js b/packages/xy-chart/webpack.config.js deleted file mode 100644 index 756874cb..00000000 --- a/packages/xy-chart/webpack.config.js +++ /dev/null @@ -1,29 +0,0 @@ -const path = require('path'); - -const dist = path.resolve(__dirname, './build'); -const src = path.resolve(__dirname, './src'); - -const config = { - entry: { - index: `${src}/index`, - }, - output: { - filename: '[name].js', - path: `${dist}`, - libraryTarget: 'commonjs2', - }, - resolve: { - extensions: ['.js', '.jsx'], - }, - module: { - rules: [ - { - test: /\.jsx?$/, - include: src, - loader: 'babel-loader', - }, - ], - }, -}; - -module.exports = config;