@catladder/cli 0.0.0-refactor-cli-add-improved-git-utilities-224e6ee7 → 0.0.0-refactor-cli-add-improved-git-utilities-583a3a54

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.
@@ -650,11 +650,13 @@ exports.upsertAllVariables = upsertAllVariables;
650
650
 
651
651
  Object.defineProperty(exports, "__esModule", ({ value: true }));
652
652
  exports.setPreference = exports.getPreference = exports.hasPreference = exports.getPreferences = void 0;
653
- const fs_extra_1 = __nccwpck_require__(5501);
653
+ const promises_1 = __nccwpck_require__(3292);
654
+ const fs_1 = __nccwpck_require__(7147);
654
655
  const os_1 = __nccwpck_require__(2037);
655
656
  const yaml_1 = __nccwpck_require__(8033);
656
- const directory = `${(0, os_1.homedir)()}/.catladder`;
657
- const file = `${directory}/preferences.yml`;
657
+ const path_1 = __nccwpck_require__(1017);
658
+ const directory = (0, path_1.join)((0, os_1.homedir)(), ".catladder");
659
+ const file = (0, path_1.join)(directory, "preferences.yml");
658
660
  const perfKeys = [
659
661
  "gitlab-personal-access-token",
660
662
  "googleAuthUserNumber",
@@ -665,14 +667,26 @@ const fallbackValues = {
665
667
  gitlabTokens: {},
666
668
  googleAuthUserNumber: null,
667
669
  };
670
+ const perferencesWithParsed = (parsed) => perfKeys.reduce((acc, key) => { var _a; return Object.assign(acc, { [key]: (_a = parsed[key]) !== null && _a !== void 0 ? _a : fallbackValues[key] }); }, {});
671
+ const encoding = "utf-8";
672
+ const readPreferences = () => (0, promises_1.readFile)(file, { encoding });
673
+ const writePreferences = (preferences) => (0, promises_1.writeFile)(file, (0, yaml_1.stringify)(preferences), { encoding, mode: 0o600 });
674
+ const ensureDir = async () => (0, fs_1.existsSync)(directory)
675
+ ? directory
676
+ : (0, promises_1.mkdir)(directory, { recursive: true, mode: 0o700 });
677
+ const ensureFile = async () => {
678
+ if ((0, fs_1.existsSync)(file)) {
679
+ return file;
680
+ }
681
+ await ensureDir();
682
+ return writePreferences(perferencesWithParsed({}));
683
+ };
668
684
  const getPreferences = async () => {
669
685
  var _a;
670
- if (!(await (0, fs_extra_1.pathExists)(file))) {
671
- await (0, fs_extra_1.createFile)(file);
672
- }
673
- const fileString = await (0, fs_extra_1.readFile)(file, { encoding: "utf-8" });
686
+ await ensureFile();
687
+ const fileString = await readPreferences();
674
688
  const fileParsed = (_a = (0, yaml_1.parse)(fileString || "---\nnull")) !== null && _a !== void 0 ? _a : {};
675
- return perfKeys.reduce((acc, key) => { var _a; return Object.assign(acc, { [key]: (_a = fileParsed[key]) !== null && _a !== void 0 ? _a : fallbackValues[key] }); }, {});
689
+ return perferencesWithParsed(fileParsed);
676
690
  };
677
691
  exports.getPreferences = getPreferences;
678
692
  const hasPreference = async (key) => {
@@ -690,11 +704,7 @@ const getPreference = async (key) => {
690
704
  exports.getPreference = getPreference;
691
705
  const setPreference = async (key, value) => {
692
706
  const preferences = await (0, exports.getPreferences)();
693
- const newPreferences = {
694
- ...preferences,
695
- [key]: value,
696
- };
697
- await (0, fs_extra_1.writeFile)(file, (0, yaml_1.stringify)(newPreferences));
707
+ return writePreferences({ ...preferences, [key]: value });
698
708
  };
699
709
  exports.setPreference = setPreference;
700
710
  //# sourceMappingURL=preferences.js.map
@@ -3643,11 +3643,13 @@ exports.stopAllPortForwards = stopAllPortForwards;
3643
3643
 
3644
3644
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3645
3645
  exports.setPreference = exports.getPreference = exports.hasPreference = exports.getPreferences = void 0;
3646
- const fs_extra_1 = __nccwpck_require__(85501);
3646
+ const promises_1 = __nccwpck_require__(73292);
3647
+ const fs_1 = __nccwpck_require__(57147);
3647
3648
  const os_1 = __nccwpck_require__(22037);
3648
3649
  const yaml_1 = __nccwpck_require__(68033);
3649
- const directory = `${(0, os_1.homedir)()}/.catladder`;
3650
- const file = `${directory}/preferences.yml`;
3650
+ const path_1 = __nccwpck_require__(71017);
3651
+ const directory = (0, path_1.join)((0, os_1.homedir)(), ".catladder");
3652
+ const file = (0, path_1.join)(directory, "preferences.yml");
3651
3653
  const perfKeys = [
3652
3654
  "gitlab-personal-access-token",
3653
3655
  "googleAuthUserNumber",
@@ -3658,14 +3660,26 @@ const fallbackValues = {
3658
3660
  gitlabTokens: {},
3659
3661
  googleAuthUserNumber: null,
3660
3662
  };
3663
+ const perferencesWithParsed = (parsed) => perfKeys.reduce((acc, key) => { var _a; return Object.assign(acc, { [key]: (_a = parsed[key]) !== null && _a !== void 0 ? _a : fallbackValues[key] }); }, {});
3664
+ const encoding = "utf-8";
3665
+ const readPreferences = () => (0, promises_1.readFile)(file, { encoding });
3666
+ const writePreferences = (preferences) => (0, promises_1.writeFile)(file, (0, yaml_1.stringify)(preferences), { encoding, mode: 0o600 });
3667
+ const ensureDir = async () => (0, fs_1.existsSync)(directory)
3668
+ ? directory
3669
+ : (0, promises_1.mkdir)(directory, { recursive: true, mode: 0o700 });
3670
+ const ensureFile = async () => {
3671
+ if ((0, fs_1.existsSync)(file)) {
3672
+ return file;
3673
+ }
3674
+ await ensureDir();
3675
+ return writePreferences(perferencesWithParsed({}));
3676
+ };
3661
3677
  const getPreferences = async () => {
3662
3678
  var _a;
3663
- if (!(await (0, fs_extra_1.pathExists)(file))) {
3664
- await (0, fs_extra_1.createFile)(file);
3665
- }
3666
- const fileString = await (0, fs_extra_1.readFile)(file, { encoding: "utf-8" });
3679
+ await ensureFile();
3680
+ const fileString = await readPreferences();
3667
3681
  const fileParsed = (_a = (0, yaml_1.parse)(fileString || "---\nnull")) !== null && _a !== void 0 ? _a : {};
3668
- return perfKeys.reduce((acc, key) => { var _a; return Object.assign(acc, { [key]: (_a = fileParsed[key]) !== null && _a !== void 0 ? _a : fallbackValues[key] }); }, {});
3682
+ return perferencesWithParsed(fileParsed);
3669
3683
  };
3670
3684
  exports.getPreferences = getPreferences;
3671
3685
  const hasPreference = async (key) => {
@@ -3683,11 +3697,7 @@ const getPreference = async (key) => {
3683
3697
  exports.getPreference = getPreference;
3684
3698
  const setPreference = async (key, value) => {
3685
3699
  const preferences = await (0, exports.getPreferences)();
3686
- const newPreferences = {
3687
- ...preferences,
3688
- [key]: value,
3689
- };
3690
- await (0, fs_extra_1.writeFile)(file, (0, yaml_1.stringify)(newPreferences));
3700
+ return writePreferences({ ...preferences, [key]: value });
3691
3701
  };
3692
3702
  exports.setPreference = setPreference;
3693
3703
  //# sourceMappingURL=preferences.js.map
@@ -13,7 +13,7 @@ const gitlabApiClient = async ({ gitlabHost, } = {}) => {
13
13
  }
14
14
  return new rest_1.Gitlab({
15
15
  token,
16
- host: gitRemoteHost,
16
+ host: `https://${gitRemoteHost}`,
17
17
  });
18
18
  };
19
19
  exports.gitlabApiClient = gitlabApiClient;
@@ -1 +1 @@
1
- {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../../src/gitlab/apiClient.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,+CAA+C;AAExC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,UAAU,MAGR,EAAE,EAAE,EAAE;IACR,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,4BAAc,EAAC,UAAU,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,aAAM,CAAC;QAChB,KAAK;QACL,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,eAAe,mBAgB1B"}
1
+ {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../../src/gitlab/apiClient.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,+CAA+C;AAExC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,UAAU,MAGR,EAAE,EAAE,EAAE;IACR,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,4BAAc,EAAC,UAAU,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,aAAM,CAAC;QAChB,KAAK;QACL,IAAI,EAAE,WAAW,aAAa,EAAE;KACjC,CAAC,CAAC;AACL,CAAC,CAAC;AAhBW,QAAA,eAAe,mBAgB1B"}
@@ -0,0 +1,3 @@
1
+ import type { ProjectSchema } from "@gitbeaker/rest";
2
+ export declare const getGitlabProjectInfo: () => Promise<ProjectSchema>;
3
+ export declare const getGitlabProjectId: () => Promise<number>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGitlabProjectId = exports.getGitlabProjectInfo = void 0;
4
+ const getGitRemoteHostAndPath_1 = require("../git/getGitRemoteHostAndPath");
5
+ const apiClient_1 = require("./apiClient");
6
+ const projectPreferences_1 = require("../utils/projectPreferences");
7
+ const getGitlabProjectInfo = async () => {
8
+ const api = await (0, apiClient_1.gitlabApiClient)();
9
+ const { gitRemotePath } = await (0, getGitRemoteHostAndPath_1.getGitRemoteHostAndPath)();
10
+ const projectInfo = await api.Projects.show(gitRemotePath);
11
+ // write unawaited intentionally
12
+ (0, projectPreferences_1.upsertProjectPerferences)({ gitlabProjectId: projectInfo.id });
13
+ return projectInfo;
14
+ };
15
+ exports.getGitlabProjectInfo = getGitlabProjectInfo;
16
+ const getGitlabProjectId = async () => {
17
+ const { gitlabProjectId } = await (0, projectPreferences_1.getProjectPreferences)();
18
+ if (gitlabProjectId) {
19
+ return gitlabProjectId;
20
+ }
21
+ const projectInfo = await (0, exports.getGitlabProjectInfo)();
22
+ return projectInfo.id;
23
+ };
24
+ exports.getGitlabProjectId = getGitlabProjectId;
25
+ //# sourceMappingURL=getGitlabProjectInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGitlabProjectInfo.js","sourceRoot":"","sources":["../../../../src/gitlab/getGitlabProjectInfo.ts"],"names":[],"mappings":";;;AACA,4EAAyE;AACzE,2CAA8C;AAC9C,oEAGqC;AAE9B,MAAM,oBAAoB,GAAG,KAAK,IAA4B,EAAE;IACrE,MAAM,GAAG,GAAG,MAAM,IAAA,2BAAe,GAAE,CAAC;IACpC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,iDAAuB,GAAE,CAAC;IAC1D,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,gCAAgC;IAChC,IAAA,6CAAwB,EAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAPW,QAAA,oBAAoB,wBAO/B;AAEK,MAAM,kBAAkB,GAAG,KAAK,IAAqB,EAAE;IAC5D,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAA,0CAAqB,GAAE,CAAC;IAC1D,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,4BAAoB,GAAE,CAAC;IACjD,OAAO,WAAW,CAAC,EAAE,CAAC;AACxB,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B"}
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setPreference = exports.getPreference = exports.hasPreference = exports.getPreferences = void 0;
4
- const fs_extra_1 = require("fs-extra");
4
+ const promises_1 = require("fs/promises");
5
+ const fs_1 = require("fs");
5
6
  const os_1 = require("os");
6
7
  const yaml_1 = require("yaml");
7
- const directory = `${(0, os_1.homedir)()}/.catladder`;
8
- const file = `${directory}/preferences.yml`;
8
+ const path_1 = require("path");
9
+ const directory = (0, path_1.join)((0, os_1.homedir)(), ".catladder");
10
+ const file = (0, path_1.join)(directory, "preferences.yml");
9
11
  const perfKeys = [
10
12
  "gitlab-personal-access-token",
11
13
  "googleAuthUserNumber",
@@ -16,14 +18,26 @@ const fallbackValues = {
16
18
  gitlabTokens: {},
17
19
  googleAuthUserNumber: null,
18
20
  };
21
+ const perferencesWithParsed = (parsed) => perfKeys.reduce((acc, key) => { var _a; return Object.assign(acc, { [key]: (_a = parsed[key]) !== null && _a !== void 0 ? _a : fallbackValues[key] }); }, {});
22
+ const encoding = "utf-8";
23
+ const readPreferences = () => (0, promises_1.readFile)(file, { encoding });
24
+ const writePreferences = (preferences) => (0, promises_1.writeFile)(file, (0, yaml_1.stringify)(preferences), { encoding, mode: 0o600 });
25
+ const ensureDir = async () => (0, fs_1.existsSync)(directory)
26
+ ? directory
27
+ : (0, promises_1.mkdir)(directory, { recursive: true, mode: 0o700 });
28
+ const ensureFile = async () => {
29
+ if ((0, fs_1.existsSync)(file)) {
30
+ return file;
31
+ }
32
+ await ensureDir();
33
+ return writePreferences(perferencesWithParsed({}));
34
+ };
19
35
  const getPreferences = async () => {
20
36
  var _a;
21
- if (!(await (0, fs_extra_1.pathExists)(file))) {
22
- await (0, fs_extra_1.createFile)(file);
23
- }
24
- const fileString = await (0, fs_extra_1.readFile)(file, { encoding: "utf-8" });
37
+ await ensureFile();
38
+ const fileString = await readPreferences();
25
39
  const fileParsed = (_a = (0, yaml_1.parse)(fileString || "---\nnull")) !== null && _a !== void 0 ? _a : {};
26
- return perfKeys.reduce((acc, key) => { var _a; return Object.assign(acc, { [key]: (_a = fileParsed[key]) !== null && _a !== void 0 ? _a : fallbackValues[key] }); }, {});
40
+ return perferencesWithParsed(fileParsed);
27
41
  };
28
42
  exports.getPreferences = getPreferences;
29
43
  const hasPreference = async (key) => {
@@ -41,11 +55,7 @@ const getPreference = async (key) => {
41
55
  exports.getPreference = getPreference;
42
56
  const setPreference = async (key, value) => {
43
57
  const preferences = await (0, exports.getPreferences)();
44
- const newPreferences = {
45
- ...preferences,
46
- [key]: value,
47
- };
48
- await (0, fs_extra_1.writeFile)(file, (0, yaml_1.stringify)(newPreferences));
58
+ return writePreferences({ ...preferences, [key]: value });
49
59
  };
50
60
  exports.setPreference = setPreference;
51
61
  //# sourceMappingURL=preferences.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../../../src/utils/preferences.ts"],"names":[],"mappings":";;;AAAA,uCAAuE;AACvE,2BAA6B;AAE7B,+BAAwC;AACxC,MAAM,SAAS,GAAG,GAAG,IAAA,YAAO,GAAE,aAAa,CAAC;AAC5C,MAAM,IAAI,GAAG,GAAG,SAAS,kBAAkB,CAAC;AAQ5C,MAAM,QAAQ,GAAG;IACf,8BAA8B;IAC9B,sBAAsB;IACtB,cAAc;CACN,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,8BAA8B,EAAE,IAAI;IACpC,YAAY,EAAE,EAAE;IAChB,oBAAoB,EAAE,IAAI;CACO,CAAC;AAE7B,MAAM,cAAc,GAAG,KAAK,IAAsC,EAAE;;IACzE,IAAI,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,MAAA,IAAA,YAAK,EAAC,UAAU,IAAI,WAAW,CAAC,mCAAI,EAAE,CAAC;IAC1D,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,WACX,OAAA,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAA,UAAU,CAAC,GAAG,CAAC,mCAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,EAAA,EACvE,EAA6B,CAC9B,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB;AAEK,MAAM,aAAa,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAc,GAAE,CAAC;IAC3C,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACrE,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB;AACK,MAAM,aAAa,GAAG,KAAK,EAChC,GAAM,EACsC,EAAE;IAC9C,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAc,GAAE,CAAC;IAC3C,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC,GAAG,CAA+B,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB;AAEK,MAAM,aAAa,GAAG,KAAK,EAChC,GAAkB,EAClB,KAA0C,EAC1C,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAc,GAAE,CAAC;IAE3C,MAAM,cAAc,GAAG;QACrB,GAAG,WAAW;QACd,CAAC,GAAG,CAAC,EAAE,KAAK;KACb,CAAC;IAEF,MAAM,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAA,gBAAS,EAAC,cAAc,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB"}
1
+ {"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../../../src/utils/preferences.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type CatladderCliProjectPreferences = {
2
+ gitlabProjectId?: number | null;
3
+ gitlabHttpUrlToRepo?: string | null;
4
+ };
5
+ export declare const getProjectPreferences: (givenFilePath?: string) => Promise<CatladderCliProjectPreferences>;
6
+ export declare const upsertProjectPerferences: (newPerfs?: Partial<CatladderCliProjectPreferences>, givenFilePath?: string) => Promise<void>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upsertProjectPerferences = exports.getProjectPreferences = void 0;
4
+ const promises_1 = require("fs/promises");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const git_1 = require("../git");
8
+ const directory = ".catladder";
9
+ const file = "preferences.json";
10
+ const perfKeys = [
11
+ "gitlabProjectId",
12
+ "gitlabHttpUrlToRepo",
13
+ ];
14
+ const fallbackValues = {
15
+ gitlabProjectId: null,
16
+ gitlabHttpUrlToRepo: null,
17
+ };
18
+ const perferencesWithParsed = (parsed) => perfKeys.reduce((acc, key) => { var _a, _b; return Object.assign(acc, { [key]: (_b = (_a = parsed[key]) !== null && _a !== void 0 ? _a : fallbackValues[key]) !== null && _b !== void 0 ? _b : null }); }, {});
19
+ const encoding = "utf-8";
20
+ const readPreferences = (filePath) => (0, promises_1.readFile)(filePath, { encoding });
21
+ const writePreferences = (filePath, preferences) => (0, promises_1.writeFile)(filePath, JSON.stringify(preferences, null, 2), {
22
+ encoding,
23
+ mode: 0o600,
24
+ });
25
+ const ensureDir = async (dirPath) => (0, fs_1.existsSync)(dirPath)
26
+ ? dirPath
27
+ : (0, promises_1.mkdir)(dirPath, { recursive: true, mode: 0o700 });
28
+ const ensureFile = async (givenFilePath) => {
29
+ if ((givenFilePath === null || givenFilePath === void 0 ? void 0 : givenFilePath.length) && (0, fs_1.existsSync)(givenFilePath)) {
30
+ return givenFilePath;
31
+ }
32
+ const rootPath = await (0, git_1.getProjectRootPath)();
33
+ const dirPath = (0, path_1.join)(rootPath, directory);
34
+ const filePath = (0, path_1.join)(dirPath, file);
35
+ if ((0, fs_1.existsSync)(filePath)) {
36
+ return filePath;
37
+ }
38
+ await ensureDir(dirPath);
39
+ await writePreferences(filePath, perferencesWithParsed({}));
40
+ return filePath;
41
+ };
42
+ const getProjectPreferences = async (givenFilePath) => {
43
+ var _a;
44
+ const filePath = await ensureFile(givenFilePath);
45
+ const fileString = await readPreferences(filePath);
46
+ const fileParsed = (_a = JSON.parse(fileString || "null")) !== null && _a !== void 0 ? _a : {};
47
+ return perferencesWithParsed(fileParsed);
48
+ };
49
+ exports.getProjectPreferences = getProjectPreferences;
50
+ const upsertProjectPerferences = async (newPerfs = {}, givenFilePath) => {
51
+ const filePath = await ensureFile(givenFilePath);
52
+ const currentPerfs = await (0, exports.getProjectPreferences)(filePath);
53
+ return writePreferences(filePath, { ...currentPerfs, ...newPerfs });
54
+ };
55
+ exports.upsertProjectPerferences = upsertProjectPerferences;
56
+ //# sourceMappingURL=projectPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectPreferences.js","sourceRoot":"","sources":["../../../../src/utils/projectPreferences.ts"],"names":[],"mappings":"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"}