Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const x: Array> = attributes.map(logicalName => {
const existing = state[logicalName]
if (existing) return Maybe.Some(existing)
// get Dynamics attribute
const attribute = getAttribute(logicalName)
if (attribute) {
const token = ctx => onChangeHandler(logicalName, attribute.getValue())
attribute.addOnChange(token)
// set hasValue
const value = attribute.getValue()
const hasValue = attribute ? (value !== null) : false
return Maybe.Some({
name: logicalName, logicalName, attribute, hasValue, unregisterToken: token, value,
} as Attribute)
}
else {
// throw an error?
if (DEBUG) console.log("connect: Unable to connect:", logicalName)
return Maybe.None>()
it('throws error on variadic function is more arguments than arity', function() {
assert.throws(
addN3.bind(
null,
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1)
),
TypeError
);
});
it('can lift functions of any arity', function() {
assert.isTrue(
R.equals(
addN3(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(3)
)
);
assert.isTrue(
R.equals(
addN4(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(4)
)
);
assert.isTrue(
R.equals(
addN5(
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1)
it('can lift functions of any arity', function() {
assert.isTrue(
R.equals(
addF3(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(3)
)
);
assert.isTrue(
R.equals(
addF4(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(4)
)
);
assert.isTrue(
R.equals(
addF5(
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1)
it('is curried', function() {
const f4 = RA.liftFN(4);
assert.strictEqual(typeof f4, 'function');
assert.isTrue(
R.equals(
f4(addN)(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(4)
)
);
});
});
it('retain order of arguments', function() {
assert.isTrue(
R.equals(
RA.liftFN(3, add3)(Maybe.Some('a'), Maybe.Some('b'), Maybe.Some('c')),
Maybe.Some('abc')
)
);
assert.isTrue(
R.equals(
RA.liftFN(3, add3)(
Identity.of('a'),
Identity.of('b'),
Identity.of('c')
),
Identity.of('abc')
)
);
});
it('throws error on variadic function is more arguments than arity', function() {
assert.throws(
addN3.bind(
null,
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1)
),
TypeError
);
});
Maybe.Some(3)
)
);
assert.isTrue(
R.equals(
addN4(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(4)
)
);
assert.isTrue(
R.equals(
addN5(
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1)
),
Maybe.Some(5)
)
);
});
assert.isTrue(
R.equals(
addF3(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(3)
)
);
assert.isTrue(
R.equals(
addF4(Maybe.Some(1), Maybe.Some(1), Maybe.Some(1), Maybe.Some(1)),
Maybe.Some(4)
)
);
assert.isTrue(
R.equals(
addF5(
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1),
Maybe.Some(1)
),
Maybe.Some(5)
)
);
});
});