diff --git a/lib/svgo-node.js b/lib/svgo-node.js index b7e26a2c..1614fc00 100644 --- a/lib/svgo-node.js +++ b/lib/svgo-node.js @@ -1,13 +1,17 @@ 'use strict'; +const os = require('os'); const fs = require('fs'); const path = require('path'); const { extendDefaultPlugins, - optimize, + optimize: optimizeAgnostic, createContentItem, } = require('./svgo.js'); +exports.extendDefaultPlugins = extendDefaultPlugins; +exports.createContentItem = createContentItem; + const importConfig = async (configFile) => { const config = require(configFile); if (config == null || typeof config !== 'object' || Array.isArray(config)) { @@ -47,8 +51,19 @@ const loadConfig = async (configFile, cwd = process.cwd()) => { dir = parent; } }; - exports.loadConfig = loadConfig; -exports.extendDefaultPlugins = extendDefaultPlugins; + +const optimize = (input, config) => { + if (typeof config !== 'object') { + throw Error('Config should be an object'); + } + return optimizeAgnostic(input, { + ...config, + js2svg: { + // platform specific default for end of line + eol: os.EOL === '\r\n' ? 'crlf' : 'lf', + ...(config == null ? null : config.js2svg), + }, + }); +}; exports.optimize = optimize; -exports.createContentItem = createContentItem; diff --git a/lib/svgo/js2svg.js b/lib/svgo/js2svg.js index 49bf2c1a..e9e59b74 100644 --- a/lib/svgo/js2svg.js +++ b/lib/svgo/js2svg.js @@ -1,7 +1,6 @@ 'use strict'; -var platformEOL = require('os').EOL, - textElems = require('../../plugins/_collections.js').textElems; +const { textElems } = require('../../plugins/_collections.js'); var defaults = { doctypeStart: '