UNPKG

asch-redeploy

Version:

A hassle-free local asch environment

70 lines (58 loc) 2.1 kB
const path = require('path') const fs = require('fs') const logger = require('../logger') // ctor let CheckFileStructure = function (config) { this.config = config this.printNecessaryDirectories = () => { logger.info('Expected following structure', { meta: 'inverse' }) let message = '' message += '\t contract/' message += '\n\t\t\t\t interface/' message += '\n\t\t\t\t model/' message += '\n\t\t\t\t public/' message += '\n\t\t\t\t init.js' logger.info(message, { meta: 'inverse' }) } this.checkSync = () => { logger.verbose(`NODE_ENV: ${process.env['NODE_ENV']}`) if (process.env['NODE_ENV'] === 'development') { return true } logger.info(`Check folder structure in ${this.config.userDevDir}`, { meta: 'green.inverse' }) let greenUnderline = { meta: 'green.underline' } // contract let contractDir = path.join(this.config.userDevDir, 'contract') if (!fs.existsSync(contractDir)) { this.printNecessaryDirectories() throw new Error('contract directory doesn\'t exist') } logger.info('contract/ ✓', greenUnderline) // interface let interfaceDir = path.join(this.config.userDevDir, 'interface') if (!fs.existsSync(interfaceDir)) { throw new Error('interface directory doesn\'t exist') } logger.info('interface/ ✓', greenUnderline) // model let modelDir = path.join(this.config.userDevDir, 'model') if (!fs.existsSync(modelDir)) { throw new Error('model directory doesn\'t exist') } logger.info('model/ ✓', greenUnderline) // public let publicDir = path.join(this.config.userDevDir, 'public') if (!fs.existsSync(publicDir)) { throw new Error('public directory doesn\'t exist') } logger.info('public/ ✓', greenUnderline) // init.js let initFile = path.join(this.config.userDevDir, 'init.js') if (!fs.existsSync(initFile)) { throw new Error('init.js file doesn\'t exist') } logger.info('init.js file ✓', greenUnderline) return true } } module.exports = CheckFileStructure