s2s
Version:
Source To Source
57 lines (45 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handlePlugin = handlePlugin;
var _path = _interopRequireDefault(require("path"));
var _fs = _interopRequireDefault(require("fs"));
var _utils = require("../utils");
var _hooks = _interopRequireDefault(require("../hooks"));
var _reporters = require("../reporters");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function handlePlugin(handler, {
eventPath,
plugin,
hooks = []
}) {
const filename = (0, _utils.resolveInputPath)(plugin.input, eventPath);
const content = _fs.default.readFileSync(filename, 'utf8');
const handlerResult = handler(content, {
eventPath,
plugin,
filename
});
const {
code,
meta
} = handlerResult && typeof handlerResult === 'string' ? {
code: handlerResult,
meta: {
handlerName: 'S2S'
}
} : handlerResult;
if (!code && code === '') {
return;
}
const outputFilename = (0, _utils.resolveInputPath)(plugin.output, eventPath);
const result = (0, _hooks.default)(code, outputFilename, hooks);
const outputPath = plugin.output ? (0, _utils.getOutputPath)(plugin.output.replace('[name]', _path.default.parse(eventPath).name), eventPath) : eventPath;
(0, _utils.writeFileSync)(outputPath, result);
const {
handlerName
} = meta;
const outputPrefix = handlerName + (meta.pluginName && meta.pluginName !== '' ? `:${meta.pluginName}` : '');
console.log((0, _reporters.formatText)(outputPrefix, (0, _utils.relativeFromCwd)(eventPath), outputPath));
}