stylus
Version:
Robust, expressive, and feature-rich CSS superset
114 lines (94 loc) • 1.55 kB
JavaScript
/*!
* Stylus - Boolean
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
module.exports = class Boolean extends Node {
/**
* Initialize a new `Boolean` node with the given `val`.
*
* @param {Boolean} val
* @api public
*/
constructor(val) {
super();
if (this.nodeName) {
this.val = !!val;
} else {
return new Boolean(val);
}
}
/**
* Return `this` node.
*
* @return {Boolean}
* @api public
*/
toBoolean() {
return this;
};
/**
* Return `true` if this node represents `true`.
*
* @return {Boolean}
* @api public
*/
get isTrue() {
return this.val;
};
/**
* Return `true` if this node represents `false`.
*
* @return {Boolean}
* @api public
*/
get isFalse() {
return !this.val;
};
/**
* Negate the value.
*
* @return {Boolean}
* @api public
*/
negate() {
return new Boolean(!this.val);
};
/**
* Return 'Boolean'.
*
* @return {String}
* @api public
*/
inspect() {
return '[Boolean ' + this.val + ']';
};
/**
* Return 'true' or 'false'.
*
* @return {String}
* @api public
*/
toString() {
return this.val
? 'true'
: 'false';
};
/**
* Return a JSON representaiton of this node.
*
* @return {Object}
* @api public
*/
toJSON() {
return {
__type: 'Boolean',
val: this.val
};
};
};