carloscuesta/gitmoji-cli

View on GitHub
src/utils/emojisCache.js

Summary

Maintainability
A
0 mins
Test Coverage
// @flow
import fs from 'fs'
import os from 'os'
import path from 'path'
import { pathExistsSync } from 'path-exists'

export const GITMOJI_CACHE: Object = {
  FOLDER: '.gitmoji',
  FILE: 'gitmojis.json'
}

export const CACHE_PATH: string = path.join(
  os.homedir(),
  GITMOJI_CACHE.FOLDER,
  GITMOJI_CACHE.FILE
)

const createEmojis = (emojis: Array<Object>): void => {
  if (!pathExistsSync(path.dirname(CACHE_PATH))) {
    fs.mkdirSync(path.dirname(CACHE_PATH))
  }

  fs.writeFileSync(CACHE_PATH, JSON.stringify(emojis))
}

const getEmojis = (): Array<Object> => {
  try {
    return JSON.parse(fs.readFileSync(CACHE_PATH).toString())
  } catch (error) {
    return []
  }
}

const isAvailable = (): boolean => pathExistsSync(CACHE_PATH)

export default {
  createEmojis,
  getEmojis,
  isAvailable
}