mbland/pages-server

View on GitHub
lib/component-factory.js

Summary

Maintainability
A
35 mins
Test Coverage
'use strict'

var CommandRunner = require('./command-runner')
var RepositoryFileHandler = require('./repository-file-handler')
var ConfigHandler = require('./config-handler')
var GitRunner = require('./git-runner')
var JekyllCommandHelper = require('./jekyll-command-helper')
var Sync = require('./sync')
var FileLockedOperation = require('file-locked-operation')
var path = require('path')

module.exports = ComponentFactory

function ComponentFactory(config, builderOpts, branch, s3client, logger) {
  this.commandRunner = new CommandRunner(
    builderOpts.sitePath, builderOpts.repoName, logger)
  this.configHandler = new ConfigHandler(
    builderOpts, branch,
    new RepositoryFileHandler(builderOpts.sitePath), logger)
  this.jekyllHelper = new JekyllCommandHelper(config, this.commandRunner)
  this.gitRunner = new GitRunner(
    config, builderOpts, this.commandRunner, logger)
  this.sync = new Sync(config, s3client, logger)
  this.updateLock = new FileLockedOperation(
    path.join(builderOpts.destDir, '.update-lock-' + builderOpts.repoName),
    { wait: config.fileLockWaitTime, poll: config.fileLockPollTime })
}