Socket
Book a DemoInstallSign in
Socket

json-fusion

Package Overview
Dependencies
Maintainers
3
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-fusion

Json-Fusion is a Node.js library designed to streamline the process of loading, merging, and reflecting directory hierarchies in JSON files. With Json-Fusion, you can consolidate information scattered across different JSON files, and reflect your filesyst

latest
Source
npmnpm
Version
0.2.3
Version published
Weekly downloads
424
-31.06%
Maintainers
3
Weekly downloads
 
Created
Source

json-fusion

npm npm package minimized gzipped size (select exports) GitHub Release Test

json-fusion is a Node.js library designed to streamline the process of loading, merging, and reflecting directory hierarchies in JSON files. With json-fusion, you can consolidate information scattered across different JSON files, and reflect your filesystem's structure directly in your data, all with just a few lines of code.

Moreover, json-fusion provides a special handling for index.json files. The contents of index.json files are expanded directly into the parent directory's key, rather than creating a separate index key. This allows more intuitive organization of your JSON files.

Features

  • Load all JSON files from a specified directory
  • Merge multiple JSON objects into one
  • Incorporate the directory hierarchy as keys in the resulting JSON object
  • Special handling for index.json files, which are expanded directly under the parent directory's key

Installation

npm install json-fusion

Usage

Here's a basic example of how to use json-fusion:

CommonJS

const jsonFusion = require('json-fusion');

const path = './path/to/your/json/files';
const result = await jsonFusion(path);

console.log(result);

ESModule

import jsonFusion from 'json-fusion';

const path = './path/to/your/json/files';
const result = await jsonFusion(path);

console.log(result);

Structure

Consider the following directory structure:

/path/to/your/json/files
├── config.json
├── users
│   ├── index.json
│   ├── john.json
│   └── jane.json
└── data
    ├── items.json
    └── purchases.json

Running jsonFusion('./path/to/your/json/files') would result in an object similar to:

{
  "config": {/** ./config.json */},
  "users": {
    /** index.json */
    "john": {/** ./users/john.json */},
    "jane": {/** ./users/jane.json */}
  },
  "data": {
    "items": {/** ./data/items.json */},
    "purchases": {/** ./data.purchases.json */}
  }
}

where {/** */} represents the contents of the corresponding JSON file.

API

jsonFusion(path, options)

  • path - The path to the directory containing your JSON files.
  • options - An optional object containing the following options:
    • exportType - The type of export to use. Defaults to json. Can be one of the following:
      • json - Exports the resulting object as a JSON string.
      • yaml - Exports the resulting object as a YAML string. required yaml package
      • object - Exports the resulting object as a JavaScript object.
    • ignore - An array of file names to ignore. Defaults to ['index.json'].
    • cwd - The current working directory to use. Defaults to process.cwd().
    • export - If you want to export the result to a file, you can set the path to the file to be exported.
    • extensions - An array of file extensions to include. Defaults to ['json'].
      • json - JSON files
      • yaml - YAML files. required yaml package
    • noSpreadIndex - If you want to disable the special handling for index.json files, set this to true. Defaults to false.

Contributing

see CONTRIBUTING.md

License

MIT

Keywords

json

FAQs

Package last updated on 01 Oct 2023

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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.