UNPKG

2.36 kBJavaScriptView Raw
1'use strict';
2
3var svgo = require('svgo');
4var cosmiconfig = require('cosmiconfig');
5
6const explorer = cosmiconfig.cosmiconfigSync("svgo", {
7 searchPlaces: [
8 "package.json",
9 ".svgorc",
10 ".svgorc.js",
11 ".svgorc.json",
12 ".svgorc.yaml",
13 ".svgorc.yml",
14 "svgo.config.js",
15 ".svgo.yml"
16 ],
17 transform: (result) => result && result.config,
18 cache: true
19});
20const getSvgoConfigFromSvgrConfig = (config) => {
21 const params = { overrides: {} };
22 if (config.icon || config.dimensions === false) {
23 params.overrides.removeViewBox = false;
24 }
25 if (config.native) {
26 params.overrides.inlineStyles = {
27 onlyMatchedOnce: false
28 };
29 }
30 return {
31 plugins: [
32 {
33 name: "preset-default",
34 params
35 },
36 "prefixIds"
37 ]
38 };
39};
40const getSvgoConfig = (config, state) => {
41 const cwd = state.filePath || process.cwd();
42 if (config.svgoConfig)
43 return config.svgoConfig;
44 if (config.runtimeConfig) {
45 const userConfig = explorer.search(cwd);
46 if (userConfig)
47 return userConfig;
48 }
49 return getSvgoConfigFromSvgrConfig(config);
50};
51
52var __defProp = Object.defineProperty;
53var __defProps = Object.defineProperties;
54var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
55var __getOwnPropSymbols = Object.getOwnPropertySymbols;
56var __hasOwnProp = Object.prototype.hasOwnProperty;
57var __propIsEnum = Object.prototype.propertyIsEnumerable;
58var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
59var __spreadValues = (a, b) => {
60 for (var prop in b || (b = {}))
61 if (__hasOwnProp.call(b, prop))
62 __defNormalProp(a, prop, b[prop]);
63 if (__getOwnPropSymbols)
64 for (var prop of __getOwnPropSymbols(b)) {
65 if (__propIsEnum.call(b, prop))
66 __defNormalProp(a, prop, b[prop]);
67 }
68 return a;
69};
70var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
71const svgoPlugin = (code, config, state) => {
72 if (!config.svgo)
73 return code;
74 const svgoConfig = getSvgoConfig(config, state);
75 const result = svgo.optimize(code, __spreadProps(__spreadValues({}, svgoConfig), { path: state.filePath }));
76 if (result.modernError) {
77 throw result.modernError;
78 }
79 return result.data;
80};
81
82module.exports = svgoPlugin;
83//# sourceMappingURL=index.js.map