file-it
v1.1.5
Published
Easily read/write/update JSON files
Downloads
48
Readme
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-itImport or Require
import fileIt from "file-it";
OR
const fileIt = require("file-it");API
setJsonValue(filename, key, value, [options])- create or update a top level json value
getJsonValue(filename, key)- fetch a top level json value
readJsonArraySync(filename)- returns a json array object from a stringified json array file
readJsonLinesSync(filename)- returns a json array object from a file containing stringified objects appended in a file
readContentFile(filename)- returns the string content of a file asynchronously
readContentFileSync(filename)- returns the string content of a file synchronously
readJsonFile(filename, callback)- returns a json object from a file asynchronously
readJsonFileSync(filename)- returns a json object from a file synchronously
appendJsonFileSync(filename, obj, [options])- append a json object to a file synchronously
writeContentFile(filename, content, callback)- write string content to a file asynchronously
writeContentFileSync(filename, content)- write string content to a file synchronously
writeJsonFile(filename, obj, [options], callback)- write a json object to a file asynchronously
writeJsonFileSync(filename, obj, [options])- write a json object to a file synchronously
findSortedJsonElement(filename, attribute, direction)- returns the top element sorted by the specified object attribute based on sort direction. "desc" is used by default
setJsonValue(filename, key, value, [options])
filenamethe full file pathkeythe name of the element in the json filevaluethe 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)
filenamethe full file pathkeythe 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)
filenamethe full file paththrowsIfJSON.parsethrows 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)
filenamethe full file paththrowsIfJSON.parsethrows 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)
filenamethe 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)
filenamethe full file path
const fileIt = require('file-it')
const file = '/tmp/data.json'
console.log(fileIt.readContentFileSync(file))readJsonFile(filename)
filenamethe full file paththrowsIfJSON.parsethrows 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 pathcontent: The string object to writethrowsIf 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 pathobj: The json object to append to the fileoptions: Pass in anyfs.appendFileSyncoptions or setreplacerfor a JSON replacer. Can also pass inspacesand overrideEOLstring.
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 pathcontent: 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 pathobj: The json object to writeoptions: Pass in anyfs.writeFileoptions or setreplacerfor a JSON replacer. Can also pass inspacesand overrideEOLstring.
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 pathobj: The json object to writeoptions: Pass in anyfs.writeFileSyncoptions or setreplacerfor a JSON replacer. Can also pass inspacesand overrideEOLstring.
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 pathattribute: the name of the attribute within a json elementdirection: 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")