doug2k1/nanogen

View on GitHub
lib/modules/serve.js

Summary

Maintainability
A
0 mins
Test Coverage
const chokidar = require('chokidar');
const debounce = require('lodash.debounce');
const server = require('../utils/server');
const log = require('../utils/logger');
const build = require('./build');
const { parseOptions } = require('../utils/parser');

/**
 * Serve the site in watch mode
 */
const serve = (options, flags) => {
  log.info(`Starting local server at http://localhost:${flags.port}`);

  const { srcPath, outputPath } = parseOptions(options);

  build(options);
  server.serve({ path: outputPath, port: flags.port });

  chokidar.watch(srcPath, { ignoreInitial: true }).on(
    'all',
    debounce(() => {
      build(options);
      log.info('Waiting for changes...');
    }, 500)
  );
};

module.exports = serve;