Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

file-it

Package Overview
Dependencies
Maintainers
6
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

file-it

Easily read/write/update JSON files

  • 1.1.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
664
increased by970.97%
Maintainers
6
Weekly downloads
 
Created
Source

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")

Keywords

FAQs

Package last updated on 14 Oct 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc