dgeni
Version:
Flexible JavaScript documentation generator used by both AngularJS and Angular
54 lines • 1.78 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.docDiffLoggerPackage = void 0;
var clonedeep_1 = __importDefault(require("clonedeep"));
var objectdiff_1 = require("objectdiff");
var Package_1 = require("../Package");
var firstDocs, startDocs, endDocs, lastDocs;
var options = {
start: null,
end: null
};
exports.docDiffLoggerPackage = new Package_1.Package('docDiffLogger')
.factory('docDiffLoggerOptions', function () {
return options;
})
.eventHandler('processorStart', function () {
return function capturePreviousDocs(event, processor, docs) {
firstDocs = firstDocs || clonedeep_1.default(docs);
if (options.start === processor.name) {
startDocs = clonedeep_1.default(docs);
}
};
})
.eventHandler('processorEnd', function (log) {
return function (_event, processor, docs) {
lastDocs = docs;
if (options.end === processor.name) {
endDocs = clonedeep_1.default(docs);
logDiff(log);
}
};
})
.eventHandler('generationEnd', function (log) {
return function () {
if (options.start && !startDocs) {
throw new Error('docDiffLogger: missing start processor');
}
if (options.end && !endDocs) {
throw new Error('docDiffLogger: missing end processor');
}
if (!options.end) {
logDiff(log);
}
};
});
function logDiff(log) {
var changes = objectdiff_1.diff(startDocs || firstDocs, endDocs || lastDocs);
log.info(options);
log.info(changes);
}
//# sourceMappingURL=docDiffLogger.js.map