file-it v1.1.5
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")4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago