From 4ce59ac062763c2e428afe97aec0617bc7fb6899 Mon Sep 17 00:00:00 2001 From: Johannes Zillmann Date: Mon, 9 Jan 2017 21:24:12 +0100 Subject: [PATCH] Make everything ready for deploy --- .eslintrc | 33 +++++++++++++++++++ package.json | 4 ++- src/javascript/components/LoadingView.jsx | 12 +++---- src/javascript/components/PdfUploadView.jsx | 1 - src/javascript/components/PdfView.jsx | 3 -- .../CombineSameYTransformation.jsx | 7 ++-- .../transformations/NoOpTransformation.jsx | 1 + .../RoundCoordinatesTransformation.jsx | 1 + .../models/transformations/Transformation.jsx | 4 +-- src/store.js | 4 +-- webpack.config.js | 6 ++++ 11 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 .eslintrc diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..c62b9e8 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,33 @@ +{ + // Extend existing configuration + // from ESlint and eslint-plugin-react defaults. + "extends": [ + "eslint:recommended", "plugin:react/recommended" + ], + "parser": "babel-eslint", + // Enable ES6 support. If you want to use custom Babel + // features, you will need to enable a custom parser + // as described in a section below. + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "jsx": true + } + }, + "env": { + "browser": true, + "node": true, + "es6": true + }, + // Enable custom plugin known as eslint-plugin-react + "plugins": [ + "react" + ], + "rules": { + // Disable `no-console` rule + "no-console": 1, + // Give a warning if identifiers contain underscores + "no-underscore-dangle": 1 + } +} \ No newline at end of file diff --git a/package.json b/package.json index 61153f8..259b9c0 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "scripts": { "watch": "webpack -d --watch", "build": "webpack", - "lint": "eslint . --ext .js --ext .jsx --cache" + "lint": "eslint src --ext .js --ext .jsx --cache", + "release": "npm run lint && rm -rf build/* && NODE_ENV=production webpack -p", + "deploy": "npm run release && cp -r build/* docs/" }, "keywords": [ "PDF", diff --git a/src/javascript/components/LoadingView.jsx b/src/javascript/components/LoadingView.jsx index 3798527..cefc99c 100644 --- a/src/javascript/components/LoadingView.jsx +++ b/src/javascript/components/LoadingView.jsx @@ -1,6 +1,6 @@ import React from 'react'; -import pdfjs from 'pdfjs-dist'; +import pdfjs from 'pdfjs-dist'; // eslint-disable-line no-unused-vars import { Line } from 'rc-progress'; import PdfPage from '../models/PdfPage.jsx'; @@ -29,7 +29,7 @@ export default class LoadingView extends React.Component { anouncePageParsed(index, textItems) { //TODO might make problems.. concat unordered and order at the end ? - this.state.pdfPages[index].textItems = textItems; + this.state.pdfPages[index].textItems = textItems; // eslint-disable-line react/no-direct-mutation-state this.setState({ parsedPages: this.state.parsedPages + 1 }); @@ -39,8 +39,8 @@ export default class LoadingView extends React.Component { componentWillMount() { const anounceInitialParseFunction = this.anounceInitialParse.bind(this); const anouncePageParsedFunction = this.anouncePageParsed.bind(this); - PDFJS.getDocument(this.props.fileBuffer).then(function(pdfDocument) { - console.log('Number of pages: ' + pdfDocument.numPages); + PDFJS.getDocument(this.props.fileBuffer).then(function(pdfDocument) { // eslint-disable-line no-undef + // console.log('Number of pages: ' + pdfDocument.numPages); // console.debug(pdfDocument); const numPages = pdfDocument.numPages; // const numPages = 4; // hack @@ -51,8 +51,8 @@ export default class LoadingView extends React.Component { })); } anounceInitialParseFunction(pdfPages); - for (var i = 1; i <= numPages; i++) { - pdfDocument.getPage(i).then(function(page) { + for (var j = 1; j <= numPages; j++) { + pdfDocument.getPage(j).then(function(page) { page.getTextContent().then(function(textContent) { // console.debug(textContent); const textItems = textContent.items.map(function(item) { diff --git a/src/javascript/components/PdfUploadView.jsx b/src/javascript/components/PdfUploadView.jsx index 451272e..af1d317 100644 --- a/src/javascript/components/PdfUploadView.jsx +++ b/src/javascript/components/PdfUploadView.jsx @@ -17,7 +17,6 @@ export default class PdfUploadView extends React.Component { } onDrop(files) { - console.debug(files.length); if (files.length > 1) { alert(`Maximum one file allowed to upload, but not ${files.length}!`) return diff --git a/src/javascript/components/PdfView.jsx b/src/javascript/components/PdfView.jsx index d88e31e..291ba6e 100644 --- a/src/javascript/components/PdfView.jsx +++ b/src/javascript/components/PdfView.jsx @@ -1,6 +1,5 @@ import React from 'react'; -import Badge from 'react-bootstrap/lib/Badge' import ButtonToolbar from 'react-bootstrap/lib/ButtonToolbar' import ButtonGroup from 'react-bootstrap/lib/ButtonGroup' import Button from 'react-bootstrap/lib/Button' @@ -54,8 +53,6 @@ export default class PdfView extends React.Component { const {currentTransformation, pageNr} = this.state; const {pdfPages, transformations} = this.props; - const header = "Parsed " + pdfPages.length + " pages!" - const currentTransformationName = transformations[currentTransformation].name; const transformedPdfPages = pdfPages.filter((elem, i) => pageNr == -1 || i == pageNr).map(pdfPage => { diff --git a/src/javascript/models/transformations/CombineSameYTransformation.jsx b/src/javascript/models/transformations/CombineSameYTransformation.jsx index aef96a2..d33c433 100644 --- a/src/javascript/models/transformations/CombineSameYTransformation.jsx +++ b/src/javascript/models/transformations/CombineSameYTransformation.jsx @@ -1,5 +1,6 @@ import Transformation from './Transformation.jsx'; import TextItem from '../TextItem.jsx'; +import PdfPage from '../PdfPage.jsx'; export default class CombineSameYTransformation extends Transformation { @@ -18,9 +19,9 @@ export default class CombineSameYTransformation extends Transformation { if (textItem.y == lastTextItem.y) { //combine - console.debug("last=" + lastTextItem.text + ", x=" + lastTextItem.x + ", width=" + lastTextItem.width); - console.debug("new=" + textItem.text + ", x=" + textItem.x + ", width=" + textItem.width); - console.debug("diff=" + (textItem.x - lastTextItem.x - lastTextItem.width)); + // console.debug("last=" + lastTextItem.text + ", x=" + lastTextItem.x + ", width=" + lastTextItem.width); + // console.debug("new=" + textItem.text + ", x=" + textItem.x + ", width=" + textItem.width); + // console.debug("diff=" + (textItem.x - lastTextItem.x - lastTextItem.width)); var combinedText = lastTextItem.text; //TODO make 5 dependent on text size or biggest gap? diff --git a/src/javascript/models/transformations/NoOpTransformation.jsx b/src/javascript/models/transformations/NoOpTransformation.jsx index a327986..c2b0dc9 100644 --- a/src/javascript/models/transformations/NoOpTransformation.jsx +++ b/src/javascript/models/transformations/NoOpTransformation.jsx @@ -1,4 +1,5 @@ import Transformation from './Transformation.jsx'; +import PdfPage from '../PdfPage.jsx'; export default class NoOpTransformation extends Transformation { diff --git a/src/javascript/models/transformations/RoundCoordinatesTransformation.jsx b/src/javascript/models/transformations/RoundCoordinatesTransformation.jsx index 3ee4a7f..3085818 100644 --- a/src/javascript/models/transformations/RoundCoordinatesTransformation.jsx +++ b/src/javascript/models/transformations/RoundCoordinatesTransformation.jsx @@ -1,4 +1,5 @@ import Transformation from './Transformation.jsx'; +import PdfPage from '../PdfPage.jsx'; export default class RoundCoordinatesTransformation extends Transformation { diff --git a/src/javascript/models/transformations/Transformation.jsx b/src/javascript/models/transformations/Transformation.jsx index 3287cbb..afeab11 100644 --- a/src/javascript/models/transformations/Transformation.jsx +++ b/src/javascript/models/transformations/Transformation.jsx @@ -1,4 +1,4 @@ -import AppState from '../PdfPage.jsx'; +import PdfPage from '../PdfPage.jsx'; // A transformation from an PdfPage to an PdfPage export default class Transformation { @@ -13,7 +13,7 @@ export default class Transformation { this.name = name; } - transform(pdfPage:PdfPage) { + transform(pdfPage:PdfPage) { // eslint-disable-line no-unused-vars throw new TypeError("Do not call abstract method foo from child."); } } \ No newline at end of file diff --git a/src/store.js b/src/store.js index fc16f8c..461cea6 100644 --- a/src/store.js +++ b/src/store.js @@ -30,7 +30,7 @@ export default { var lineY; // console.debug("Page " + rawPage.index + "-------"); rawPage.textItems.forEach(textItem => { - console.debug(textItem); + // console.debug(textItem); const yRounded = Math.round(textItem.y); if (!line) { // console.debug("First line: " + textItem.text); @@ -57,7 +57,7 @@ export default { }, upload: function(pages) { - console.debug("Store: upload"); + // console.debug("Store: upload"); this.state.uploaded = true; this.state.pages = pages; }, diff --git a/webpack.config.js b/webpack.config.js index 3f19b74..2f89db1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -76,6 +76,12 @@ module.exports = { new HtmlWebpackPlugin({ template: SOURCE_DIR + '/index.html' }), + new webpack.DefinePlugin({ + 'process.env': { + 'version': JSON.stringify(process.env.npm_package_version), + NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development') + } + }), new CopyWebpackPlugin([ { from: NODEMODULES_DIR + '/pdfjs-dist/build/pdf.worker.js',