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

    Install

    npm i file-it

    DownloadsWeekly Downloads

    58

    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