34 lines
812 B
JavaScript
34 lines
812 B
JavaScript
/*!
|
|
* Chai - flag utility
|
|
* Copyright(c) 2012-2014 Jake Luer <jake@alogicalparadox.com>
|
|
* MIT Licensed
|
|
*/
|
|
|
|
/**
|
|
* ### .flag(object, key, [value])
|
|
*
|
|
* Get or set a flag value on an object. If a
|
|
* value is provided it will be set, else it will
|
|
* return the currently set value or `undefined` if
|
|
* the value is not set.
|
|
*
|
|
* utils.flag(this, 'foo', 'bar'); // setter
|
|
* utils.flag(this, 'foo'); // getter, returns `bar`
|
|
*
|
|
* @param {Object} object constructed Assertion
|
|
* @param {String} key
|
|
* @param {Mixed} value (optional)
|
|
* @namespace Utils
|
|
* @name flag
|
|
* @api private
|
|
*/
|
|
|
|
module.exports = function flag(obj, key, value) {
|
|
var flags = obj.__flags || (obj.__flags = Object.create(null));
|
|
if (arguments.length === 3) {
|
|
flags[key] = value;
|
|
} else {
|
|
return flags[key];
|
|
}
|
|
};
|