Socket
Socket
Sign inDemoInstall

jeefo_component

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.5 to 0.0.6

binder.js

68

constructor.js
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
* File Name : constructor.js
* Created at : 2017-08-11
* Updated at : 2017-08-15
* Updated at : 2017-09-06
* Author : jeefo

@@ -10,5 +10,4 @@ * Purpose :

var parser = require("./parser"),
Observer = require("./observer"),
object_keys = Object.keys,
var parser = require("./parser"),
binder = require("./binder"),

@@ -19,33 +18,2 @@ parser_wrapper = function (component) {

};
},
binder = function (component, context_property, controller, controller_property) {
var $parser = parser(component, context_property);
return {
value : controller[controller_property] = $parser.getter(),
$parser : $parser,
is_changed : function () {
var value = controller[controller_property] = this.$parser.getter();
if (this.value !== value) {
this.value = value;
return true;
}
}
};
},
two_way_bind = function (component, context_property, controller, controller_property) {
var change_detector = binder(component, context_property, controller, controller_property);
change_detector.observer = new Observer(controller);
change_detector.observer.$on(controller_property, function (value) {
var is_succeed = change_detector.$parser.setter(value);
if (! is_succeed) {
is_succeed = true;
//controller[controller_property] = void 0;
}
});
return change_detector;
};

@@ -61,33 +29,5 @@

// Bindings {{{1
if (definition.bindings) {
var attrs = component.attrs;
object_keys(definition.bindings).forEach(function (prop) {
var key = definition.bindings[prop],
operator = key.charAt(0);
key = key.substring(1);
if (! key) {
key = prop;
}
var value = attrs.get(key) || prop;
switch (operator) {
case '=' :
component.change_detectors.push(two_way_bind(component, value, controller, prop));
break;
case '<' :
component.change_detectors.push(binder(component, value, controller, prop));
break;
case '@' :
controller[prop] = value;
break;
default:
throw new Error("Invalid binding");
}
});
binder(component, controller, definition.bindings);
}
// }}}1

@@ -94,0 +34,0 @@ if (controller.on_init) {

@@ -63,3 +63,3 @@ /* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

var i = 0,
values = this.$parser.getter(),
values = this.$parser.get(),
children = this.$component.children,

@@ -66,0 +66,0 @@ stagger_index = 0,

{
"name": "jeefo_component",
"version": "0.0.5",
"version": "0.0.6",
"description": "Part of jeefo framework",

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

/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
* File Name : parser.js
* Created at : 2017-07-25
* Updated at : 2017-08-24
* Updated at : 2017-09-06
* Author : jeefo

@@ -10,65 +10,69 @@ * Purpose :

var is_digit = require("jeefo_utils/is/digit");
var is_digit = require("jeefo_utils/is/digit"),
module.exports = function (component, code) {
null_parser = { value : null, is_primitive : true },
primitive = function (code) {
switch (code) {
case "true" :
case "false" :
return code === "true";
case "null" :
return null;
return { value : code === "true", is_primitive : true };
case "null" :
return null_parser;
}
if (is_digit(code)) {
return +code;
return { value : +code, is_primitive : true };
}
},
// jshint latedef : false
return generate_getter_setter(component, code);
function generate_getter_setter (component, code) {
var index = code.length, i;
i = code.indexOf('.');
if (i !== -1) {
index = i;
find_controller = function (component, property_name) {
if (component.controller) {
if (component.controller_as === property_name || property_name in component.controller) {
return component.controller;
}
i = code.indexOf('(');
if (i !== -1 && i < index) {
index = i;
}
i = code.indexOf('[');
if (i !== -1 && i < index) {
index = i;
}
}
if (component.parent) {
return find_controller(component.parent, property_name);
}
};
// jshint evil : true
var property_name = code.substring(0, index),
context = find_controller(component, property_name),
module.exports = function parser (component, code) {
var $parser = primitive(code);
getter = new Function("context",
"try { return context." + code + "; } catch (e) {}"),
setter = new Function("context", "value",
"try { context." + code + " = value; return true; } catch (e) {}");
// jshint evil : false
if ($parser) {
return $parser;
}
return {
getter : function () {
return getter(context);
},
setter : function (value) {
return setter(context, value);
}
};
var index = code.length, i;
i = code.indexOf('.');
if (i !== -1) {
index = i;
}
i = code.indexOf('(');
if (i !== -1 && i < index) {
index = i;
}
i = code.indexOf('[');
if (i !== -1 && i < index) {
index = i;
}
function find_controller (component, property_name) {
if (component.controller) {
if (component.controller_as === property_name || property_name in component.controller) {
return component.controller;
}
}
if (component.parent) {
return find_controller(component.parent, property_name);
}
// jshint evil : true
var property_name = code.substring(0, index),
context = find_controller(component, property_name),
getter = new Function("context",
"try { return context." + code + "; } catch (e) {}"),
setter = new Function("context", "value",
"try { context." + code + " = value; return true; } catch (e) {}");
// jshint evil : false
return {
get : function () {
return getter(context);
},
set : function (value) {
return setter(context, value);
}
}
// jshint latedef : true
};
};
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