UNPKG

webpack

Version:

Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jade, coffee, css, less, ... and your custom stuff.

135 lines (130 loc) 4.06 kB
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ function BasicEvaluatedExpression() { this.range = null; } module.exports = BasicEvaluatedExpression; BasicEvaluatedExpression.prototype.isString = function() { return Object.prototype.hasOwnProperty.call(this, "string"); }; BasicEvaluatedExpression.prototype.isNumber = function() { return Object.prototype.hasOwnProperty.call(this, "number"); }; BasicEvaluatedExpression.prototype.isBoolean = function() { return Object.prototype.hasOwnProperty.call(this, "bool"); }; BasicEvaluatedExpression.prototype.isRegExp = function() { return Object.prototype.hasOwnProperty.call(this, "regExp"); }; BasicEvaluatedExpression.prototype.isConditional = function() { return Object.prototype.hasOwnProperty.call(this, "options"); }; BasicEvaluatedExpression.prototype.isArray = function() { return Object.prototype.hasOwnProperty.call(this, "items"); }; BasicEvaluatedExpression.prototype.isConstArray = function() { return Object.prototype.hasOwnProperty.call(this, "array"); }; BasicEvaluatedExpression.prototype.isIdentifier = function() { return Object.prototype.hasOwnProperty.call(this, "identifier"); }; BasicEvaluatedExpression.prototype.isWrapped = function() { return Object.prototype.hasOwnProperty.call(this, "prefix"); }; BasicEvaluatedExpression.prototype.asBool = function() { if(this.isBoolean()) return this.bool; else if(this.isString()) return !!this.string; else if(this.isNumber()) return !!this.number; else if(this.isRegExp()) return true; else if(this.isArray()) return true; else if(this.isConstArray()) return true; else if(this.isWrapped()) return this.prefix || this.postfix ? true : undefined; return undefined; }; BasicEvaluatedExpression.prototype.set = function(value) { if(typeof value === "string") return this.setString(value); if(typeof value === "number") return this.setNumber(value); if(typeof value === "boolean") return this.setBoolean(value); if(value instanceof RegExp) return this.setRegExp(value); if(Array.isArray(value)) return this.setArray(value); return this; }; BasicEvaluatedExpression.prototype.setString = function(str) { if(str === null) delete this.string; else this.string = str; return this; }; BasicEvaluatedExpression.prototype.setNumber = function(num) { if(num === null) delete this.number; else this.number = num; return this; }; BasicEvaluatedExpression.prototype.setBoolean = function(bool) { if(bool === null) delete this.bool; else this.bool = bool; return this; }; BasicEvaluatedExpression.prototype.setRegExp = function(regExp) { if(regExp === null) delete this.regExp; else this.regExp = regExp; return this; }; BasicEvaluatedExpression.prototype.setIdentifier = function(identifier) { if(identifier === null) delete this.identifier; else this.identifier = identifier; return this; }; BasicEvaluatedExpression.prototype.setWrapped = function(prefix, postfix) { this.prefix = prefix; this.postfix = postfix; return this; }; BasicEvaluatedExpression.prototype.unsetWrapped = function() { delete this.prefix; delete this.postfix; return this; }; BasicEvaluatedExpression.prototype.setOptions = function(options) { if(options === null) delete this.options; else this.options = options; return this; }; BasicEvaluatedExpression.prototype.setItems = function(items) { if(items === null) delete this.items; else this.items = items; return this; }; BasicEvaluatedExpression.prototype.setArray = function(array) { if(array === null) delete this.array; else this.array = array; return this; }; BasicEvaluatedExpression.prototype.addOptions = function(options) { if(!this.options) this.options = []; options.forEach(function(item) { this.options.push(item); }, this); return this; }; BasicEvaluatedExpression.prototype.setRange = function(range) { this.range = range; return this; };