UNPKG

4.33 kBJavaScriptView Raw
1"use strict";
2var file = require("./file.utils");
3var utils = require("./task.utils");
4var file_utils_1 = require("./file.utils");
5var reporter_resolve_1 = require("./reporter.resolve");
6var Rx = require("rx");
7var path_1 = require("path");
8var config_1 = require("./config");
9function createHashes(tasks, trigger) {
10 var ifLookups = utils.concatProps(tasks, [], "ifChanged");
11 if (!ifLookups.length)
12 return Rx.Observable.empty();
13 var existingFile = file.readOrCreateJsonFile(path_1.join(".crossbow", "history.json"), trigger.config.cwd);
14 if (!existingFile.data.hashes) {
15 existingFile.data.hashes = [];
16 }
17 return file.hashItems(ifLookups, trigger.config.cwd, existingFile.data.hashes)
18 .do(function (hashResults) {
19 // Write the hashes to disk
20 trigger.config.signalObserver.onNext({
21 type: config_1.SignalTypes.FileWrite,
22 data: {
23 file: existingFile,
24 content: JSON.stringify({ hashes: hashResults.output }, null, 2)
25 }
26 });
27 })
28 .map(function (hashResults) {
29 // Send in the marked hashes to the run context
30 // so that matching tasks can be ignored
31 return {
32 "ifChanged": hashResults.markedHashes
33 };
34 })
35 .take(1)
36 .catch(function (e) {
37 if (e.code === "ENOTDIR")
38 e.type = file_utils_1.HashDirErrorTypes.HashNotADirectory;
39 if (e.code === "ENOENT")
40 e.type = file_utils_1.HashDirErrorTypes.HashPathNotFound;
41 trigger.reporter({
42 type: reporter_resolve_1.ReportTypes.HashDirError,
43 data: {
44 error: e,
45 cwd: trigger.config.cwd
46 }
47 });
48 return Rx.Observable.just({});
49 });
50}
51exports.createHashes = createHashes;
52//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5ydW4ucHJlLWV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLnJ1bi5wcmUtZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFZLElBQUksV0FBTSxjQUFjLENBQUMsQ0FBQTtBQUNyQyxJQUFZLEtBQUssV0FBTSxjQUFjLENBQUMsQ0FBQTtBQUN0QywyQkFBZ0MsY0FBYyxDQUFDLENBQUE7QUFDL0MsaUNBQThDLG9CQUFvQixDQUFDLENBQUE7QUFDbkUsSUFBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7QUFDMUIscUJBQW1CLE1BQU0sQ0FBQyxDQUFBO0FBQzFCLHVCQUEwQixVQUFVLENBQUMsQ0FBQTtBQUVyQyxzQkFBNkIsS0FBYSxFQUFFLE9BQXVCO0lBRS9ELElBQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU1RCxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVwRCxJQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXRHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzVCLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3pFLEVBQUUsQ0FBQyxVQUFDLFdBQThCO1FBQy9CLDJCQUEyQjtRQUMzQixPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDakMsSUFBSSxFQUFFLG9CQUFXLENBQUMsU0FBUztZQUMzQixJQUFJLEVBQUU7Z0JBQ0YsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2pFO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO1NBQ0QsR0FBRyxDQUFDLFVBQVUsV0FBOEI7UUFDekMsK0NBQStDO1FBQy9DLHdDQUF3QztRQUN4QyxNQUFNLENBQUM7WUFDSCxXQUFXLEVBQUUsV0FBVyxDQUFDLFlBQVk7U0FDeEMsQ0FBQztJQUNOLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxDQUFDLENBQUM7U0FDUCxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRWQsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7WUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLDhCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO1lBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyw4QkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUV0RSxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2IsSUFBSSxFQUFFLDhCQUFXLENBQUMsWUFBWTtZQUM5QixJQUFJLEVBQUU7Z0JBQ0YsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRzthQUNKO1NBQzFCLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUM7QUE5Q2Usb0JBQVksZUE4QzNCLENBQUEifQ==
\No newline at end of file