UNPKG

1.68 kBJavaScriptView Raw
1"use strict";
2/*
3 * Copyright © 2019 Atomist, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17Object.defineProperty(exports, "__esModule", { value: true });
18exports.appendOrCreateFileContent = void 0;
19/**
20 * Return an editor to append the given content to the end of the file at the specified path,
21 * creating the file with only this content if it doesn't exist.
22 * Adds no whitespace.
23 * @param command command
24 * @return {SimpleProjectEditor}
25 */
26function appendOrCreateFileContent(command) {
27 const commandToUse = Object.assign({ leaveAlone: content => content.includes(command.toAppend) }, command);
28 return async (p) => {
29 const target = await p.getFile(commandToUse.path);
30 if (!!target) {
31 const oldContent = await target.getContent();
32 if (!commandToUse.leaveAlone(oldContent)) {
33 await target.setContent(oldContent + commandToUse.toAppend);
34 }
35 }
36 else {
37 await p.addFile(commandToUse.path, commandToUse.toAppend);
38 }
39 return p;
40 };
41}
42exports.appendOrCreateFileContent = appendOrCreateFileContent;
43//# sourceMappingURL=appendOrCreate.js.map
\No newline at end of file