All files / lib TIMPLA_CONFIG.ts

100% Statements 12/12
100% Branches 0/0
100% Functions 1/1
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 324x 4x 4x       4x 4x     4x     4x       1x   1x   2x     4x           4x  
import * as fs from 'fs'
import * as path from 'path'
import { IFullTimplaConfig, projectPath, sureLazyImport, TIMPLA_PROCESS } from '../internal'
 
let configPath: string
 
const defaultConfig = path.resolve(TIMPLA_PROCESS.TIMPLA_DIR, '.timplaconfig.js')
const userConfig = projectPath('.timplaconfig.js')
 
/** Resolves the timpla config. */
export const resolveConfig = () => {
  // memoize to only call it once!
  if (configPath) {
    return configPath
  }
 
  if (TIMPLA_PROCESS.TIMPLA_CONFIG_FILE) {
    configPath = projectPath(TIMPLA_PROCESS.TIMPLA_CONFIG_FILE)
  } else if (fs.existsSync(userConfig)) {
    configPath = userConfig
  } else {
    configPath = defaultConfig
  }
 
  return configPath
}
 
/**
 * The timpla config.
 */
export const TIMPLA_CONFIG: IFullTimplaConfig = sureLazyImport(resolveConfig())