dsl-toolkit/dsl-toolkit

View on GitHub
packages/generic-text-linker/src/linker-dir.js

Summary

Maintainability
A
0 mins
Test Coverage
A
96%
const linkerFile = require('./linker-file')
const fileProvider = require('./file-provider')
const isString = require('is-string')

module.exports = exports = function (dir, beginning, closing, newValue = null) {
  let files = null
  if (isString(dir)) {
    files = fileProvider(dir)
  }
  try {
    let returnValue = {}
    /* istanbul ignore else */
    if (newValue) {
      files.forEach(function (file) {
        const result = linkerFile(file, beginning, closing, newValue)
        // let {returnData} = result
        const { changed } = result.meta
        /* istanbul ignore else */
        if (changed.all) {
          returnValue[file] = changed
        }
      })

      return returnValue
    }

    /* istanbul ignore else */
    if (!newValue) {
      let firstFound = false
      returnValue = ''
      files.forEach(function (file) {
        /* istanbul ignore else */
        if (!firstFound) {
          const result = linkerFile(file, beginning, closing)
          /* istanbul ignore else */
          if (module.clearWhitespace(result.returnData)) {
            returnValue = result.returnData
            firstFound = true
          }
        }
      })

      return returnValue
    }
  } catch (e) {
    return ''
  }
}

module.clearWhitespace = require('./clear-whitespace')