Sign In

@cloudelements/jmespath

Package Overview
Dependencies
Maintainers
39
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cloudelements/jmespath

JMESPath implementation in JavaScript

latest
Source
npmnpm
Version
0.23.0
Version published
Weekly downloads
687
26.06%
Maintainers
39
Weekly downloads
 
Created
Source

jmespath.js

A JavaScript implementation of JMESPath, which is a query language for JSON. It will take a JSON document and transform it into another JSON document through a JMESPath expression. This fork was originally based from the daz-is/jmespath.js fork, which is highly recommended to leverage instead of this project. This fork exists for strict compliance, security, and organizational feature deviation purposes alone.

const jmespath = require('jmespath');

jmespath.search({foo: {bar: {baz: [1, 2, 3]}}}, 'foo.bar.baz[2]')

3

Installation

$ npm install --save @cloudelements/jmespath

Adding custom functions

Custom functions can be added to the JMESPath runtime by using the decorate function:

function customFunc(resolvedArgs) {
  return resolvedArgs[0] + 99;
}

const extraFunctions = {
  custom: {_func: customFunc, _signature: [{types: [jmespath.types.TYPE_NUMBER]}]},
};

jmespath.decorate(extraFunctions);

The value returned by the decorate function is a curried function (takes arguments one at a time) that takes the search expression first and then the data to search against as the second parameter:

jmespath.decorate(extraFunctions)('custom(`1`)')({})

100

Because the return value from decorate is a curried function the result of compiling the expression can be cached and run multiple times against different data:

const expr = jmespath.decorate({})('a');
let value;

value = expr({a: 1});
assert.strictEqual(value, 1);

value = expr({a: 2});
assert.strictEqual(value, 2);

Keywords

jmespath

FAQs

Package last updated on 03 Aug 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