appnexus/sicksync

View on GitHub
src/remote/fs-helper.js

Summary

Maintainability
B
4 hrs
Test Coverage
import fs from 'fs-extra';
import { EventEmitter } from 'events';
import untildify from 'untildify';
import { FS } from '../../conf/events';

const fsEvents = FS.REMOTE;

export class FSHelper extends EventEmitter {

  constructor() {
    super();
  }

  addFile(message) {
    fs.outputFile(untildify(message.destinationpath), message.contents, (err) => {
      if (err) return this.emit(fsEvents.ADD_FILE_ERROR, err);

      this.emit(fsEvents.ADD_FILE, message.destinationpath);
    });
  }

  addDir(message) {
    fs.mkdirs(untildify(message.destinationpath), (err) => {
      if (err) return this.emit(fsEvents.ADD_DIR_ERROR, err);

      this.emit(fsEvents.ADD_DIR, message.destinationpath);
    });
  }

  removePath(message) {
    fs.remove(untildify(message.destinationpath), (err) => {
      if (err) return this.emit(fsEvents.DELETE_ERROR, err);

      this.emit(fsEvents.DELETE, message.destinationpath);
    });
  }
}