UNPKG

1.13 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3/**
4 * Pass through validating something. Used to assert invariants in editors.
5 * Reject if invariant isn't satisfied.
6 * @param {Project} p
7 * @param {string} path
8 * @param assertion to satisfy invariant
9 * @param err custom error message, if supplied
10 * @return {Promise<Project>}
11 */
12function assertContent(p, path, assertion, err) {
13 return p.findFile(path)
14 .then(f => f.getContent()
15 .then(content => assertion(content) ?
16 Promise.resolve(p) :
17 Promise.reject(err ? err : `Assertion failed about project ${p.name}: ${assertion}`)));
18}
19exports.assertContent = assertContent;
20function assertContentIncludes(p, path, what) {
21 return assertContent(p, path, content => content.includes(what), `File at [${path}] does not contain [${what}]`);
22}
23exports.assertContentIncludes = assertContentIncludes;
24function assertFileExists(p, path) {
25 return assertContent(p, path, content => true, `File at [${path}] does not exist`);
26}
27exports.assertFileExists = assertFileExists;
28//# sourceMappingURL=projectInvariants.js.map
\No newline at end of file