file-it
v1.1.5
Published
Easily read/write/update JSON files
Downloads
121
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-it
Import 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])
filename
the full file pathkey
the name of the element in the json filevalue
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 pathkey
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 paththrows
IfJSON.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 paththrows
IfJSON.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 paththrows
IfJSON.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 pathcontent
: The string object to writethrows
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 pathobj
: The json object to append to the fileoptions
: Pass in anyfs.appendFileSync
options or setreplacer
for a JSON replacer. Can also pass inspaces
and overrideEOL
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 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.writeFile
options or setreplacer
for a JSON replacer. Can also pass inspaces
and overrideEOL
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 pathobj
: The json object to writeoptions
: Pass in anyfs.writeFileSync
options or setreplacer
for a JSON replacer. Can also pass inspaces
and overrideEOL
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 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")