Skip to content

Commit dd35eb8

Browse files
paularmstrongrxaviers
authored andcommitted
Use rollup for build system (2/2)
Ref #79
1 parent 8d92b0f commit dd35eb8

16 files changed

+36
-41
lines changed

.babelrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"presets": [
33
"react",
4-
"es2015"
4+
"env"
55
],
66
"plugins": [
77
"transform-class-properties",

package.json

+6-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
"version": "0.4.1",
44
"description": "Bringing the i18n functionality of Globalize, backed by CLDR, to React",
55
"main": "dist/index.js",
6+
"module": "dist/index.esm.js",
7+
"browser": "dist/index.umd.js",
68
"files": [
79
"dist/",
810
"examples/",
@@ -13,7 +15,8 @@
1315
"scripts": {
1416
"build": "rollup -c",
1517
"lint": "eslint rollup.config.js src test",
16-
"test": "mocha test"
18+
"test": "mocha test",
19+
"prepublish": "build"
1720
},
1821
"keywords": [
1922
"react",
@@ -37,11 +40,11 @@
3740
"react": "^0.13 || ^0.14 || ^15.0.0"
3841
},
3942
"devDependencies": {
40-
"babel-core": "^6.26.0",
43+
"babel-cli": "^6.26.0",
4144
"babel-eslint": "^8.0.1",
4245
"babel-plugin-transform-class-properties": "^6.24.1",
4346
"babel-plugin-transform-object-rest-spread": "^6.26.0",
44-
"babel-preset-es2015-rollup": "^3.0.0",
47+
"babel-preset-env": "^1.6.0",
4548
"babel-preset-react": "^6.24.1",
4649
"babel-register": "^6.7.2",
4750
"chai": "^4.1.2",

rollup.config.js

+10-9
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,30 @@ import resolve from "rollup-plugin-node-resolve";
33
import pkg from "./package.json";
44

55
export default [
6-
// browser-friendly UMD build
76
{
87
input: "src/index.js",
98
external: [
109
"react",
1110
"globalize",
12-
"prop-types",
11+
"globalize/*"
1312
],
1413
globals: {
1514
react: "React",
16-
globalize: "Globalize",
17-
"prop-types": "PropTypes",
15+
globalize: "Globalize"
1816
},
1917
output: [
2018
{ file: pkg.browser, format: "umd", name: "react-globalize" },
2119
{ file: pkg.main, format: "cjs" },
22-
{ file: pkg.module, format: "es" },
20+
{ file: pkg.module, format: "es" }
2321
],
2422
plugins: [
2523
resolve(),
2624
babel({
27-
exclude: "node_modules/**",
28-
}),
29-
],
30-
},
25+
babelrc: false,
26+
presets: [ "react", [ "env", { modules: false } ] ],
27+
plugins: [ "transform-class-properties", "transform-object-rest-spread" ],
28+
exclude: "node_modules/**"
29+
})
30+
]
31+
}
3132
];

src/currency.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from "react";
22
import generator from "./generator";
3-
import "globalize/currency";
43

54
export default generator("formatCurrency", ["value", "currency", "options"]);

src/date.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from "react";
22
import generator from "./generator";
3-
import "globalize/date";
43

54
export default generator("formatDate", ["value", "options"]);

src/generator.js

+11-14
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import reactCreateClass from "./react-create-class";
12
import React from "react";
23
import Globalize from "globalize";
34

@@ -22,18 +23,15 @@ function generator(fn, localPropNames, options) {
2223
};
2324
var globalizePropNames = commonPropNames.concat(localPropNames);
2425

25-
return class extends React.Component {
26-
//static displayName = Fn;
27-
28-
componentWillMount() {
26+
return reactCreateClass({
27+
displayName: Fn,
28+
componentWillMount: function() {
2929
this.setup(this.props);
30-
}
31-
32-
componentWillReceiveProps(nextProps) {
30+
},
31+
componentWillReceiveProps: function(nextProps) {
3332
this.setup(nextProps);
34-
}
35-
36-
setup(props) {
33+
},
34+
setup: function(props) {
3735
this.globalize = props.locale ? Globalize(props.locale) : Globalize;
3836
this.domProps = Object.keys(props).filter(omit(globalizePropNames)).reduce(function(memo, propKey) {
3937
memo[propKey] = props[propKey];
@@ -48,12 +46,11 @@ function generator(fn, localPropNames, options) {
4846
beforeFormat.call(this, props);
4947
var formattedValue = this.globalize[fn].apply(this.globalize, this.globalizePropValues);
5048
this.value = afterFormat.call(this, formattedValue);
51-
}
52-
53-
render() {
49+
},
50+
render: function() {
5451
return React.DOM.span(this.domProps, this.value);
5552
}
56-
};
53+
});
5754
}
5855

5956
export default generator;

src/message.js

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import Globalize from "globalize";
22
import React from "react";
33
import generator from "./generator";
4-
import "globalize/message";
5-
import "globalize/plural";
64

75
function messageSetup(globalize, props, globalizePropValues) {
86
var defaultMessage;

src/number.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from "react";
22
import generator from "./generator";
3-
import "globalize/number";
43

54
export default generator("formatNumber", ["value", "options"]);

src/relative-time.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React from "react";
22
import generator from "./generator";
3-
import "globalize/relative-time";
43

54
export default generator("formatRelativeTime", ["value", "unit", "options"]);

test/formatCurrency.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*global expect React shallow Globalize*/
2-
import FormatCurrency from "../dist/currency";
2+
import FormatCurrency from "../src/currency";
33

44
describe("formatCurrency Component", () => {
55
it("renders as a <span>", () => {

test/formatDate.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*global expect React shallow Globalize*/
2-
import FormatDate from "../dist/date";
2+
import FormatDate from "../src/date";
33

44
describe("formatDate Component", () => {
55
it("renders as a <span>", () => {

test/formatMessage.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*global expect React shallow Globalize*/
2-
import FormatMessage from "../dist/message";
2+
import FormatMessage from "../src/message";
33

44
Globalize.loadMessages({
55
en: {

test/formatNumber.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*global expect React shallow Globalize*/
2-
import FormatNumber from "../dist/number";
2+
import FormatNumber from "../src/number";
33

44
describe("formatNumber Component", () => {
55
it("renders as a <span>", () => {

test/formatRelativeTime.spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*global expect React shallow Globalize*/
2-
import FormatRelativeTime from "../dist/relative-time";
2+
import FormatRelativeTime from "../src/relative-time";
33

44
describe("formatRelativeTime Component", () => {
55
it("renders as a <span>", () => {

test/general.spec.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*global expect React shallow Globalize*/
2-
import FormatCurrency from "../dist/currency";
3-
import FormatMessage from "../dist/message";
2+
import FormatCurrency from "../src/currency";
3+
import FormatMessage from "../src/message";
44

55
describe("Any Component", () => {
66
it("doesn't forward ReactGlobalize specific props to underlying DOM component", () => {

test/mocha.opts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
--colors --require babel-register --require test/test_setup
1+
--colors --require babel-register --require test/test_setup

0 commit comments

Comments
 (0)