aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@vue/component-compiler-utils/dist/compileStyle.js
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/@vue/component-compiler-utils/dist/compileStyle.js
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/@vue/component-compiler-utils/dist/compileStyle.js')
-rw-r--r--node_modules/@vue/component-compiler-utils/dist/compileStyle.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/node_modules/@vue/component-compiler-utils/dist/compileStyle.js b/node_modules/@vue/component-compiler-utils/dist/compileStyle.js
new file mode 100644
index 00000000..f637c490
--- /dev/null
+++ b/node_modules/@vue/component-compiler-utils/dist/compileStyle.js
@@ -0,0 +1,78 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const postcss = require('postcss');
+const trim_1 = require("./stylePlugins/trim");
+const scoped_1 = require("./stylePlugins/scoped");
+const styleProcessors_1 = require("./styleProcessors");
+function compileStyle(options) {
+ return doCompileStyle(Object.assign({}, options, { isAsync: false }));
+}
+exports.compileStyle = compileStyle;
+function compileStyleAsync(options) {
+ return Promise.resolve(doCompileStyle(Object.assign({}, options, { isAsync: true })));
+}
+exports.compileStyleAsync = compileStyleAsync;
+function doCompileStyle(options) {
+ const { filename, id, scoped = true, trim = true, preprocessLang, postcssOptions, postcssPlugins } = options;
+ const preprocessor = preprocessLang && styleProcessors_1.processors[preprocessLang];
+ const preProcessedSource = preprocessor && preprocess(options, preprocessor);
+ const map = preProcessedSource ? preProcessedSource.map : options.map;
+ const source = preProcessedSource ? preProcessedSource.code : options.source;
+ const plugins = (postcssPlugins || []).slice();
+ if (trim) {
+ plugins.push(trim_1.default());
+ }
+ if (scoped) {
+ plugins.push(scoped_1.default(id));
+ }
+ const postCSSOptions = Object.assign({}, postcssOptions, { to: filename, from: filename });
+ if (map) {
+ postCSSOptions.map = {
+ inline: false,
+ annotation: false,
+ prev: map
+ };
+ }
+ let result, code, outMap;
+ const errors = [];
+ if (preProcessedSource && preProcessedSource.errors.length) {
+ errors.push(...preProcessedSource.errors);
+ }
+ try {
+ result = postcss(plugins).process(source, postCSSOptions);
+ // In async mode, return a promise.
+ if (options.isAsync) {
+ return result
+ .then((result) => ({
+ code: result.css || '',
+ map: result.map && result.map.toJSON(),
+ errors,
+ rawResult: result
+ }))
+ .catch((error) => ({
+ code: '',
+ map: undefined,
+ errors: [...errors, error.message],
+ rawResult: undefined
+ }));
+ }
+ // force synchronous transform (we know we only have sync plugins)
+ code = result.css;
+ outMap = result.map;
+ }
+ catch (e) {
+ errors.push(e);
+ }
+ return {
+ code: code || ``,
+ map: outMap && outMap.toJSON(),
+ errors,
+ rawResult: result
+ };
+}
+exports.doCompileStyle = doCompileStyle;
+function preprocess(options, preprocessor) {
+ return preprocessor.render(options.source, options.map, Object.assign({
+ filename: options.filename
+ }, options.preprocessOptions));
+}