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

cool-path

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cool-path - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

3

lib/index.d.ts

@@ -37,2 +37,3 @@ import { Segments, Node } from './types';

static transform<T>(pattern: Pattern, regexp: string | RegExp, callback: (...args: string[]) => T): T;
static parse(path?: Pattern): any;
static getPath(path?: Pattern): any;

@@ -43,2 +44,2 @@ static getIn: (source: any, pattern: Pattern) => any;

}
export {};
export default Path;

@@ -463,2 +463,6 @@ "use strict";

};
Path.parse = function (path) {
if (path === void 0) { path = ''; }
return Path.getPath(path);
};
Path.getPath = function (path) {

@@ -504,1 +508,2 @@ if (path === void 0) { path = ''; }

exports.Path = Path;
exports.default = Path;
{
"name": "cool-path",
"version": "0.1.1",
"version": "0.1.2",
"description": "Path Matcher/Getter/Setter for Object/Array",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -67,3 +67,3 @@ # CoolPath

- `getPath(pattern: Pattern)`
- `parse(pattern: Pattern)`

@@ -80,3 +80,67 @@ - `getIn(source: any, pattern: Pattern)`

- Object Pattern
```javascript
Path.setIn({},'a.b.c.{aaa,bbb}',{aaa:123,bbb:321})
==>
{a:{b:{c:{aaa:123,bbb:321}}}}
Path.getIn({a:{b:{c:{aaa:123,bbb:321}}}},'a.b.c.{aaa,bbb}')
==>
{aaa:123,bbb:321}
Path.setIn({a:{b:{c:{kkk:'ddd'}}}},'a.b.c.{aaa,bbb}',{aaa:123,bbb:321})
==>
{a:{b:{c:{aaa:123,bbb:321,kkk:'ddd'}}}}
Path.getIn({a:{b:{c:{aaa:123,bbb:321,kkk:'ddd'}}}},'a.b.c.{aaa,bbb}')
==>
{aaa:123,bbb:321}
Path.setIn({a:{b:{c:{kkk:'ddd'}}}},'a.b.c.{aaa:ooo,bbb}',{aaa:123,bbb:321})
==>
{a:{b:{c:{ooo:123,bbb:321,kkk:'ddd'}}}}
Path.getIn({a:{b:{c:{ooo:123,bbb:321,kkk:'ddd'}}}},'a.b.c.{aaa:ooo,bbb}')
==>
{aaa:123,bbb:321}
```
- Array Pattern
```javascript
Path.setIn({},'a.b.c.[aaa,bbb]',[123,321])
==>
{a:{b:{c:{aaa:123,bbb:321}}}}
Path.getIn({a:{b:{c:{aaa:123,bbb:321}}}},'a.b.c.[aaa,bbb]')
==>
[123,321]
Path.setIn({a:{b:{c:{kkk:'ddd'}}}},'a.b.c.[aaa,bbb]',[123,321])
==>
{a:{b:{c:{aaa:123,bbb:321,kkk:'ddd'}}}}
Path.getIn({a:{b:{c:{aaa:123,bbb:321,kkk:'ddd'}}}},'a.b.c.[aaa,bbb]')
==>
[123,321]
```
- Nested Array and Object Pattern
```javascript
Path.setIn({},'a.b.c.[{ddd,kkk:mmm},bbb]',[{ddd:123,kkk:'hhhh'},321])
==>
{a:{b:{c:{ddd:123,bbb:321,mmm:'hhh'}}}}
Path.getIn({a:{b:{c:{ddd:123,bbb:321,mmm:'hhh'}}}},'a.b.c.[{ddd,kkk:mmm},bbb]')
==>
[{ddd:123,kkk:'hhh'},321]
Path.setIn({a:{b:{c:{kkk:'ddd'}}}},'a.b.c.{aaa:ooo,bbb:[ccc,ddd]}',{aaa:123,bbb:[123,321]})
==>
{a:{b:{c:{ooo:123,ccc:123,ddd:321,kkk:'ddd'}}}}
Path.getIn({a:{b:{c:{ooo:123,ccc:123,ddd:321,kkk:'ddd'}}}},'a.b.c.{aaa:ooo,bbb:[ccc,ddd]}')
==>
{aaa:123,bbb:[123,321]}
```
### Path Match Pattern Syntax

@@ -83,0 +147,0 @@

@@ -499,2 +499,6 @@ import { Parser } from './parser'

static parse(path: Pattern = ''){
return Path.getPath(path)
}
static getPath(path: Pattern = '') {

@@ -537,1 +541,4 @@ if (path instanceof Path) {

}
export default Path

@@ -111,1 +111,113 @@ import { Path } from '../src'

})
test('setIn with a.b.c.{aaa,bbb}', () => {
expect(Path.setIn({}, 'a.b.c.{aaa,bbb}', { aaa: 123, bbb: 321 })).toEqual({
a: { b: { c: { aaa: 123, bbb: 321 } } }
})
})
test('getIn with a.b.c.{aaa,bbb}', () => {
expect(
Path.getIn({ a: { b: { c: { aaa: 123, bbb: 321 } } } }, 'a.b.c.{aaa,bbb}')
).toEqual({ aaa: 123, bbb: 321 })
})
test('setIn with a.b.c.{aaa,bbb} source has extra property', () => {
expect(
Path.setIn({ a: { b: { c: { kkk: 'ddd' } } } }, 'a.b.c.{aaa,bbb}', {
aaa: 123,
bbb: 321
})
).toEqual({ a: { b: { c: { aaa: 123, bbb: 321, kkk: 'ddd' } } } })
})
test('getIn with a.b.c.{aaa,bbb} source has extra property', () => {
expect(
Path.getIn(
{ a: { b: { c: { aaa: 123, bbb: 321, kkk: 'ddd' } } } },
'a.b.c.{aaa,bbb}'
)
).toEqual({ aaa: 123, bbb: 321 })
})
test('setIn with a.b.c.{aaa:ooo,bbb}', () => {
expect(
Path.setIn({ a: { b: { c: { kkk: 'ddd' } } } }, 'a.b.c.{aaa:ooo,bbb}', {
aaa: 123,
bbb: 321
})
).toEqual({ a: { b: { c: { ooo: 123, bbb: 321, kkk: 'ddd' } } } })
})
test('getIn with a.b.c.{aaa:ooo,bbb}', () => {
expect(
Path.getIn(
{ a: { b: { c: { ooo: 123, bbb: 321, kkk: 'ddd' } } } },
'a.b.c.{aaa:ooo,bbb}'
)
).toEqual({ aaa: 123, bbb: 321 })
})
test('setIn with a.b.c.[aaa,bbb]', () => {
expect(Path.setIn({}, 'a.b.c.[aaa,bbb]', [123, 321])).toEqual({
a: { b: { c: { aaa: 123, bbb: 321 } } }
})
})
test('getIn with a.b.c.[aaa,bbb]', () => {
expect(
Path.getIn({ a: { b: { c: { aaa: 123, bbb: 321 } } } }, 'a.b.c.[aaa,bbb]')
).toEqual([123, 321])
})
test('setIn with a.b.c.[aaa,bbb] source has extra property', () => {
expect(
Path.setIn({ a: { b: { c: { kkk: 'ddd' } } } }, 'a.b.c.[aaa,bbb]', [
123,
321
])
).toEqual({ a: { b: { c: { aaa: 123, bbb: 321, kkk: 'ddd' } } } })
})
test('getIn with a.b.c.[aaa,bbb] source has extra property', () => {
expect(
Path.getIn(
{ a: { b: { c: { aaa: 123, bbb: 321, kkk: 'ddd' } } } },
'a.b.c.[aaa,bbb]'
)
).toEqual([123, 321])
})
test('setIn with a.b.c.[{ddd,kkk:mmm},bbb]', () => {
expect(
Path.setIn({}, 'a.b.c.[{ddd,kkk:mmm},bbb]', [{ ddd: 123, kkk: 'hhh' }, 321])
).toEqual({ a: { b: { c: { ddd: 123, bbb: 321, mmm: 'hhh' } } } })
})
test('getIn with a.b.c.[{ddd,kkk:mmm},bbb]', () => {
expect(
Path.getIn(
{ a: { b: { c: { ddd: 123, bbb: 321, mmm: 'hhh' } } } },
'a.b.c.[{ddd,kkk:mmm},bbb]'
)
).toEqual([{ ddd: 123, kkk: 'hhh' }, 321])
})
test('setIn with a.b.c.{aaa:ooo,bbb:[ccc,ddd]}', () => {
expect(
Path.setIn(
{ a: { b: { c: { kkk: 'ddd' } } } },
'a.b.c.{aaa:ooo,bbb:[ccc,ddd]}',
{ aaa: 123, bbb: [123, 321] }
)
).toEqual({ a: { b: { c: { ooo: 123, ccc: 123, ddd: 321, kkk: 'ddd' } } } })
})
test('getIn with a.b.c.{aaa:ooo,bbb:[ccc,ddd]}', () => {
expect(
Path.getIn(
{ a: { b: { c: { ooo: 123, ccc: 123, ddd: 321, kkk: 'ddd' } } } },
'a.b.c.{aaa:ooo,bbb:[ccc,ddd]}'
)
).toEqual({ aaa: 123, bbb: [123, 321] })
})
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