New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

jsonsmith

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jsonsmith

resolves a series of inputs to a single json value.

  • 0.1.17
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
326
increased by82.12%
Maintainers
1
Weekly downloads
 
Created
Source

jsonsmith

resolves a series of inputs to a single json value.

Usage:

cobble(options)

options has the following properties:

  • inputs (required): a list of inputs where each element can be one of the following:

    • a string representing a file path -- jsonsmith will try to figure out the format if not provided explicitly
    • an object with properties path and format, where format can be one of json, yaml, and properties
    • an object with property raw that maps to a value in json, yaml, or .properties format
  • varsObj: an optional object that will be used as the context for interpolation will be done and passed in as the last input

  • debug: (line: string) => void: optional

Interpolation

  • a value with syntax %{VARIABLE_NAME}% will be evaluated in the context of varsObj

File paths

  • $read_text(path: string) will be interpreted as a file containing text.
  • $read_json(path: string) will be interpreted as a file containing json.
  • $read_yaml(path<string>) will be interpreted as a file containing yaml.

Examples

With file paths
import { cobble } from 'jsonsmith'

cobble({
  inputs: [
     'someDir/yaml1.yaml',
     'someDir/yaml2.yaml'
    ]
 });

This will do a deep extends with target being the first argument provided, and subsequent arguments as sources.

With raw inputs
import { cobble } from 'jsonsmith'

cobble({
  inputs: [
    {
      "raw": {
        "version": "0.5",
        "appName": "app"
      }
    },
    {
     "raw": "version=1.0"
    }
  ]
})

The above would result in the following object

{
  "appName": "app",
  "version": "1.0"
}
With interpolation
import { cobble } from 'jsonsmith'

cobble({
  inputs: [
    {
     "raw": "template=$read_json('templates/template.json')"
    },
    {
     "raw": "version=%{APP_VERSION}%"
    }
  ],
  varsObj: { APP_VERSION: "1.7" }
})

where templates/template.json looks like

{
  "name": "Scott Storch",
  "subject": "Mellow my man"
}

would result in the following object

{
  "template": {
    "name": "Scott Storch",
    "subject": "Mellow my man"
  },
  "version": "1.7"
}

FAQs

Package last updated on 05 Sep 2019

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