file-it
TypeScript icon, indicating that this package has built-in type declarations

1.1.5 • Public • Published

file-it

Helps minimize the amount of fs read and write logic, try/catch logic, writes clean UTF8 json content, and cleans up byte order mark and newline characters to cleanly read and parse json content.

Installation

npm install --save file-it
OR
yarn add file-it

Import or Require

import fileIt from "file-it";
OR
const fileIt = require("file-it");

API


setJsonValue(filename, key, value, [options])

  • filename the full file path
  • key the name of the element in the json file
  • value the value you want to set
const fileIt = require('file-it')
const file = '/tmp/data.json'
fileIt.setJsonValue(file, "hello", "universe", {spaces: 2});

getJsonValue(filename, key)

  • filename the full file path
  • key the name of the element in the json file
const fileIt = require('file-it')
const file = '/tmp/data.json'
await fileIt.setJsonValue(file, "hello", "universe", {spaces: 2});
const val = await fileIt.getJsonValue(file, "hello");
console.log("val: ", val); // prints out "universe"

readJsonArraySync(filename)

  • filename the full file path
    • throws If JSON.parse throws an error, pass this error to the callback
const fileIt = require('file-it')
const file = '/tmp/jsonArrayFile.json'
fileIt.readJsonArraySync(file, function (err, data) {
  if (err) console.error(err)
  else console.log(data)
})

readJsonLinesSync(filename)

  • filename the full file path
    • throws If JSON.parse throws an error, pass this error to the callback
const fileIt = require('file-it')
const file = '/tmp/linesOfJsonData.json'
fileIt.readJsonLinesSync(file, function (err, data) {
  if (err) console.error(err)
  else console.log(data)
})

readContentFile(filename)

  • filename the full file path
const fileIt = require('file-it')
const file = '/tmp/data.json'
fileIt.readContentFile(file, function (err, data) {
  if (err) console.error(err)
  else console.log(data)
})

readContentFileSync(filename)

  • filename the full file path
const fileIt = require('file-it')
const file = '/tmp/data.json'
console.log(fileIt.readContentFileSync(file))

readJsonFile(filename)

  • filename the full file path
    • throws If JSON.parse throws an error, pass this error to the callback
const fileIt = require('file-it')
const file = '/tmp/data.json'
fileIt.readJsonFile(file, function (err, data) {
  if (err) console.error(err)
  else console.log(data)
})

You can also use this method with promises. The readJsonFile method will return a promise if you do not pass a callback function.

const fileIt = require('file-it')
const file = '/tmp/data.json'
fileIt.readJsonFile(file)
  .then(data => console.log(data))
  .catch(error => console.error(error))

readJsonFileSync(filename)

  • filename: the full file path
  • content: The string object to write
    • throws If an error is encountered reading or parsing the file, throw the error
const fileIt = require('file-it')
const file = '/tmp/data.json'

console.log(fileIt.readJsonFileSync(file))

appendJsonFileSync(filename, obj, [options])

  • filename: the full file path
  • obj: The json object to append to the file
  • options: Pass in any fs.appendFileSync options or set replacer for a JSON replacer. Can also pass in spaces and override EOL string.
const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.appendJsonFileSync(filename, content, function (err) {
  if (err) console.error(err)
})


writeContentFile(filename, content, callback)

  • filename: the full file path
  • content: The string object to write
const fileIt = require('file-it')

const file = '/tmp/data.txt'
const content = "hello world"

fileIt.writeContentFile(filename, content, function (err) {
  if (err) console.error(err)
})

writeContentFileSync(filename, content)

const fileIt = require('file-it')

const file = '/tmp/data.txt'
const content = "hello world"

fileIt.writeContentFile(filename, content)

writeJsonFile(filename, obj, [options], callback)

  • filename: the full file path
  • obj: The json object to write
  • options: Pass in any fs.writeFile options or set replacer for a JSON replacer. Can also pass in spaces and override EOL string.
const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFile(file, obj, function (err) {
  if (err) console.error(err)
})

Or use with promises as follows:

const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFile(file, obj)
  .then(res => {
    console.log('Write complete')
  })
  .catch(error => console.error(error))

formatting with spaces:

const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFile(file, obj, { spaces: 2 }, function (err) {
  if (err) console.error(err)
})

overriding EOL:

const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFile(file, obj, { spaces: 2, EOL: '\r\n' }, function (err) {
  if (err) console.error(err)
})

appending to an existing JSON file:

You can use fs.writeFile option { flag: 'a' } to achieve this.

const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFile(file, obj, { flag: 'a' }, function (err) {
  if (err) console.error(err)
})

writeJsonFileSync(filename, obj, [options])

  • filename: the full file path
  • obj: The json object to write
  • options: Pass in any fs.writeFileSync options or set replacer for a JSON replacer. Can also pass in spaces and override EOL string.
const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFileSync(file, obj)

formatting with spaces:

const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFileSync(file, obj, { spaces: 2 })

overriding EOL:

const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFileSync(file, obj, { spaces: 2, EOL: '\r\n' })

appending to an existing JSON file:

You can use fs.writeFileSync option { flag: 'a' } to achieve this.

const fileIt = require('file-it')

const file = '/tmp/data.json'
const obj = { hello: 'World' }

fileIt.writeJsonFileSync(file, obj, { flag: 'a' })

findSortedJsonElement(filename, attribute, direction?)

  • filename: the full file path
  • attribute: the name of the attribute within a json element
  • direction: the sort direction ["asc" | "desc"] - default is desc
const fileIt = require('file-it')

const file = '/tmp/data.json'

const topElement = fileIt.findSortedJsonElement(file, "count")
const fileIt = require('file-it')

const file = '/tmp/data.json'

const bottomElement = fileIt.findSortedJsonElement(file, "count", "asc")

Readme

Keywords

Package Sidebar

Install

npm i file-it

Weekly Downloads

7

Version

1.1.5

License

SEE LICENSE IN LICENSE

Unpacked Size

55 kB

Total Files

18

Last publish

Collaborators

  • software_ryan
  • daniel.alfaro
  • bo_j
  • brettmstevens7
  • xavierluiz
  • thegeoffstevens
  • masonmc