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

@janiscommerce/model

Package Overview
Dependencies
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@janiscommerce/model - npm Package Compare versions

Comparing version 5.2.0 to 5.3.0

4

CHANGELOG.md

@@ -10,2 +10,6 @@ # Changelog

## [5.3.0] - 2020-12-01
### Added
- `mapIdBy` new method
## [5.2.0] - 2020-11-27

@@ -12,0 +16,0 @@ ### Added

41

lib/model.js

@@ -258,19 +258,26 @@ 'use strict';

async mapIdByReferenceId(referenceIds, params = {}) {
mapIdByReferenceId(referenceIds, params = {}) {
return this.mapIdBy('referenceId', referenceIds, params);
}
if(!Array.isArray(referenceIds))
throw new ModelError('References Ids must be an Array', ModelError.codes.INVALID_VALUE);
async mapIdBy(field, fieldValues, params = {}) {
if(!referenceIds.length)
if(!Array.isArray(fieldValues))
throw new ModelError(`${field} items must be an Array`, ModelError.codes.INVALID_VALUE);
if(!fieldValues.length)
return {};
const newParams = { ...params, limit: referenceIds.length }; // to avoid default DBDriver limit
const newParams = { ...params, limit: fieldValues.length }; // to avoid default DBDriver limit
const items = await this.getBy('referenceId', referenceIds, newParams);
const items = await this.getBy(field, fieldValues, newParams);
return items
.filter(item => referenceIds.includes(item.referenceId))
.reduce((acum, { referenceId, id }) => {
return { ...acum, [referenceId]: id.toString() };
}, {});
const newItems = {};
items.forEach(item => {
if(fieldValues.includes(item[field]))
newItems[item[field]] = item.id.toString();
});
return newItems;
}

@@ -475,11 +482,7 @@

static changeKeys(items, newKey) {
const newItems = {};
items.forEach(item => {
if(newKey in item && item[newKey] !== null)
return items.reduce((newItems, item) => {
if(item[newKey])
newItems[item[newKey]] = item;
});
return newItems;
return newItems;
}, {});
}

@@ -486,0 +489,0 @@ }

{
"name": "@janiscommerce/model",
"version": "5.2.0",
"version": "5.3.0",
"description": "A package for managing Janis Models",

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

@@ -272,2 +272,26 @@ # model

### async `mapIdBy(field, fieldValues, [params])`
<details>
<summary>Search all items filtering by field and fieldValues and return an Object with key: <tt>referenceIds</tt> and values: <tt>id</tt>, only those founds.</summary>
#### Parameters
- `field` Field to filter for (`String`)
- `fieldValues` List of values to filter for (`Array<strings>`)
- `params` See get() method
#### Example
```js
await myModel.mapIdBy('code', ['code-123', 'code-456'], {
order: { code: 'desc' }
});
/**
{
code-456: 'the-code-456-id',
code-123: 'the-code-123-id'
}
*/
```
</details>
### async `mapIdByReferenceId(referencesIds, [params])`

@@ -274,0 +298,0 @@ <details>

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