diff --git a/index.js b/index.js index ed9c937..a8126ec 100644 --- a/index.js +++ b/index.js @@ -1,18 +1,18 @@ -var _ = require('lodash'); -var loaderUtils = require('loader-utils'); -module.exports = function(source) { +const { isString, template, extend } = require('lodash'); +const { parseQuery } = require('loader-utils'); + +module.exports = (source) => { this.cacheable && this.cacheable(); - var query = loaderUtils.parseQuery(this.query); - var options = this.options.ejsLoader || {}; + const query = parseQuery(this.query); + const options = this.options.ejsLoader || {}; - ['escape', 'interpolate', 'evaluate'].forEach(function(templateSetting) { - var setting = query[templateSetting]; - if (_.isString(setting)) { + ['escape', 'interpolate', 'evaluate'].forEach((templateSetting) => { + const setting = query[templateSetting]; + if (isString(setting)) { query[templateSetting] = new RegExp(setting, 'g'); } }); - var template = _.template(source, _.extend({}, query, options)); - return 'module.exports = ' + template; + return `module.exports = ${template(source, extend({}, query, options))}`; }; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a124e88 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,44 @@ +{ + "name": "ejs-loader", + "version": "0.3.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + } + } +}