UNPKG

@google/dscc-gen

Version:

Create component & connector projects with sane defaults.

69 lines (60 loc) 2.06 kB
// imports const path = require('path'); const webpack = require('webpack'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const Promise = require('bluebird'); const fs = Promise.promisifyAll(require('fs')); // constants const DEV_BUCKET = process.env.npm_package_config_gcsDevBucket; const CSS_FILE = process.env.npm_package_config_cssFile; const JSON_FILE = process.env.npm_package_config_jsonFile; const MANIFEST_FILE = 'manifest.json'; const buildOptions = (TRANSFORM) => { return { mode: 'development', entry: { // this is the viz source code main: path.resolve(__dirname, '../viz', 'printMessage.js'), }, output: { filename: 'index.js', path: path.resolve(__dirname, '../../', 'build'), }, plugins: [ new CopyWebpackPlugin([ {from: path.resolve(__dirname, '../../', 'src', JSON_FILE), to: '.'}, {from: path.resolve(__dirname, '../../', 'src', CSS_FILE), to: '.'}, ]), new webpack.DefinePlugin({ TRANSFORM_PARAM: JSON.stringify(TRANSFORM), }), ], }; }; const buildMessage = async (TRANSFORM) => { const DEVMODE = true; const encoding = 'utf-8'; const webpackOptions = buildOptions(TRANSFORM); const compiler = webpack(webpackOptions); const compilerRun = Promise.promisify(compiler.run, {context: compiler}); var stats = await compilerRun.call(); // put everything together except the manifest // once build directory is created... try { const manifestSrc = path.resolve(__dirname, '../../', 'src', MANIFEST_FILE); const manifestDest = path.resolve( __dirname, '../../', 'build', MANIFEST_FILE ); var manifestContents = await fs.readFileAsync(manifestSrc, encoding); const newManifest = manifestContents .replace(/YOUR_GCS_BUCKET/g, DEV_BUCKET) .replace(/"DEVMODE_BOOL"/, DEVMODE); return fs.writeFileAsync(manifestDest, newManifest); } catch (err) { console.log('Unable to write manifest: ', err); } }; module.exports.buildMessage = buildMessage;