diff options
Diffstat (limited to 'node_modules/clean-css/lib/writer/simple.js')
-rw-r--r-- | node_modules/clean-css/lib/writer/simple.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/clean-css/lib/writer/simple.js b/node_modules/clean-css/lib/writer/simple.js new file mode 100644 index 000000000..21e7f88a7 --- /dev/null +++ b/node_modules/clean-css/lib/writer/simple.js @@ -0,0 +1,52 @@ +var all = require('./helpers').all; + +var lineBreak = require('os').EOL; + +function store(serializeContext, token) { + var value = typeof token == 'string' ? + token : + token[1]; + var wrap = serializeContext.wrap; + + wrap(serializeContext, value); + track(serializeContext, value); + serializeContext.output.push(value); +} + +function wrap(serializeContext, value) { + if (serializeContext.column + value.length > serializeContext.format.wrapAt) { + track(serializeContext, lineBreak); + serializeContext.output.push(lineBreak); + } +} + +function track(serializeContext, value) { + var parts = value.split('\n'); + + serializeContext.line += parts.length - 1; + serializeContext.column = parts.length > 1 ? 0 : (serializeContext.column + parts.pop().length); +} + +function serializeStyles(tokens, context) { + var serializeContext = { + column: 0, + format: context.options.format, + indentBy: 0, + indentWith: '', + line: 1, + output: [], + spaceAfterClosingBrace: context.options.compatibility.properties.spaceAfterClosingBrace, + store: store, + wrap: context.options.format.wrapAt ? + wrap : + function () { /* noop */ } + }; + + all(serializeContext, tokens); + + return { + styles: serializeContext.output.join('') + }; +} + +module.exports = serializeStyles; |