From e2c940b9f3c27c7af19672d7dba29a94be7164fe Mon Sep 17 00:00:00 2001 From: lucasdevelop Date: Wed, 21 Jul 2021 15:23:11 +0200 Subject: [PATCH] add ifis funtion | resturcture code | added ifis test --- package.json | 2 +- src/index.js | 46 +++++++++++++++++++++++++++++++++------------- test/test.js | 9 +++++++++ 3 files changed, 43 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 57f3fd9..fd38843 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "varkeeper", - "version": "1.0.0", + "version": "1.0.1", "description": "", "main": "dist/index.js", "devDependencies": { diff --git a/src/index.js b/src/index.js index 244be5a..7f25f93 100644 --- a/src/index.js +++ b/src/index.js @@ -8,15 +8,20 @@ function setprop(name, value) { } props[name] = value; - if (events.length > 0) { - let onchangeevents = events.filter(x => x.name === name && x.type === 'onchange') - - onchangeevents.forEach(element => { - element.callback(value); - }); - } + onchange_func(name, value); + ifis_func(name, value) + } +function getEventsFromTypeAndName(name,type) { + let event = []; + if (events.length > 0) { + event = events.filter(x => x.name === name && x.type === type) + } + return event; +} + + function getprop(name) { return props[name]; } @@ -25,14 +30,29 @@ function onchange(name, callback) { events.push({ name: name, callback: callback, type: 'onchange' }); } -function ifistrue(name, condition , callback) { - - if(condition) { - callback(); +function onchange_func(name,value){ + if (events.length > 0) { + let onchangeevents = getEventsFromTypeAndName(name, 'onchange'); + + onchangeevents.forEach(element => { + element.callback(value); + }); } - events.push({ name: name, callback: callback, type: 'ifistrue' }); +} + +function ifis(name, condition , callback) { + events.push({ name: name, callback: callback, condition: condition, type: 'ifis' }); +} +function ifis_func(name, value) { + let ifisevent = getEventsFromTypeAndName(name, 'ifis'); + ifisevent.forEach(element => { + if(element.condition){ + element.callback(value); + } + }); } -module.exports = { setprop, getprop, onchange } \ No newline at end of file + +module.exports = { setprop, getprop, onchange, ifis } \ No newline at end of file diff --git a/test/test.js b/test/test.js index e5bdae1..fac1dcf 100644 --- a/test/test.js +++ b/test/test.js @@ -47,4 +47,13 @@ describe('varkeeper', () => { assert.equal(a, true); }); }); + describe('ifis', () => { + it('will call funtion by change prop value', (done) => { + varkeeper.ifis('test', varkeeper.getprop('test').length > 1 , (value) => { + done(); + }); + varkeeper.setprop('test', [1,2,3]); + throw new Error(); + }); + }); }); \ No newline at end of file