@catladder/cli 1.143.0 → 1.144.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apps/cli/cli.js +2 -1
- package/dist/apps/cli/cli.js.map +1 -1
- package/dist/apps/cli/commands/project/commandListPods.js +2 -2
- package/dist/apps/cli/commands/project/commandListPods.js.map +1 -1
- package/dist/bundles/catenv/index.js +3 -3
- package/dist/bundles/cli/index.js +16 -16
- package/dist/config/getProjectConfig.d.ts +0 -2
- package/dist/config/getProjectConfig.js +5 -36
- package/dist/config/getProjectConfig.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/boxWithAscii.d.ts +1 -0
- package/dist/utils/boxWithAscii.js +14 -0
- package/dist/utils/boxWithAscii.js.map +1 -0
- package/dist/utils/editAsFile.js +3 -3
- package/dist/utils/editAsFile.js.map +1 -1
- package/dist/utils/files.d.ts +0 -1
- package/dist/utils/files.js +1 -19
- package/dist/utils/files.js.map +1 -1
- package/dist/utils/preferences/index.js +3 -3
- package/dist/utils/preferences/index.js.map +1 -1
- package/package.json +4 -5
- package/src/apps/cli/cli.ts +4 -1
- package/src/apps/cli/commands/project/commandListPods.ts +4 -2
- package/src/config/getProjectConfig.ts +1 -14
- package/src/utils/boxWithAscii.ts +9 -0
- package/src/utils/editAsFile.ts +4 -3
- package/src/utils/files.ts +0 -9
- package/src/utils/preferences/index.ts +4 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const boxWithAsci: (str: string) => string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.boxWithAsci = void 0;
|
|
4
|
+
// thx copilot
|
|
5
|
+
var boxWithAsci = function (str) {
|
|
6
|
+
var length = str.length;
|
|
7
|
+
var box = "╔" + "═".repeat(length + 3) + "╗";
|
|
8
|
+
var empty = "║ " + " ".repeat(length + 1) + " ║";
|
|
9
|
+
var text = "║ " + str + " ║";
|
|
10
|
+
var bottom = "╚" + "═".repeat(length + 3) + "╝";
|
|
11
|
+
return [box, empty, text, empty, bottom].join("\n");
|
|
12
|
+
};
|
|
13
|
+
exports.boxWithAsci = boxWithAsci;
|
|
14
|
+
//# sourceMappingURL=boxWithAscii.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boxWithAscii.js","sourceRoot":"","sources":["../../src/utils/boxWithAscii.ts"],"names":[],"mappings":";;;AAAA,cAAc;AACP,IAAM,WAAW,GAAG,UAAC,GAAW;IACrC,IAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,IAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/C,IAAM,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnD,IAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;IAC/B,IAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC,CAAC;AAPW,QAAA,WAAW,eAOtB"}
|
package/dist/utils/editAsFile.js
CHANGED
|
@@ -41,7 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
exports.__esModule = true;
|
|
42
42
|
exports.editAsFile = void 0;
|
|
43
43
|
var tmp_promise_1 = require("tmp-promise");
|
|
44
|
-
var
|
|
44
|
+
var yaml_1 = require("yaml");
|
|
45
45
|
var fs_extra_1 = require("fs-extra");
|
|
46
46
|
var getEditor_1 = __importDefault(require("./getEditor"));
|
|
47
47
|
var editAsFile = function (inObject, preamble) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -52,7 +52,7 @@ var editAsFile = function (inObject, preamble) { return __awaiter(void 0, void 0
|
|
|
52
52
|
fullPreamble = preamble
|
|
53
53
|
? "#\n# ".concat(preamble.split("\n").join("\n# "), "\n#\n\n")
|
|
54
54
|
: "\n";
|
|
55
|
-
asString = fullPreamble + (0,
|
|
55
|
+
asString = fullPreamble + (0, yaml_1.stringify)(inObject, { aliasDuplicateObjects: false });
|
|
56
56
|
return [4 /*yield*/, (0, tmp_promise_1.withFile)(function (_a) {
|
|
57
57
|
var tmpFilePath = _a.path;
|
|
58
58
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -66,7 +66,7 @@ var editAsFile = function (inObject, preamble) { return __awaiter(void 0, void 0
|
|
|
66
66
|
case 2: return [4 /*yield*/, (_c.sent()).open(tmpFilePath)];
|
|
67
67
|
case 3:
|
|
68
68
|
_c.sent();
|
|
69
|
-
_b =
|
|
69
|
+
_b = yaml_1.parse;
|
|
70
70
|
return [4 /*yield*/, (0, fs_extra_1.readFile)(tmpFilePath)];
|
|
71
71
|
case 4:
|
|
72
72
|
newContent = _b.apply(void 0, [(_c.sent()).toString("utf-8")]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editAsFile.js","sourceRoot":"","sources":["../../src/utils/editAsFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"editAsFile.js","sourceRoot":"","sources":["../../src/utils/editAsFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuC;AACvC,6BAAwC;AAExC,qCAA+C;AAC/C,0DAAoC;AAE7B,IAAM,UAAU,GAAG,UACxB,QAAW,EACX,QAAiB;;;;;gBAEX,YAAY,GAAG,QAAQ;oBAC3B,CAAC,CAAC,eACF,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAGpC;oBACG,CAAC,CAAC,IAAI,CAAC;gBACH,QAAQ,GACZ,YAAY,GAAG,IAAA,gBAAS,EAAC,QAAQ,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;gBAGvE,qBAAM,IAAA,sBAAQ,EACZ,UAAO,EAAqB;4BAAb,WAAW,UAAA;;;;;4CACxB,qBAAM,IAAA,oBAAS,EAAC,WAAW,EAAE,QAAQ,CAAC,EAAA;;wCAAtC,SAAsC,CAAC;wCAChC,qBAAM,IAAA,sBAAS,GAAE,EAAA;4CAAxB,qBAAM,CAAC,SAAiB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAA;;wCAA3C,SAA2C,CAAC;wCAC/B,KAAA,YAAK,CAAA;wCAAE,qBAAM,IAAA,mBAAQ,EAAC,WAAW,CAAC,EAAA;;wCAA/C,UAAU,GAAG,kBAAM,CAAC,SAA2B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAM,CAAC;;;;;qBAC1E,EACD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,EAAA;;gBAPD,SAOC,CAAC;gBAEF,sBAAO,UAAU,EAAC;;;KACnB,CAAC;AAzBW,QAAA,UAAU,cAyBrB"}
|
package/dist/utils/files.d.ts
CHANGED
package/dist/utils/files.js
CHANGED
|
@@ -39,9 +39,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
exports.__esModule = true;
|
|
42
|
-
exports.
|
|
42
|
+
exports.readFileOrError = void 0;
|
|
43
43
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
44
|
-
var js_yaml_1 = __importDefault(require("js-yaml"));
|
|
45
44
|
var readFile = function (file) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
46
45
|
return [2 /*return*/, fs_extra_1["default"].readFile(file, { encoding: "utf-8" })];
|
|
47
46
|
}); }); };
|
|
@@ -63,21 +62,4 @@ var readFileOrError = function (filePath) { return __awaiter(void 0, void 0, voi
|
|
|
63
62
|
});
|
|
64
63
|
}); };
|
|
65
64
|
exports.readFileOrError = readFileOrError;
|
|
66
|
-
var readYaml = function (filename) { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
|
-
var _a, _b, e_2;
|
|
68
|
-
return __generator(this, function (_c) {
|
|
69
|
-
switch (_c.label) {
|
|
70
|
-
case 0:
|
|
71
|
-
_c.trys.push([0, 2, , 3]);
|
|
72
|
-
_b = (_a = js_yaml_1["default"]).load;
|
|
73
|
-
return [4 /*yield*/, readFile(filename)];
|
|
74
|
-
case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];
|
|
75
|
-
case 2:
|
|
76
|
-
e_2 = _c.sent();
|
|
77
|
-
return [2 /*return*/, null];
|
|
78
|
-
case 3: return [2 /*return*/];
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
}); };
|
|
82
|
-
exports.readYaml = readYaml;
|
|
83
65
|
//# sourceMappingURL=files.js.map
|
package/dist/utils/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0B;
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/utils/files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0B;AAE1B,IAAM,QAAQ,GAAG,UAAO,IAAY;IAClC,sBAAA,qBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAA;SAAA,CAAC;AAEpC,IAAM,eAAe,GAAG,UAAO,QAAgB;;;;;;gBAErC,qBAAM,QAAQ,CAAC,QAAQ,CAAC,EAAA;;gBAA/B,IAAI,GAAG,SAAwB;gBACrC,sBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC;;;gBAEpB,sBAAO,CAAC,GAAC,CAAC,EAAC;;;;KAEd,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
|
|
@@ -53,7 +53,7 @@ exports.__esModule = true;
|
|
|
53
53
|
exports.setPreference = exports.getPreference = exports.hasPreference = void 0;
|
|
54
54
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
55
55
|
var os_1 = require("os");
|
|
56
|
-
var
|
|
56
|
+
var yaml_1 = require("yaml");
|
|
57
57
|
var directory = "".concat((0, os_1.homedir)(), "/.catladder");
|
|
58
58
|
var file = "".concat(directory, "/preferences.yml");
|
|
59
59
|
var getPreferences = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -69,7 +69,7 @@ var getPreferences = function () { return __awaiter(void 0, void 0, void 0, func
|
|
|
69
69
|
_c.sent();
|
|
70
70
|
_c.label = 3;
|
|
71
71
|
case 3:
|
|
72
|
-
_a =
|
|
72
|
+
_a = yaml_1.parse;
|
|
73
73
|
return [4 /*yield*/, fs_extra_1["default"].readFile(file, { encoding: "utf-8" })];
|
|
74
74
|
case 4: return [2 /*return*/, ((_b = _a.apply(void 0, [_c.sent()])) !== null && _b !== void 0 ? _b : {})];
|
|
75
75
|
}
|
|
@@ -108,7 +108,7 @@ var setPreference = function (key, value) { return __awaiter(void 0, void 0, voi
|
|
|
108
108
|
case 1:
|
|
109
109
|
preferences = _b.sent();
|
|
110
110
|
newPreferences = __assign(__assign({}, preferences), (_a = {}, _a[key] = value, _a));
|
|
111
|
-
return [4 /*yield*/, fs_extra_1["default"].writeFile(file, (0,
|
|
111
|
+
return [4 /*yield*/, fs_extra_1["default"].writeFile(file, (0, yaml_1.stringify)(newPreferences))];
|
|
112
112
|
case 2:
|
|
113
113
|
_b.sent();
|
|
114
114
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/preferences/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0B;AAC1B,yBAA6B;AAE7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/preferences/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA0B;AAC1B,yBAA6B;AAE7B,6BAAwC;AACxC,IAAM,SAAS,GAAG,UAAG,IAAA,YAAO,GAAE,gBAAa,CAAC;AAC5C,IAAM,IAAI,GAAG,UAAG,SAAS,qBAAkB,CAAC;AAE5C,IAAM,cAAc,GAAG;;;;;oBACf,qBAAM,qBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAA;;qBAA3B,CAAC,CAAC,SAAyB,CAAC,EAA5B,wBAA4B;gBAC9B,qBAAM,qBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAA;;gBAAzB,SAAyB,CAAC;;;gBAEpB,KAAA,YAAK,CAAA;gBAAC,qBAAM,qBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAA;oBAA5D,sBAAO,CAAC,MAAA,kBAAM,SAA8C,EAAC,mCAC3D,EAAE,CAA2B,EAAC;;;KACjC,CAAC;AAEK,IAAM,aAAa,GAAG,UAAO,GAAW;;;;oBACzB,qBAAM,cAAc,EAAE,EAAA;;gBAApC,WAAW,GAAG,SAAsB;gBAC1C,sBAAO,GAAG,IAAI,WAAW,EAAC;;;KAC3B,CAAC;AAHW,QAAA,aAAa,iBAGxB;AACK,IAAM,aAAa,GAAG,UAAO,GAAW;;;;oBACzB,qBAAM,cAAc,EAAE,EAAA;;gBAApC,WAAW,GAAG,SAAsB;gBAC1C,sBAAO,WAAW,CAAC,GAAG,CAAC,EAAC;;;KACzB,CAAC;AAHW,QAAA,aAAa,iBAGxB;AAEK,IAAM,aAAa,GAAG,UAAO,GAAW,EAAE,KAAsB;;;;;oBACjD,qBAAM,cAAc,EAAE,EAAA;;gBAApC,WAAW,GAAG,SAAsB;gBAEpC,cAAc,yBACf,WAAW,gBACb,GAAG,IAAG,KAAK,MACb,CAAC;gBAEF,qBAAM,qBAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAA,gBAAS,EAAC,cAAc,CAAC,CAAC,EAAA;;gBAAnD,SAAmD,CAAC;;;;KACrD,CAAC;AATW,QAAA,aAAa,iBASxB"}
|
package/package.json
CHANGED
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
}
|
|
53
53
|
],
|
|
54
54
|
"license": "MIT",
|
|
55
|
-
"version": "1.
|
|
55
|
+
"version": "1.144.1",
|
|
56
56
|
"scripts": {
|
|
57
57
|
"lint": "eslint \"src/**/*.ts\"",
|
|
58
58
|
"lint:fix": "eslint \"src/**/*.ts\" --fix",
|
|
@@ -74,13 +74,12 @@
|
|
|
74
74
|
"ts-node": "^10.9.1"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@catladder/pipeline": "1.
|
|
77
|
+
"@catladder/pipeline": "1.144.1",
|
|
78
78
|
"@gitbeaker/rest": "^39.28.0",
|
|
79
79
|
"@kubernetes/client-node": "^0.16.2",
|
|
80
80
|
"@tsconfig/node14": "^1.0.1",
|
|
81
81
|
"@types/common-tags": "^1.8.0",
|
|
82
82
|
"@types/fs-extra": "^5.0.4",
|
|
83
|
-
"@types/js-yaml": "^4.0.5",
|
|
84
83
|
"@types/lodash": "^4.14.185",
|
|
85
84
|
"@types/memoizee": "^0.4.2",
|
|
86
85
|
"@types/node-fetch": "^2.1.4",
|
|
@@ -99,7 +98,6 @@
|
|
|
99
98
|
"eslint": "^8.7.0",
|
|
100
99
|
"fs-extra": "^7.0.1",
|
|
101
100
|
"gitlab": "^4.4.1",
|
|
102
|
-
"js-yaml": "^4.1.0",
|
|
103
101
|
"lodash": "^4.17.21",
|
|
104
102
|
"memoizee": "^0.4.14",
|
|
105
103
|
"node-fetch": "^2.3.0",
|
|
@@ -108,6 +106,7 @@
|
|
|
108
106
|
"tmp-promise": "^2.0.2",
|
|
109
107
|
"ts-results-es": "^4.1.0-alpha.1",
|
|
110
108
|
"typescript": "^4.5.4",
|
|
111
|
-
"vorpal": "^1.12.0"
|
|
109
|
+
"vorpal": "^1.12.0",
|
|
110
|
+
"yaml": "^2.4.5"
|
|
112
111
|
}
|
|
113
112
|
}
|
package/src/apps/cli/cli.ts
CHANGED
|
@@ -10,11 +10,14 @@ import theStuffThatReallyMatters from "./commands/theStuffThatReallyMatters";
|
|
|
10
10
|
|
|
11
11
|
import { verify } from "./verify";
|
|
12
12
|
import { showProjectBanner } from "./commands/project/utils/showProjectBanner";
|
|
13
|
+
import { boxWithAsci } from "../../utils/boxWithAscii";
|
|
13
14
|
|
|
14
15
|
export default async () => {
|
|
15
16
|
const vorpal = new Vorpal();
|
|
16
17
|
|
|
17
|
-
const welcomeMessage =
|
|
18
|
+
const welcomeMessage = boxWithAsci(
|
|
19
|
+
`catladder 😻 v${packageInfos.version} ✨`
|
|
20
|
+
);
|
|
18
21
|
|
|
19
22
|
vorpal
|
|
20
23
|
.delimiter("catladder $") // emoji messes with cursor :-( https://github.com/dthree/vorpal/issues/332
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { stringify } from "yaml";
|
|
2
2
|
import { pick } from "lodash";
|
|
3
3
|
import type Vorpal from "vorpal";
|
|
4
4
|
import { getProjectPods } from "../../../../kubernetes";
|
|
@@ -13,6 +13,8 @@ export default async (vorpal: Vorpal) =>
|
|
|
13
13
|
await ensureCluster.call(this, envComponent);
|
|
14
14
|
const pods = await getProjectPods(envComponent);
|
|
15
15
|
this.log(
|
|
16
|
-
|
|
16
|
+
stringify(
|
|
17
|
+
pods.map((p) => pick(p, ["metadata.name", "status.startTime"]))
|
|
18
|
+
)
|
|
17
19
|
);
|
|
18
20
|
});
|
|
@@ -11,7 +11,7 @@ import type { CommandInstance } from "vorpal";
|
|
|
11
11
|
import { getAllVariables, getVariableValueByRawName } from "../utils/gitlab";
|
|
12
12
|
|
|
13
13
|
import { getGitRoot } from "../utils/projects";
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
import { watch } from "fs";
|
|
16
16
|
|
|
17
17
|
export { parseChoice } from "./parseChoice";
|
|
@@ -42,19 +42,6 @@ export const getProjectConfig = async () => {
|
|
|
42
42
|
return currentConfig as Config;
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
export const getGitlabCiFilePath = async () => {
|
|
46
|
-
const gitRoot = await getGitRoot();
|
|
47
|
-
return gitRoot + "/.gitlab-ci.yml";
|
|
48
|
-
};
|
|
49
|
-
export const getGitlabCi = async <T = Record<string, any>>() => {
|
|
50
|
-
try {
|
|
51
|
-
return readYaml(await getGitlabCiFilePath()) as Promise<T>;
|
|
52
|
-
} catch (e) {
|
|
53
|
-
// ignore
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
|
|
58
45
|
export const getProjectComponents = async () => {
|
|
59
46
|
const config = await getProjectConfig();
|
|
60
47
|
if (!config) return [];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// thx copilot
|
|
2
|
+
export const boxWithAsci = (str: string) => {
|
|
3
|
+
const length = str.length;
|
|
4
|
+
const box = "╔" + "═".repeat(length + 3) + "╗";
|
|
5
|
+
const empty = "║ " + " ".repeat(length + 1) + " ║";
|
|
6
|
+
const text = "║ " + str + " ║";
|
|
7
|
+
const bottom = "╚" + "═".repeat(length + 3) + "╝";
|
|
8
|
+
return [box, empty, text, empty, bottom].join("\n");
|
|
9
|
+
};
|
package/src/utils/editAsFile.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { withFile } from "tmp-promise";
|
|
2
|
-
import {
|
|
2
|
+
import { parse, stringify } from "yaml";
|
|
3
3
|
|
|
4
4
|
import { readFile, writeFile } from "fs-extra";
|
|
5
5
|
import getEditor from "./getEditor";
|
|
@@ -15,14 +15,15 @@ export const editAsFile = async <T>(
|
|
|
15
15
|
|
|
16
16
|
`
|
|
17
17
|
: "\n";
|
|
18
|
-
const asString =
|
|
18
|
+
const asString =
|
|
19
|
+
fullPreamble + stringify(inObject, { aliasDuplicateObjects: false });
|
|
19
20
|
let newContent: T;
|
|
20
21
|
|
|
21
22
|
await withFile(
|
|
22
23
|
async ({ path: tmpFilePath }) => {
|
|
23
24
|
await writeFile(tmpFilePath, asString);
|
|
24
25
|
await (await getEditor()).open(tmpFilePath);
|
|
25
|
-
newContent =
|
|
26
|
+
newContent = parse((await readFile(tmpFilePath)).toString("utf-8")) as T;
|
|
26
27
|
},
|
|
27
28
|
{ postfix: ".yml" }
|
|
28
29
|
);
|
package/src/utils/files.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import fs from "fs-extra";
|
|
2
|
-
import yaml from "js-yaml";
|
|
3
2
|
|
|
4
3
|
const readFile = async (file: string) =>
|
|
5
4
|
fs.readFile(file, { encoding: "utf-8" });
|
|
@@ -12,11 +11,3 @@ export const readFileOrError = async (filePath: string) => {
|
|
|
12
11
|
return [e];
|
|
13
12
|
}
|
|
14
13
|
};
|
|
15
|
-
|
|
16
|
-
export const readYaml = async <T = Record<string, any>>(filename: string) => {
|
|
17
|
-
try {
|
|
18
|
-
return yaml.load(await readFile(filename)) as T;
|
|
19
|
-
} catch (e) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "fs-extra";
|
|
2
2
|
import { homedir } from "os";
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { parse, stringify } from "yaml";
|
|
5
5
|
const directory = `${homedir()}/.catladder`;
|
|
6
6
|
const file = `${directory}/preferences.yml`;
|
|
7
7
|
|
|
@@ -9,10 +9,8 @@ const getPreferences = async () => {
|
|
|
9
9
|
if (!(await fs.pathExists(file))) {
|
|
10
10
|
await fs.createFile(file);
|
|
11
11
|
}
|
|
12
|
-
return (
|
|
13
|
-
string,
|
|
14
|
-
string
|
|
15
|
-
>;
|
|
12
|
+
return (parse(await fs.readFile(file, { encoding: "utf-8" })) ??
|
|
13
|
+
{}) as Record<string, string>;
|
|
16
14
|
};
|
|
17
15
|
|
|
18
16
|
export const hasPreference = async (key: string) => {
|
|
@@ -32,5 +30,5 @@ export const setPreference = async (key: string, value: string | number) => {
|
|
|
32
30
|
[key]: value,
|
|
33
31
|
};
|
|
34
32
|
|
|
35
|
-
await fs.writeFile(file,
|
|
33
|
+
await fs.writeFile(file, stringify(newPreferences));
|
|
36
34
|
};
|