Skip to content

Commit

Permalink
Merge pull request #30 from wojtekmaj/import-pdfjs-using-webpack
Browse files Browse the repository at this point in the history
Update to 1.7.0
  • Loading branch information
wojtekmaj committed Jul 14, 2017
2 parents c078b4a + 1bbd7e0 commit 22afbe8
Show file tree
Hide file tree
Showing 34 changed files with 198 additions and 65,616 deletions.
5 changes: 2 additions & 3 deletions .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
"react"
],
"plugins": [
"transform-class-properties",
"transform-es2015-modules-commonjs"
"transform-class-properties"
]
}
}
11 changes: 6 additions & 5 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ engines:
duplication:
enabled: true
exclude_paths:
- "webpack.config.sample.js"
- "webpack.config.test.js"
- "webpack.config.js"
- "test/webpack.config.js"
- "sample/webpack.config.js"
config:
languages:
- javascript
Expand All @@ -16,6 +17,6 @@ ratings:
- "**.js"
- "**.jsx"
exclude_paths:
- es5/
- test/
- sample/
- build/
- test/build/
- sample/build/
8 changes: 4 additions & 4 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Ignore files generated by webpack
es5/*
sample/*
test/*
# Ignore compiled files
build/*
sample/build/*
test/build/*
2 changes: 1 addition & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
"ecmaFeatures": {
"experimentalObjectRestSpread": true
}
},
}
}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
.vscode
sample/build
test/build
node_modules
npm-debug.log
package-lock.json
stats*.json
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
language: node_js
node_js: "node"
node_js: "node"
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ You'll need to have Node >= 4 on your machine.

We strongly recommend to use Node >= 6 and npm >= 3 for faster installation speed and better disk usage.

Your project needs to use React 15.0.0 or later.
Your project needs to use React 15.5.0 or later.

### Installation

Expand Down Expand Up @@ -77,6 +77,22 @@ Check the sample directory of this repository for a full working example.
|onPageRender|Function called when the page is successfully rendered on the screen.|`onPageLoad={() => alert('Rendered the page!')}`|
|onPageError|Function called in case of an error while rendering a page.|`onPageError={({ message }) => alert('Error while loading page! ' + message)}`|

#### Usage without worker

If you want to use React-PDF without PDF.js worker, instead of importing React-PDF like so:

```js
import ReactPDF from 'react-pdf';
```

use the following syntax:

```js
import ReactPDF from 'react-pdf/build/react-pdf.entry.noworker';
```

Please note that while by doing so your bundle size will be reduced, it may negatively affect React-PDF performance, so it is not recommended unless bundle size is your absolute priority.

## License

The MIT License
Expand Down
6 changes: 6 additions & 0 deletions build/react-pdf.entry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
var ReactPDF = require('./react-pdf');

require('pdfjs-dist/webpack');
require('pdfjs-dist/web/compatibility');

module.exports = ReactPDF;
8 changes: 8 additions & 0 deletions build/react-pdf.entry.noworker.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
var ReactPDF = require('./react-pdf');

var pdfjs = require('pdfjs-dist');
require('pdfjs-dist/web/compatibility');

pdfjs.PDFJS.disableWorker = true;

module.exports = ReactPDF;
85 changes: 29 additions & 56 deletions es5/react-pdf.js → build/react-pdf.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,15 @@
'use strict';

Object.defineProperty(exports, "__esModule", {
value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _propTypes = require('prop-types');

var _propTypes2 = _interopRequireDefault(_propTypes);

var _pdfjsDist = require('pdfjs-dist');

var _pdfjsDist2 = _interopRequireDefault(_pdfjsDist);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

require('pdfjs-dist/web/compatibility');

_pdfjsDist2.default.PDFJS.workerSrc = 'pdf.worker.js';
import React, { Component } from 'react';
import PropTypes from 'prop-types';

var ReactPDF = function (_Component) {
_inherits(ReactPDF, _Component);
Expand Down Expand Up @@ -166,19 +145,13 @@ var ReactPDF = function (_Component) {

// File is a File
if (file instanceof File) {
var _ret2 = function () {
var reader = new FileReader();
var reader = new FileReader();

reader.onloadend = function () {
_this2.loadDocument(new Uint8Array(reader.result));
};

return {
v: reader.readAsArrayBuffer(file)
};
}();
reader.onloadend = function () {
_this2.loadDocument(new Uint8Array(reader.result));
};

if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === "object") return _ret2.v;
return reader.readAsArrayBuffer(file);
}

// File is an ArrayBuffer
Expand Down Expand Up @@ -235,7 +208,7 @@ var ReactPDF = function (_Component) {
}, {
key: 'renderNoData',
value: function renderNoData() {
return _react2.default.createElement(
return React.createElement(
'div',
null,
this.props.noData
Expand All @@ -244,7 +217,7 @@ var ReactPDF = function (_Component) {
}, {
key: 'renderError',
value: function renderError() {
return _react2.default.createElement(
return React.createElement(
'div',
null,
this.props.error
Expand All @@ -253,7 +226,7 @@ var ReactPDF = function (_Component) {
}, {
key: 'renderLoader',
value: function renderLoader() {
return _react2.default.createElement(
return React.createElement(
'div',
null,
this.props.loading
Expand Down Expand Up @@ -282,7 +255,7 @@ var ReactPDF = function (_Component) {
return this.renderLoader();
}

return _react2.default.createElement('canvas', {
return React.createElement('canvas', {
ref: function ref(_ref2) {
if (!_ref2) return;

Expand Down Expand Up @@ -327,7 +300,7 @@ var ReactPDF = function (_Component) {
}]);

return ReactPDF;
}(_react.Component);
}(Component);

var _initialiseProps = function _initialiseProps() {
var _this4 = this;
Expand Down Expand Up @@ -430,7 +403,7 @@ var _initialiseProps = function _initialiseProps() {
};
};

exports.default = ReactPDF;
export default ReactPDF;


ReactPDF.defaultProps = {
Expand All @@ -442,21 +415,21 @@ ReactPDF.defaultProps = {
};

ReactPDF.propTypes = {
error: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
file: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.instanceOf(File), _propTypes2.default.instanceOf(Blob), _propTypes2.default.shape({
data: _propTypes2.default.object,
httpHeaders: _propTypes2.default.object,
range: _propTypes2.default.object,
url: _propTypes2.default.string
error: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
file: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(File), PropTypes.instanceOf(Blob), PropTypes.shape({
data: PropTypes.object,
httpHeaders: PropTypes.object,
range: PropTypes.object,
url: PropTypes.string
})]),
loading: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
noData: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
onDocumentError: _propTypes2.default.func,
onDocumentLoad: _propTypes2.default.func,
onPageError: _propTypes2.default.func,
onPageLoad: _propTypes2.default.func,
onPageRender: _propTypes2.default.func,
pageIndex: _propTypes2.default.number,
scale: _propTypes2.default.number,
width: _propTypes2.default.number
loading: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
noData: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
onDocumentError: PropTypes.func,
onDocumentLoad: PropTypes.func,
onPageError: PropTypes.func,
onPageLoad: PropTypes.func,
onPageRender: PropTypes.func,
pageIndex: PropTypes.number,
scale: PropTypes.number,
width: PropTypes.number
};
33 changes: 9 additions & 24 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@
"name": "react-pdf",
"version": "1.7.0",
"description": "Easily display PDF files in your React application.",
"main": "es5/react-pdf.js",
"es6": "src/react-pdf.jsx",
"main": "build/react-pdf.entry.js",
"es6": "src/react-pdf.entry.js",
"scripts": {
"build": "npm run build-sample && npm run build-source && npm run build-test",
"build-sample": "webpack --config webpack.config.sample.js",
"build-source": "babel src -d es5",
"build-test": "webpack --config webpack.config.test.js",
"eslint": "eslint .",
"build": "babel src -d build",
"eslint": "eslint ./src",
"prepublishOnly": "npm run build",
"test": "npm run eslint"
},
Expand All @@ -34,37 +31,25 @@
],
"license": "MIT",
"dependencies": {
"is-utf8": "^0.2.1",
"pdfjs-dist": "^1.8.527",
"prop-types": "^15.5.10",
"react": "^15.6.1",
"react-dom": "^15.6.1"
"pdfjs-dist": "^1.8.532",
"prop-types": ">=15.5",
"react": ">=15.5",
"react-dom": ">=15.5"
},
"devDependencies": {
"babel": "^6.23.0",
"babel-cli": "^6.24.1",
"babel-core": "^6.25.0",
"babel-eslint": "^7.2.3",
"babel-loader": "^7.1.1",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "latest",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^15.0.2",
"eslint-plugin-class-property": "^1.0.6",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.1.0",
"file-loader": "latest",
"less": "^2.7.2",
"less-loader": "latest",
"style-loader": "latest",
"url-loader": "latest",
"webpack": "^3.2.0"
"eslint-plugin-react": "^7.1.0"
},
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion sample/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
</head>
<body>
<div id="react-container"></div>
<script src="./sample.js"></script>
<script src="./main.bundle.js"></script>
</body>
</html>
41 changes: 41 additions & 0 deletions sample/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"name": "react-pdf-sample-page",
"version": "1.7.0",
"description": "A sample page for React-PDF.",
"scripts": {
"build": "webpack"
},
"author": {
"name": "Wojciech Maj",
"email": "kontakt@wojtekmaj.pl"
},
"license": "MIT",
"dependencies": {
"react": ">=15.5",
"react-dom": ">=15.5",
"react-pdf": "../"
},
"devDependencies": {
"babel-core": "^6.25.0",
"babel-eslint": "^7.2.3",
"babel-loader": "^7.1.1",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "latest",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^15.0.2",
"eslint-plugin-class-property": "^1.0.6",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.1.0",
"file-loader": "latest",
"less": "^2.7.2",
"less-loader": "latest",
"style-loader": "latest",
"url-loader": "latest",
"webpack": "^2.7.0"
}
}
22 changes: 0 additions & 22 deletions sample/pdf.worker.js

This file was deleted.

21 changes: 0 additions & 21 deletions sample/sample.js

This file was deleted.

2 changes: 1 addition & 1 deletion src-sample/sample.jsx → sample/sample.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { render } from 'react-dom';
import ReactPDF from '../src/react-pdf';
import ReactPDF from 'react-pdf';

import './sample.less';

Expand Down
File renamed without changes.

0 comments on commit 22afbe8

Please sign in to comment.