stc-replace
Version:
Content replace for stc, Support string & regular expression
204 lines (148 loc) • 4.96 kB
JavaScript
;
exports.__esModule = true;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _stcPlugin = require('stc-plugin');
var _stcPlugin2 = _interopRequireDefault(_stcPlugin);
var _stcHelper = require('stc-helper');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//import {isMaster} from 'cluster';
var options = void 0;
var ReplacePlugin = function (_Plugin) {
(0, _inherits3.default)(ReplacePlugin, _Plugin);
function ReplacePlugin() {
(0, _classCallCheck3.default)(this, ReplacePlugin);
return (0, _possibleConstructorReturn3.default)(this, _Plugin.apply(this, arguments));
}
/**
* parseConfig
* {[string]: [replaceString]}
* or
* [grep, replaceString]
* or
* [[grep, replaceString]]
*/
ReplacePlugin.prototype.parseConfig = function parseConfig(opts) {
var options = [];
if (!(0, _stcHelper.isArray)(opts)) {
for (var key in opts) {
options.push([key, opts[key]]);
}
} else if (!(0, _stcHelper.isArray)(opts[0])) {
options.push(opts.slice(0, 2));
} else {
options = opts.filter(function (opt) {
return (0, _stcHelper.isArray)(opt) && opt.length == 2;
});
}
return options;
};
/**
* run
*/
ReplacePlugin.prototype.run = function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
var content, _iterator, _isArray, _i, _ref2, _ref3, grep, replace, rcontent;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!options) {
options = this.parseConfig(this.options);
}
_context.next = 3;
return this.getContent('utf-8');
case 3:
content = _context.sent;
_iterator = options, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);
case 5:
if (!_isArray) {
_context.next = 11;
break;
}
if (!(_i >= _iterator.length)) {
_context.next = 8;
break;
}
return _context.abrupt('break', 27);
case 8:
_ref2 = _iterator[_i++];
_context.next = 15;
break;
case 11:
_i = _iterator.next();
if (!_i.done) {
_context.next = 14;
break;
}
return _context.abrupt('break', 27);
case 14:
_ref2 = _i.value;
case 15:
_ref3 = _ref2;
grep = _ref3[0];
replace = _ref3[1];
case 18:
if (!true) {
_context.next = 25;
break;
}
rcontent = content.replace(grep, replace);
if (!(rcontent === content)) {
_context.next = 22;
break;
}
return _context.abrupt('break', 25);
case 22:
content = rcontent;
_context.next = 18;
break;
case 25:
_context.next = 5;
break;
case 27:
return _context.abrupt('return', { content: content });
case 28:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function run() {
return _ref.apply(this, arguments);
}
return run;
}();
/**
* update
*/
ReplacePlugin.prototype.update = function update(data) {
this.setContent(data.content);
};
/**
* use cluster
*/
ReplacePlugin.cluster = function cluster() {
return false;
};
/**
* use cache
*/
ReplacePlugin.cache = function cache() {
return false;
};
return ReplacePlugin;
}(_stcPlugin2.default);
exports.default = ReplacePlugin;
//# sourceMappingURL=index.js.map