Socket
Socket
Sign inDemoInstall

skul

Package Overview
Dependencies
75
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.5.1 to 0.5.2

86

lib/skul/hider.js

@@ -0,4 +1,14 @@

/**
* lib/skul/hider.js
*
* SKuL hider methods
*
* Author: Paul Duthoit, Nicolas Thouchkaieff
* Copyright(c) 2018 Paul Duthoit
*/
// Dependencies
var Promise = require('promise');
var _ = require('underscore');
var objectPath = require('object-path');

@@ -116,15 +126,8 @@

// Check arguments length
if(arguments.length === 1) {
fields = {};
}
// Transform arguments
if(typeof fields === 'undefined' || fields === null) fields = {};
if(typeof fields === 'undefined' || fields === null || _.isEmpty(fields)) fields = { '$all': 1 };
// Check arguments
if(!(data instanceof Array || typeof data === 'object'))
throw new Error('data have to be an array or an object');
if(!(typeof fields === 'object'))
throw new Error('fields have to be an object');
if(!(data instanceof Array || typeof data === 'object')) throw new Error('data have to be an array or an object');
if(!(typeof fields === 'object')) throw new Error('fields have to be an object');

@@ -137,46 +140,37 @@ // Set data

var asyncQueue = Promise.resolve();
if (_.isEmpty(fields)) fields = { '$all': 1 };
// Check if data to parse is an array
if(!isArray) {
dataToParse = [ dataToParse ];
}
// Transform data
if(!isArray) dataToParse = [ dataToParse ];
// Transform data
_.each(dataToParse, function(dataItem) {
_.each(dataItem, function(dataValue, dataKey) {
if (fields[dataKey] || (fields['$all'] && _.contains(allKeys, dataKey))) {
// Set data
var relModel = self.getRelationship(dataKey);
relModel = objectPath.get(relModel, ['model', '$model']) || objectPath.get(relModel, ['model']) || null;
// Data
var relModel = self.getRelationship(dataKey);
// Clean not requested fields
if(!(fields[dataKey] || (fields['$all'] && _.contains(allKeys, dataKey)))) return delete dataItem[dataKey];
if (relModel && relModel.model) {
if (relModel.model['$model'] && typeof relModel.model['$model'] === 'object') relModel = relModel.model['$model'];
else relModel = relModel.model;
// If relationship
if(relModel) {
// Data
var relFields = {};
var relData = dataItem[dataKey].data || dataItem[dataKey];
// Data
var relFields = {};
var relData = objectPath.get(dataItem, [dataKey, 'data']) || objectPath.get(dataItem, [dataKey]);
if (fields[dataKey] == 1) {
relFields = { '$all': 1 };
} else if (typeof fields[dataKey] === 'object' && fields[dataKey]['$fields']) {
relFields = fields[dataKey]['$fields'];
}
if(fields[dataKey] == 1) relFields = { '$all': 1 };
else if(typeof fields[dataKey] === 'object' && fields[dataKey]['$fields']) relFields = fields[dataKey]['$fields'];
// Add to queue
asyncQueue = asyncQueue
.then(relModel.cleanFields.bind(relModel, relData, relFields))
.then(function() {
return Promise.resolve();
});
}
// Add to queue
asyncQueue = asyncQueue
.then(relModel.cleanFields.bind(relModel, relData, relFields))
.then(function() {
return Promise.resolve();
});
} else delete dataItem[dataKey];
}
})
});
});

@@ -187,10 +181,4 @@

.then(function() {
// Return data
if(isArray) {
return Promise.resolve(dataToParse);
} else {
return Promise.resolve(dataToParse[0]);
}
if(isArray) return Promise.resolve(dataToParse);
else return Promise.resolve(dataToParse[0]);
});

@@ -197,0 +185,0 @@

{
"name": "skul",
"description": "SKuL - SQL query manager",
"version": "0.5.1",
"version": "0.5.2",
"author": "Paul Duthoit <duthoit.paul@gmail.com>",

@@ -6,0 +6,0 @@ "homepage": "http://skul.io/",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc