@atomist/automation-client
Version:
Atomist API for software low-level client
28 lines • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Pass through validating something. Used to assert invariants in editors.
* Reject if invariant isn't satisfied.
* @param {Project} p
* @param {string} path
* @param assertion to satisfy invariant
* @param err custom error message, if supplied
* @return {Promise<Project>}
*/
function assertContent(p, path, assertion, err) {
return p.findFile(path)
.then(f => f.getContent()
.then(content => assertion(content) ?
Promise.resolve(p) :
Promise.reject(err ? err : `Assertion failed about project ${p.name}: ${assertion}`)));
}
exports.assertContent = assertContent;
function assertContentIncludes(p, path, what) {
return assertContent(p, path, content => content.includes(what), `File at [${path}] does not contain [${what}]`);
}
exports.assertContentIncludes = assertContentIncludes;
function assertFileExists(p, path) {
return assertContent(p, path, content => true, `File at [${path}] does not exist`);
}
exports.assertFileExists = assertFileExists;
//# sourceMappingURL=projectInvariants.js.map