Skip to content

Commit

Permalink
chore: configure prettier; format files
Browse files Browse the repository at this point in the history
  • Loading branch information
adekbadek committed Apr 12, 2020
1 parent 1ea9986 commit f747231
Show file tree
Hide file tree
Showing 34 changed files with 2,916 additions and 498 deletions.
3 changes: 3 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
trailingComma: "es5",
};
104 changes: 52 additions & 52 deletions client/scripts/build.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
'use strict';
'use strict'

// Do this as the first thing so that any code reading it knows the right env.
process.env.NODE_ENV = 'production';
process.env.NODE_ENV = 'production'

// Makes the script crash on unhandled rejections instead of silently
// ignoring them. In the future, promise rejections that are not handled will
// terminate the Node.js process with a non-zero exit code.
process.on('unhandledRejection', err => {
throw err;
});
throw err
})

// Ensure environment variables are read.
require('../config/env');
require('../config/env')

const path = require('path');
const chalk = require('chalk');
const fs = require('fs-extra');
const webpack = require('webpack');
const config = require('../config/webpack.config.prod');
const paths = require('../config/paths');
const checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');
const formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');
const printHostingInstructions = require('react-dev-utils/printHostingInstructions');
const FileSizeReporter = require('react-dev-utils/FileSizeReporter');
const path = require('path')
const chalk = require('chalk')
const fs = require('fs-extra')
const webpack = require('webpack')
const config = require('../config/webpack.config.prod')
const paths = require('../config/paths')
const checkRequiredFiles = require('react-dev-utils/checkRequiredFiles')
const formatWebpackMessages = require('react-dev-utils/formatWebpackMessages')
const printHostingInstructions = require('react-dev-utils/printHostingInstructions')
const FileSizeReporter = require('react-dev-utils/FileSizeReporter')

const measureFileSizesBeforeBuild = FileSizeReporter.measureFileSizesBeforeBuild;
const printFileSizesAfterBuild = FileSizeReporter.printFileSizesAfterBuild;
const useYarn = fs.existsSync(paths.yarnLockFile);
const measureFileSizesBeforeBuild = FileSizeReporter.measureFileSizesBeforeBuild
const printFileSizesAfterBuild = FileSizeReporter.printFileSizesAfterBuild
const useYarn = fs.existsSync(paths.yarnLockFile)

// Warn and crash if required files are missing
if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) {
process.exit(1);
process.exit(1)
}

// First, read the current file sizes in build directory.
Expand All @@ -39,89 +39,89 @@ measureFileSizesBeforeBuild(paths.appBuild)
.then(previousFileSizes => {
// Remove all content but keep the directory so that
// if you're in it, you don't end up in Trash
fs.emptyDirSync(paths.appBuild);
fs.emptyDirSync(paths.appBuild)
// Merge with the public folder
copyPublicFolder();
copyPublicFolder()
// Start the webpack build
return build(previousFileSizes);
return build(previousFileSizes)
})
.then(
({ stats, previousFileSizes, warnings }) => {
if (warnings.length) {
console.log(chalk.yellow('Compiled with warnings.\n'));
console.log(warnings.join('\n\n'));
console.log(chalk.yellow('Compiled with warnings.\n'))
console.log(warnings.join('\n\n'))
console.log(
'\nSearch for the ' +
chalk.underline(chalk.yellow('rule keywords')) +
' to learn more about each warning.'
);
)
console.log(
'To ignore, add ' +
chalk.cyan('// eslint-disable-next-line') +
' to the line before.\n'
);
)
} else {
console.log(chalk.green('Compiled successfully.\n'));
console.log(chalk.green('Compiled successfully.\n'))
}

console.log('File sizes after gzip:\n');
printFileSizesAfterBuild(stats, previousFileSizes);
console.log();
console.log('File sizes after gzip:\n')
printFileSizesAfterBuild(stats, previousFileSizes)
console.log()

const appPackage = require(paths.appPackageJson);
const publicUrl = paths.publicUrl;
const publicPath = config.output.publicPath;
const buildFolder = path.relative(process.cwd(), paths.appBuild);
const appPackage = require(paths.appPackageJson)
const publicUrl = paths.publicUrl
const publicPath = config.output.publicPath
const buildFolder = path.relative(process.cwd(), paths.appBuild)
printHostingInstructions(
appPackage,
publicUrl,
publicPath,
buildFolder,
useYarn
);
)
},
err => {
console.log(chalk.red('Failed to compile.\n'));
console.log((err.message || err) + '\n');
process.exit(1);
console.log(chalk.red('Failed to compile.\n'))
console.log((err.message || err) + '\n')
process.exit(1)
}
);
)

// Create the production build and print the deployment instructions.
function build(previousFileSizes) {
console.log('Creating an optimized production build...');
function build (previousFileSizes) {
console.log('Creating an optimized production build...')

let compiler = webpack(config);
let compiler = webpack(config)
return new Promise((resolve, reject) => {
compiler.run((err, stats) => {
if (err) {
return reject(err);
return reject(err)
}
const messages = formatWebpackMessages(stats.toJson({}, true));
const messages = formatWebpackMessages(stats.toJson({}, true))
if (messages.errors.length) {
return reject(new Error(messages.errors.join('\n\n')));
return reject(new Error(messages.errors.join('\n\n')))
}
if (process.env.CI && messages.warnings.length) {
console.log(
chalk.yellow(
'\nTreating warnings as errors because process.env.CI = true.\n' +
'Most CI servers set it automatically.\n'
)
);
return reject(new Error(messages.warnings.join('\n\n')));
)
return reject(new Error(messages.warnings.join('\n\n')))
}
return resolve({
stats,
previousFileSizes,
warnings: messages.warnings,
});
});
});
})
})
})
}

function copyPublicFolder() {
function copyPublicFolder () {
fs.copySync(paths.appPublic, paths.appBuild, {
dereference: true,
filter: file => file !== paths.appHtml,
});
})
}
76 changes: 38 additions & 38 deletions client/scripts/start.js
Original file line number Diff line number Diff line change
@@ -1,85 +1,85 @@
'use strict';
'use strict'

// Makes the script crash on unhandled rejections instead of silently
// ignoring them. In the future, promise rejections that are not handled will
// terminate the Node.js process with a non-zero exit code.
process.on('unhandledRejection', err => {
throw err;
});
throw err
})

process.env.NODE_ENV = 'development';
process.env.NODE_ENV = 'development'

// Ensure environment variables are read.
require('../config/env');
require('../config/env')

const fs = require('fs');
const chalk = require('chalk');
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const clearConsole = require('react-dev-utils/clearConsole');
const checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');
const fs = require('fs')
const chalk = require('chalk')
const webpack = require('webpack')
const WebpackDevServer = require('webpack-dev-server')
const clearConsole = require('react-dev-utils/clearConsole')
const checkRequiredFiles = require('react-dev-utils/checkRequiredFiles')
const {
choosePort,
createCompiler,
prepareProxy,
prepareUrls,
} = require('react-dev-utils/WebpackDevServerUtils');
const openBrowser = require('react-dev-utils/openBrowser');
const paths = require('../config/paths');
const config = require('../config/webpack.config.dev');
const createDevServerConfig = require('../config/webpackDevServer.config');
} = require('react-dev-utils/WebpackDevServerUtils')
const openBrowser = require('react-dev-utils/openBrowser')
const paths = require('../config/paths')
const config = require('../config/webpack.config.dev')
const createDevServerConfig = require('../config/webpackDevServer.config')

const useYarn = fs.existsSync(paths.yarnLockFile);
const isInteractive = process.stdout.isTTY;
const useYarn = fs.existsSync(paths.yarnLockFile)
const isInteractive = process.stdout.isTTY

// Warn and crash if required files are missing
if (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) {
process.exit(1);
process.exit(1)
}

// Tools like Cloud9 rely on this.
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;
const HOST = process.env.HOST || '0.0.0.0';
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000
const HOST = process.env.HOST || '0.0.0.0'

// We attempt to use the default port but if it is busy, we offer the user to
// run on a different port. `detect()` Promise resolves to the next free port.
choosePort(HOST, DEFAULT_PORT)
.then(port => {
if (port == null) {
// We have not found a port.
return;
return
}
const protocol = process.env.HTTPS === 'true' ? 'https' : 'http';
const appName = require(paths.appPackageJson).name;
const urls = prepareUrls(protocol, HOST, port);
const protocol = process.env.HTTPS === 'true' ? 'https' : 'http'
const appName = require(paths.appPackageJson).name
const urls = prepareUrls(protocol, HOST, port)
// Create a webpack compiler that is configured with custom messages.
const compiler = createCompiler(webpack, config, appName, urls, useYarn);
const compiler = createCompiler(webpack, config, appName, urls, useYarn)
// Load proxy config
const proxySetting = require(paths.appPackageJson).proxy;
const proxyConfig = prepareProxy(proxySetting);
const proxySetting = require(paths.appPackageJson).proxy
const proxyConfig = prepareProxy(proxySetting)
// Serve webpack assets generated by the compiler over a web sever.
const serverConfig = createDevServerConfig(
proxyConfig,
urls.lanUrlForConfig
);
const devServer = new WebpackDevServer(compiler, serverConfig);
)
const devServer = new WebpackDevServer(compiler, serverConfig)
// Launch WebpackDevServer.
devServer.listen(port, HOST, err => {
if (err) {
return console.log(err);
return console.log(err)
}
if (isInteractive) {
clearConsole();
clearConsole()
}
console.log(chalk.cyan('Starting the development server...\n'));
console.log(chalk.cyan('Starting the development server...\n'))
if (process.env.OPEN_BROWSER !== 'false') {
openBrowser(urls.localUrlForBrowser);
openBrowser(urls.localUrlForBrowser)
}
});
})
})
.catch(err => {
if (err && err.message) {
console.log(err.message);
console.log(err.message)
}
process.exit(1);
});
process.exit(1)
})
21 changes: 10 additions & 11 deletions client/scripts/test.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
'use strict';
'use strict'

process.env.NODE_ENV = 'test';
process.env.PUBLIC_URL = '';
process.env.NODE_ENV = 'test'
process.env.PUBLIC_URL = ''

// Makes the script crash on unhandled rejections instead of silently
// ignoring them. In the future, promise rejections that are not handled will
// terminate the Node.js process with a non-zero exit code.
process.on('unhandledRejection', err => {
throw err;
});
throw err
})

// Ensure environment variables are read.
require('../config/env');
require('../config/env')

const jest = require('jest');
const argv = process.argv.slice(2);
const jest = require('jest')
const argv = process.argv.slice(2)

// Watch unless on CI or in coverage mode
if (!process.env.CI && argv.indexOf('--coverage') < 0) {
argv.push('--watch');
argv.push('--watch')
}


jest.run(argv);
jest.run(argv)
24 changes: 15 additions & 9 deletions client/src/components/AsyncLoaded.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,34 @@ const Loading = ({ isLoading, pastDelay, error }) => {
}
}

const AsyncLoaded = opts => Loadable({
LoadingComponent: Loading,
...opts
})
const AsyncLoaded = opts =>
Loadable({
LoadingComponent: Loading,
...opts,
})

const LoadableMain = AsyncLoaded({
loader: () => import(/* webpackChunkName: 'Main' */ 'views/Main.jsx')
loader: () => import(/* webpackChunkName: 'Main' */ 'views/Main.jsx'),
})

const LoadableBook = AsyncLoaded({
loader: () => import(/* webpackChunkName: 'Main' */ 'views/Book.jsx')
loader: () => import(/* webpackChunkName: 'Main' */ 'views/Book.jsx'),
})

const LoadableAuth = AsyncLoaded({
loader: () => import(/* webpackChunkName: 'Auth' */ 'views/Auth.jsx')
loader: () => import(/* webpackChunkName: 'Auth' */ 'views/Auth.jsx'),
})

const LoadableUserSettings = AsyncLoaded({
loader: () => import(/* webpackChunkName: 'UserSettings' */ 'views/UserSettings.jsx')
loader: () =>
import(/* webpackChunkName: 'UserSettings' */ 'views/UserSettings.jsx'),
})

export const AsyncMain = () => <LoadableMain />
export const AsyncBook = ({match: {params: {id}}}) => <LoadableBook bookId={id} />
export const AsyncBook = ({
match: {
params: { id },
},
}) => <LoadableBook bookId={id} />
export const AsyncAuth = () => <LoadableAuth />
export const AsyncUserSettings = () => <LoadableUserSettings />
2 changes: 1 addition & 1 deletion client/src/components/BookLink.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import RouteLink from 'components/RouteLink'
import { displayBookTitle } from 'utils/aux'
import { getBookViewUrl } from 'utils/api'

export default ({book, ...props}) => (
export default ({ book, ...props }) => (
<RouteLink url={getBookViewUrl(book.id)} {...props}>
{displayBookTitle(book.title)}
</RouteLink>
Expand Down
Loading

0 comments on commit f747231

Please sign in to comment.