1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * Module dependencies.
- */
- var css = require('css');
- var convertSourceMap = require('convert-source-map');
- var parse = css.parse;
- var stringify = css.stringify;
- /**
- * Expose `rework`.
- */
- exports = module.exports = rework;
- /**
- * Initialize a new stylesheet `Rework` with `str`.
- *
- * @param {String} str
- * @param {Object} options
- * @return {Rework}
- * @api public
- */
- function rework(str, options) {
- return new Rework(parse(str, options));
- }
- /**
- * Initialize a new stylesheet `Rework` with `obj`.
- *
- * @param {Object} obj
- * @api private
- */
- function Rework(obj) {
- this.obj = obj;
- }
- /**
- * Use the given plugin `fn(style, rework)`.
- *
- * @param {Function} fn
- * @return {Rework}
- * @api public
- */
- Rework.prototype.use = function(fn){
- fn(this.obj.stylesheet, this);
- return this;
- };
- /**
- * Stringify the stylesheet.
- *
- * @param {Object} options
- * @return {String}
- * @api public
- */
- Rework.prototype.toString = function(options){
- options = options || {};
- var result = stringify(this.obj, options);
- if (options.sourcemap && !options.sourcemapAsObject) {
- result = result.code + '\n' + sourcemapToComment(result.map);
- }
- return result;
- };
- /**
- * Convert sourcemap to base64-encoded comment
- *
- * @param {Object} map
- * @return {String}
- * @api private
- */
- function sourcemapToComment(map) {
- var content = convertSourceMap.fromObject(map).toBase64();
- return '/*# sourceMappingURL=data:application/json;base64,' + content + ' */';
- }
|