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

ember-cli-copyable

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ember-cli-copyable - npm Package Compare versions

Comparing version 0.9.5 to 0.9.6

90

addon/mixins/copyable.js
import Ember from 'ember';
import DS from 'ember-data';
var Copyable = Ember.Mixin.create({
export default Ember.Mixin.create({
copyable: true,

@@ -19,45 +19,44 @@ copy: function(options) {

case 'undefined':
copy.set(attr, _this.get(attr));
break;
copy.set(attr, _this.get(attr));
break;
case 'null':
copy.set(attr, null);
break;
copy.set(attr, null);
break;
default:
copy.set(attr, options[attr]);
copy.set(attr, options[attr]);
}
});
model.eachRelationship(function(rel, meta) {
if (!_this.get(rel)) {
return;
}
model.eachRelationship(function(relName, meta) {
var rel = _this.get(relName);
if (!rel) { return; }
var overwrite;
var passedOptions = {};
switch(Ember.typeOf(options[rel])) {
switch(Ember.typeOf(options[relName])) {
case 'null':
return;
return;
case 'instance':
overwrite = options[rel];
break;
overwrite = options[relName];
break;
case 'object':
passedOptions = options[rel];
break;
passedOptions = options[relName];
break;
case 'array':
overwrite = options[rel];
break;
overwrite = options[relName];
break;
default:
}
if (_this.get(rel).constructor === DS.PromiseObject) {
if (rel.constructor === DS.PromiseObject) {
queue.pushObject(_this.get(rel).then(function(obj) {
queue.push(rel.then(function(obj) {
if (obj && obj.get('copyable')) {
return obj.copy(passedOptions).then(function(objCopy) {
copy.set(rel, overwrite || objCopy);
copy.set(relName, overwrite || objCopy);
});
} else {
copy.set(rel, overwrite || obj);
copy.set(relName, overwrite || obj);
}

@@ -68,38 +67,36 @@

} else if (_this.get(rel).constructor === DS.PromiseManyArray) {
} else if (rel.constructor === DS.PromiseManyArray) {
if (overwrite) {
copy.get(rel).pushObjects(overwrite);
copy.get(relName).pushObjects(overwrite);
} else {
queue.pushObject(_this.get(rel).then(function(array) {
array.forEach(function(obj) {
if (obj.get('copyable')) {
return obj.copy(passedOptions).then(function(objCopy) {
copy.get(rel).pushObject(objCopy);
});
} else {
copy.get(rel).pushObject(obj);
}
queue.push(rel.then(function(array) {
var resolvedCopies =
array.map(function(obj) {
if (obj.get('copyable')) {
return obj.copy(passedOptions);
} else {
return obj;
}
});
return Ember.RSVP.all(resolvedCopies).then(function(copies){
copy.get(relName).pushObjects(copies);
});
}));
}
} else {
if (meta.kind === 'belongsTo') {
var obj = _this.get(rel);
var obj = rel;
if (obj && obj.get('copyable')) {
queue.pushObject( obj.copy(passedOptions).then(function(objCopy) {
copy.set(rel, overwrite || objCopy);
queue.push( obj.copy(passedOptions).then(function(objCopy) {
copy.set(relName, overwrite || objCopy);
}));
} else {
copy.set(rel, overwrite || obj);
copy.set(relName, overwrite || obj);
}
} else {
var objs = _this.get(rel);
var objs = rel;

@@ -117,6 +114,6 @@ if (objs.get('content')) {

if (overwrite) {
copy.get(rel).pushObjects(overwrite);
copy.get(relName).pushObjects(overwrite);
} else {
queue.pushObject( Ember.RSVP.all(copies).then( function(resolvedCopies) {
copy.get(rel).pushObjects(resolvedCopies);
queue.push( Ember.RSVP.all(copies).then( function(resolvedCopies) {
copy.get(relName).pushObjects(resolvedCopies);
}));

@@ -127,3 +124,3 @@ }

} else {
copy.get(rel).pushObjects(overwrite || objs);
copy.get(relName).pushObjects(overwrite || objs);
}

@@ -143,2 +140,1 @@ }

export default Copyable;
{
"name": "ember-cli-copyable",
"version": "0.9.5",
"version": "0.9.6",
"description": "Deeply copies your records including their relations. The mixin is smart enough to resolve not loaded relations and is configurable to what should be shallow/deeply copied or excluded entirely.",

@@ -5,0 +5,0 @@ "directories": {

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