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

sarala-json-api-data-formatter

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sarala-json-api-data-formatter - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

7

package.json
{
"name": "sarala-json-api-data-formatter",
"version": "1.0.1",
"version": "1.0.2",
"description": "Simple and fluent framework agnostic javascript library to transform standard JSON API responses to simple JSON objects and vice versa.",

@@ -8,8 +8,7 @@ "main": "build/index.js",

"build": "babel src -d build",
"t": "jest --coverage & codecov -t 5d183834-4fff-4000-b25b-de4556f5ef91",
"t": "jest",
"tw": "jest --watch",
"cc": "jest --coverage",
"cs": "./node_modules/.bin/eslint src/*",
"csf": "./node_modules/.bin/eslint src/* --fix",
"test": "jest --coverage & codecov -t 5d183834-4fff-4000-b25b-de4556f5ef91"
"csf": "./node_modules/.bin/eslint src/* --fix"
},

@@ -16,0 +15,0 @@ "jest": {

# sarala-json-api-data-formatter
[![codecov](https://codecov.io/gh/sarala-io/sarala-json-api-data-formatter/branch/master/graph/badge.svg)](https://codecov.io/gh/sarala-io/sarala-json-api-data-formatter) [![npm version](https://badge.fury.io/js/sarala-json-api-data-formatter.svg)](https://www.npmjs.com/package/sarala-json-api-data-formatter) [![apm](https://img.shields.io/apm/l/vim-mode.svg)](https://github.com/sarala-io/sarala-json-api-data-formatter/blob/master/LICENSE)
[![codecov](https://codecov.io/gh/sarala-io/sarala-json-api-data-formatter/branch/master/graph/badge.svg)](https://codecov.io/gh/sarala-io/sarala-json-api-data-formatter)
[![npm version](https://badge.fury.io/js/sarala-json-api-data-formatter.svg)](https://www.npmjs.com/package/sarala-json-api-data-formatter)
[![apm](https://img.shields.io/apm/l/vim-mode.svg)](https://github.com/sarala-io/sarala-json-api-data-formatter/blob/master/LICENSE)

@@ -5,0 +7,0 @@ > A fluent, framework-agnostic, JavaScript library, that can be used simply, to transform standard JSON API responses to simple JSON objects and vice versa.

@@ -70,6 +70,4 @@ import _ from 'lodash';

let thiss = this;
_.forOwn(data.attributes, (value, key) => {
if (thiss.shouldIncludeField(data.type, key)) {
if (this.shouldIncludeField(data.type, key)) {
formatted[key] = value;

@@ -90,3 +88,3 @@ }

relationship.data = this.resolveRelationCollection(data.relationships[key].data);
} else {
} else if (data.relationships[key].data) {
relationship.data = this.resolveRelation(data.relationships[key].data);

@@ -104,7 +102,6 @@ }

deserializeCollection (data) {
const thiss = this;
data.data_collection = true;
data.data = _.map(data.data, item => {
return thiss.deserializeOne(item);
return this.deserializeOne(item);
});

@@ -168,13 +165,11 @@

let thiss = this;
if (data.hasOwnProperty('relationships')) {
_.forEach(data.relationships, relationship => {
if (thiss.shouldIncludeRelation(relationship)) {
let relationshipData = thiss.mapAndKillProps(data[relationship], {}, ['links', 'meta']).to;
if (this.shouldIncludeRelation(relationship)) {
let relationshipData = this.mapAndKillProps(data[relationship], {}, ['links', 'meta']).to;
if (thiss.isSerializeableCollection(data[relationship])) {
relationshipData.data = thiss.serializeRelationshipCollection(data[relationship].data);
if (this.isSerializeableCollection(data[relationship])) {
relationshipData.data = this.serializeRelationshipCollection(data[relationship].data);
} else {
relationshipData.data = thiss.serializeRelationship(data[relationship].data);
relationshipData.data = this.serializeRelationship(data[relationship].data);
}

@@ -192,3 +187,3 @@

_.forOwn(data, (value, key) => {
if (thiss.shouldIncludeField(serialized.type, key)) {
if (this.shouldIncludeField(serialized.type, key)) {
serialized.attributes[key] = value;

@@ -226,6 +221,4 @@ }

serializeRelationshipCollection (data) {
const thiss = this;
return _.map(data, item => {
return thiss.serializeRelationship(item);
return this.serializeRelationship(item);
});

@@ -235,5 +228,3 @@ }

addToIncludes (data) {
const thiss = this;
if (_.isUndefined(_.find(thiss.includedData, { id: data.id, type: data.type }))) {
if (_.isUndefined(_.find(this.includedData, { id: data.id, type: data.type }))) {
this.includedData.push(data);

@@ -240,0 +231,0 @@ }

@@ -21,2 +21,33 @@ export const Post = {

export const PostWithRelationalLinks = {
"data": {
"type": "posts",
"id": "1",
"attributes": {
"slug": "voluptates-laborum-non-voluptatem-ducimus-veniam-et",
"title": "Voluptates laborum non voluptatem ducimus veniam et.",
"subtitle": "Cumque aut laudantium repudiandae rem repellendus voluptatem. Sunt ipsa eum ea molestias.",
"body": "Est quod itaque suscipit quidem dolor dolores velit. Nihil voluptas placeat ex consequatur quasi.\n\nEst nulla cupiditate ad beatae rerum veritatis vel. Quia ut doloribus consequatur porro. Eligendi sit et dignissimos qui voluptatem magnam mollitia labore.\n\nLibero saepe praesentium et sed. Exercitationem error rerum sit inventore provident laborum. Fuga pariatur dolor reiciendis. Quibusdam corrupti commodi ut quo non laboriosam quia. Nihil sit iste sit optio voluptas repellendus exercitationem.",
"published_at": "2018-01-25"
},
"links": {
"self": "https:\/\/sarala-demo.app\/api\/posts\/1"
},
"relationships": {
"author": {
"links": {
"self": "https:\/\/sarala-demo.app\/api\/posts\/1\/relationships\/author",
"related": "https:\/\/sarala-demo.app\/api\/posts\/1\/author"
}
},
"tags": {
"links": {
"self": "https:\/\/sarala-demo.app\/api\/posts\/1\/relationships\/tags",
"related": "https:\/\/sarala-demo.app\/api\/posts\/1\/tags"
}
}
}
}
};
export const PostWithAllNesterRelations = {

@@ -23,0 +54,0 @@ "data": {

@@ -205,2 +205,31 @@ export const Post = {

}
};
export const PostWithRelationalLinks = {
"id": "1",
"type": "posts",
"slug": "voluptates-laborum-non-voluptatem-ducimus-veniam-et",
"title": "Voluptates laborum non voluptatem ducimus veniam et.",
"subtitle": "Cumque aut laudantium repudiandae rem repellendus voluptatem. Sunt ipsa eum ea molestias.",
"body": "Est quod itaque suscipit quidem dolor dolores velit. Nihil voluptas placeat ex consequatur quasi.\n\nEst nulla cupiditate ad beatae rerum veritatis vel. Quia ut doloribus consequatur porro. Eligendi sit et dignissimos qui voluptatem magnam mollitia labore.\n\nLibero saepe praesentium et sed. Exercitationem error rerum sit inventore provident laborum. Fuga pariatur dolor reiciendis. Quibusdam corrupti commodi ut quo non laboriosam quia. Nihil sit iste sit optio voluptas repellendus exercitationem.",
"published_at": "2018-01-25",
"relationships": [
"author",
"tags"
],
"author": {
"links": {
"related": "https://sarala-demo.app/api/posts/1/author",
"self": "https://sarala-demo.app/api/posts/1/relationships/author"
}
},
"tags": {
"links": {
"related": "https://sarala-demo.app/api/posts/1/tags",
"self": "https://sarala-demo.app/api/posts/1/relationships/tags"
}
},
"links": {
"self": "https://sarala-demo.app/api/posts/1"
}
};

@@ -5,2 +5,3 @@ import Formatter from './../src/Formatter';

Post as ApiPost,
PostWithRelationalLinks as ApiPostWithRelationalLinks,
PostWithAllNesterRelations as ApiPostWithAllNesterRelations,

@@ -12,2 +13,3 @@ PaginatedPostsList as ApiPaginatedPostsList

Post as SimplePost,
PostWithRelationalLinks as SimplePostWithRelationalLinks,
PostWithAllNesterRelations as SimplePostWithAllNesterRelations,

@@ -28,2 +30,7 @@ PaginatedPostsList as SimplePaginatedPostsList

test('it deserialize related resource object when the data is not present', () => {
const result = formatter.deserialize(ApiPostWithRelationalLinks);
expect(result).toEqual(SimplePostWithRelationalLinks);
});
test('it deserialize single object with relationships', () => {

@@ -30,0 +37,0 @@ const result = formatter.deserialize(ApiPostWithAllNesterRelations);

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