rsuite-theme
Version:
The suite theme for pagurian
52 lines (41 loc) • 1.47 kB
JavaScript
var Stringifier = require('postcss/lib/stringifier');
var SassStringifier = function (builder) {
Stringifier.call(this, builder);
};
const DEFAULT_RAW = {
colon: ': ',
commentLeft: ' ',
commentRight: ' '
};
SassStringifier.prototype = Object.create(Stringifier.prototype);
SassStringifier.prototype.constructor = Stringifier;
SassStringifier.prototype.has = function has(value) {
return typeof value !== 'undefined';
};
SassStringifier.prototype.block = function (node, start) {
var between = node.raws.sssBetween || '';
this.builder(start + between, node, 'start');
if (this.has(node.nodes)) {
this.body(node);
}
};
SassStringifier.prototype.decl = function (node) {
var between = node.raws.between || DEFAULT_RAW.colon;
var string = node.prop + between + this.rawValue(node, 'value');
if (node.important) {
string += '!important';
}
this.builder(string, node);
};
SassStringifier.prototype.comment = function (node) {
var left = this.has(node.raws.left) ?
node.raws.left : DEFAULT_RAW.commentLeft;
var right = this.has(node.raws.right) ?
node.raws.right : DEFAULT_RAW.commentRight;
if (node.raws.commentType === 'single') {
this.builder('//' + left + node.text + right, node);
} else if (node.raws.commentType === 'multi') {
this.builder('/*' + left + node.text + right + '*/', node);
}
};
module.exports = SassStringifier;