UNPKG

gulp-transform

Version:

A Gulp plugin for applying custom transformations to the contents of files

56 lines 2.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var gulp_util_1 = require("gulp-util"); var common_1 = require("./common"); /** * A normalized configuration object based on arguments passed to * the plugin. * * @internal */ var Config = (function () { function Config(callback, encoding, thisArg) { this.callback = callback; this.encoding = encoding; this.thisArg = thisArg; } Config.fromPluginArguments = function (arg0, arg1) { var _a = this.resolveArgs(arg0, arg1), callback = _a[0], optionsOrEncoding = _a[1]; var options = this.resolveOptions(optionsOrEncoding); var encoding = this.getEncoding(options); var thisArg = this.getThisArg(options); return new this(callback, encoding, thisArg); }; Config.resolveArgs = function (arg0, arg1) { if (common_1.isFunction(arg0)) return [arg0, arg1]; if (common_1.isFunction(arg1)) return [arg1, arg0]; throw new gulp_util_1.PluginError(common_1.PLUGIN_NAME, "callback is required"); }; Config.resolveOptions = function (optionsOrEncoding) { if (common_1.isObjectLike(optionsOrEncoding)) return optionsOrEncoding; if (common_1.isString(optionsOrEncoding)) return { encoding: optionsOrEncoding }; if (common_1.isNil(optionsOrEncoding)) return { encoding: null }; throw new gulp_util_1.PluginError(common_1.PLUGIN_NAME, "options must be an object, a string, null, or undefined"); }; Config.getEncoding = function (options) { var encoding = options.encoding; if (common_1.isNil(encoding) || encoding === "") return null; if (!common_1.isString(encoding)) throw new gulp_util_1.PluginError(common_1.PLUGIN_NAME, "encoding must be a string, null, or undefined"); if (!Buffer.isEncoding(encoding)) throw new gulp_util_1.PluginError(common_1.PLUGIN_NAME, "encoding is not supported: " + encoding); return encoding; }; Config.getThisArg = function (options) { return options.thisArg; }; return Config; }()); exports.Config = Config; //# sourceMappingURL=Config.js.map