obsidian-plugin-config 1.4.4 → 1.4.6

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.
@@ -1,104 +1,103 @@
1
- import {
2
- writeFile,
3
- stat
4
- } from "fs/promises";
5
- import { execSync } from "child_process";
6
- import dedent from "dedent";
7
- import {
8
- askConfirmation,
9
- createReadlineInterface,
10
- ensureGitSync
11
- } from "./utils.js";
1
+ import { writeFile, stat } from 'fs/promises';
2
+ import { execSync } from 'child_process';
3
+ import dedent from 'dedent';
4
+ import { askConfirmation, createReadlineInterface, ensureGitSync } from './utils.js';
12
5
 
13
6
  const rl = createReadlineInterface();
14
7
 
15
- const body = ".github/workflows/release-body.md";
8
+ const body = '.github/workflows/release-body.md';
16
9
 
17
10
  async function checkOrCreateFile(filename: string): Promise<void> {
18
- try {
19
- await stat(filename);
20
- } catch {
21
- console.log(`Creating ${filename} because it doesn't exist. Avoid deleting it.`);
22
- await writeFile(filename, "");
23
- }
11
+ try {
12
+ await stat(filename);
13
+ } catch {
14
+ console.log(`Creating ${filename} because it doesn't exist. Avoid deleting it.`);
15
+ await writeFile(filename, '');
16
+ }
24
17
  }
25
18
 
26
19
  async function createReleaseNotesFile(tagMessage: string, tag: string): Promise<void> {
27
- await writeFile(body, tagMessage);
28
- console.log(`Release notes for tag ${tag} have been written to release-body.md`);
20
+ await writeFile(body, tagMessage);
21
+ console.log(`Release notes for tag ${tag} have been written to release-body.md`);
29
22
  }
30
23
 
31
24
  async function handleExistingTag(tag: string): Promise<boolean> {
32
- const confirmed = await askConfirmation(`Tag ${tag} already exists. Do you want to replace it?`, rl);
33
-
34
- if (!confirmed) {
35
- console.log("Operation aborted");
36
- return false;
37
- }
38
-
39
- execSync(`git tag -d ${tag}`);
40
- execSync(`git push origin :refs/tags/${tag}`);
41
- console.log(`Deleted existing tag ${tag} locally and remotely.`);
42
- return true;
25
+ const confirmed = await askConfirmation(
26
+ `Tag ${tag} already exists. Do you want to replace it?`,
27
+ rl
28
+ );
29
+
30
+ if (!confirmed) {
31
+ console.log('Operation aborted');
32
+ return false;
33
+ }
34
+
35
+ execSync(`git tag -d ${tag}`);
36
+ execSync(`git push origin :refs/tags/${tag}`);
37
+ console.log(`Deleted existing tag ${tag} locally and remotely.`);
38
+ return true;
43
39
  }
44
40
 
45
41
  async function createTag(): Promise<void> {
46
- const currentVersion = process.env.npm_package_version;
47
- const tag = `${currentVersion}`;
48
-
49
- await checkOrCreateFile(body);
50
- const exists = execSync("git ls-remote --tags origin").toString().includes(`refs/tags/${tag}`);
51
-
52
- if (exists && !(await handleExistingTag(tag))) {
53
- rl.close();
54
- return;
55
- }
56
- await doCommit(currentVersion, tag);
42
+ const currentVersion = process.env.npm_package_version;
43
+ const tag = `${currentVersion}`;
44
+
45
+ await checkOrCreateFile(body);
46
+ const exists = execSync('git ls-remote --tags origin')
47
+ .toString()
48
+ .includes(`refs/tags/${tag}`);
49
+
50
+ if (exists && !(await handleExistingTag(tag))) {
51
+ rl.close();
52
+ return;
53
+ }
54
+ await doCommit(currentVersion, tag);
57
55
  }
58
56
 
59
-
60
-
61
57
  async function doCommit(currentVersion: string | undefined, tag: string): Promise<void> {
62
- rl.question(`Enter the commit message for version ${currentVersion}: `, async (message) => {
63
- doNextSteps(message, tag);
64
- rl.close();
65
- });
58
+ rl.question(
59
+ `Enter the commit message for version ${currentVersion}: `,
60
+ async (message) => {
61
+ doNextSteps(message, tag);
62
+ rl.close();
63
+ }
64
+ );
66
65
  }
67
66
 
68
67
  async function doNextSteps(message: string, tag: string): Promise<void> {
69
- const messages = message.split("\\n");
70
- const toShow = message.replace(/\\n/g, "\n");
71
- await createReleaseNotesFile(toShow, tag);
72
- const tagMessage = messages.map(m => `-m "${m}"`).join(" ");
73
-
74
- try {
75
- execSync("git add -A");
76
- execSync("git commit -m \"update tag description\"");
77
-
78
- // Ensure Git is synchronized before pushing
79
- await ensureGitSync();
80
-
81
- execSync("git push");
82
- } catch (error: any) {
83
- console.error("Error:", error.message);
84
- }
85
- try {
86
- execSync(`git tag -a ${tag} ${tagMessage}`);
87
- } catch {
88
- execSync(`git tag -d ${tag}`);
89
- execSync(`git push origin :refs/tags/${tag}`);
90
- console.log("Fixed");
91
- execSync(`git tag -a ${tag} ${tagMessage}`);
92
- }
93
- // Ensure Git is synchronized before pushing tag
94
- await ensureGitSync();
95
-
96
- execSync(`git push origin ${tag}`);
97
- console.log(`Release ${tag} pushed to repo.`);
98
- console.log(dedent`
68
+ const messages = message.split('\\n');
69
+ const toShow = message.replace(/\\n/g, '\n');
70
+ await createReleaseNotesFile(toShow, tag);
71
+ const tagMessage = messages.map((m) => `-m "${m}"`).join(' ');
72
+
73
+ try {
74
+ execSync('git add -A');
75
+ execSync('git commit -m "update tag description"');
76
+
77
+ // Ensure Git is synchronized before pushing
78
+ await ensureGitSync();
79
+
80
+ execSync('git push');
81
+ } catch (error: any) {
82
+ console.error('Error:', error.message);
83
+ }
84
+ try {
85
+ execSync(`git tag -a ${tag} ${tagMessage}`);
86
+ } catch {
87
+ execSync(`git tag -d ${tag}`);
88
+ execSync(`git push origin :refs/tags/${tag}`);
89
+ console.log('Fixed');
90
+ execSync(`git tag -a ${tag} ${tagMessage}`);
91
+ }
92
+ // Ensure Git is synchronized before pushing tag
93
+ await ensureGitSync();
94
+
95
+ execSync(`git push origin ${tag}`);
96
+ console.log(`Release ${tag} pushed to repo.`);
97
+ console.log(dedent`
99
98
  with message:
100
99
  ${toShow}
101
100
  `);
102
101
  }
103
102
 
104
- createTag().catch(console.error);
103
+ createTag().catch(console.error);
@@ -1,133 +1,156 @@
1
- import { readFile, writeFile } from "fs/promises";
2
- import dedent from "dedent";
3
- import { askQuestion, createReadlineInterface, gitExec, ensureGitSync } from "./utils.js";
1
+ import { readFile, writeFile } from 'fs/promises';
2
+ import dedent from 'dedent';
3
+ import { askQuestion, createReadlineInterface, gitExec, ensureGitSync } from './utils.js';
4
4
 
5
5
  // Simple version increment functions to avoid semver compatibility issues
6
6
  function incrementVersion(version: string, type: 'patch' | 'minor' | 'major'): string {
7
- const parts = version.split('.').map(Number);
8
- if (parts.length !== 3) return '';
9
-
10
- switch (type) {
11
- case 'patch':
12
- parts[2]++;
13
- break;
14
- case 'minor':
15
- parts[1]++;
16
- parts[2] = 0;
17
- break;
18
- case 'major':
19
- parts[0]++;
20
- parts[1] = 0;
21
- parts[2] = 0;
22
- break;
23
- }
24
-
25
- return parts.join('.');
7
+ const parts = version.split('.').map(Number);
8
+ if (parts.length !== 3) return '';
9
+
10
+ switch (type) {
11
+ case 'patch':
12
+ parts[2]++;
13
+ break;
14
+ case 'minor':
15
+ parts[1]++;
16
+ parts[2] = 0;
17
+ break;
18
+ case 'major':
19
+ parts[0]++;
20
+ parts[1] = 0;
21
+ parts[2] = 0;
22
+ break;
23
+ }
24
+
25
+ return parts.join('.');
26
26
  }
27
27
 
28
28
  function isValidVersion(version: string): boolean {
29
- const versionRegex = /^\d+\.\d+\.\d+$/;
30
- return versionRegex.test(version);
29
+ const versionRegex = /^\d+\.\d+\.\d+$/;
30
+ return versionRegex.test(version);
31
31
  }
32
32
 
33
33
  const rl = createReadlineInterface();
34
34
 
35
35
  async function getTargetVersion(currentVersion: string): Promise<string> {
36
- const updateType = await askQuestion(dedent`
36
+ const updateType = await askQuestion(
37
+ dedent`
37
38
  Current version: ${currentVersion}
38
39
  Kind of update:
39
40
  patch(1.0.1) -> type 1 or p
40
41
  minor(1.1.0) -> type 2 or min
41
42
  major(2.0.0) -> type 3 or maj
42
43
  or version number (e.g. 2.0.0)
43
- Enter choice: `, rl);
44
-
45
- switch (updateType.trim()) {
46
- case "p":
47
- case "1":
48
- return incrementVersion(currentVersion, "patch");
49
- case "min":
50
- case "2":
51
- return incrementVersion(currentVersion, "minor");
52
- case "maj":
53
- case "3":
54
- return incrementVersion(currentVersion, "major");
55
- default:
56
- const trimmed = updateType.trim();
57
- return isValidVersion(trimmed) ? trimmed : "";
58
- }
44
+ Enter choice: `,
45
+ rl
46
+ );
47
+
48
+ switch (updateType.trim()) {
49
+ case 'p':
50
+ case '1':
51
+ return incrementVersion(currentVersion, 'patch');
52
+ case 'min':
53
+ case '2':
54
+ return incrementVersion(currentVersion, 'minor');
55
+ case 'maj':
56
+ case '3':
57
+ return incrementVersion(currentVersion, 'major');
58
+ default:
59
+ const trimmed = updateType.trim();
60
+ return isValidVersion(trimmed) ? trimmed : '';
61
+ }
59
62
  }
60
63
 
61
- async function updateJsonFile(filename: string, updateFn: (json: any) => void): Promise<void> {
62
- try {
63
- const content = JSON.parse(await readFile(filename, "utf8"));
64
- updateFn(content);
65
- await writeFile(filename, JSON.stringify(content, null, "\t"));
66
- } catch (error) {
67
- console.error(`Error updating ${filename}:`, error instanceof Error ? error.message : String(error));
68
- throw error;
69
- }
64
+ async function updateJsonFile(
65
+ filename: string,
66
+ updateFn: (json: any) => void
67
+ ): Promise<void> {
68
+ try {
69
+ const content = JSON.parse(await readFile(filename, 'utf8'));
70
+ updateFn(content);
71
+ await writeFile(filename, JSON.stringify(content, null, '\t'));
72
+ } catch (error) {
73
+ console.error(
74
+ `Error updating ${filename}:`,
75
+ error instanceof Error ? error.message : String(error)
76
+ );
77
+ throw error;
78
+ }
70
79
  }
71
80
 
72
81
  async function updateManifestVersions(targetVersion: string): Promise<void> {
73
- try {
74
- const manifest = JSON.parse(await readFile("manifest.json", "utf8"));
75
- const { minAppVersion } = manifest;
76
-
77
- await Promise.all([
78
- updateJsonFile("manifest.json", json => json.version = targetVersion),
79
- updateJsonFile("versions.json", json => json[targetVersion] = minAppVersion),
80
- updateJsonFile("package.json", json => json.version = targetVersion),
81
- // updateJsonFile("package-lock.json", json => json.version = targetVersion)
82
- ]);
83
- } catch (error) {
84
- console.error("Error updating manifest versions:", error instanceof Error ? error.message : String(error));
85
- throw error;
86
- }
82
+ try {
83
+ const manifest = JSON.parse(await readFile('manifest.json', 'utf8'));
84
+ const { minAppVersion } = manifest;
85
+
86
+ await Promise.all([
87
+ updateJsonFile('manifest.json', (json) => (json.version = targetVersion)),
88
+ updateJsonFile(
89
+ 'versions.json',
90
+ (json) => (json[targetVersion] = minAppVersion)
91
+ ),
92
+ updateJsonFile('package.json', (json) => (json.version = targetVersion))
93
+ // updateJsonFile("package-lock.json", json => json.version = targetVersion)
94
+ ]);
95
+ } catch (error) {
96
+ console.error(
97
+ 'Error updating manifest versions:',
98
+ error instanceof Error ? error.message : String(error)
99
+ );
100
+ throw error;
101
+ }
87
102
  }
88
103
 
89
104
  async function updateVersion(): Promise<void> {
90
- try {
91
- const currentVersion = process.env.npm_package_version || "1.0.0";
92
- const targetVersion = await getTargetVersion(currentVersion);
93
-
94
- if (!targetVersion) {
95
- console.log("Invalid version");
96
- return;
97
- }
98
-
99
- try {
100
- // Update all files first
101
- await updateManifestVersions(targetVersion);
102
- console.log(`Files updated to version ${targetVersion}`);
103
-
104
- // Add files to git
105
- gitExec("git add manifest.json package.json versions.json");
106
- gitExec(`git commit -m "Updated to version ${targetVersion}"`);
107
- console.log("Changes committed");
108
- } catch (error) {
109
- console.error("Error during update or commit:", error instanceof Error ? error.message : String(error));
110
- console.log("Operation failed.");
111
- return;
112
- }
113
-
114
- try {
115
- // Ensure Git is synchronized before pushing
116
- await ensureGitSync();
117
-
118
- gitExec("git push");
119
- console.log(`Version successfully updated to ${targetVersion} and pushed.`);
120
- } catch (pushError) {
121
- console.error("Failed to push version update:", pushError instanceof Error ? pushError.message : String(pushError));
122
- }
123
- } catch (error) {
124
- console.error("Error:", error instanceof Error ? error.message : String(error));
125
- } finally {
126
- rl.close();
127
- }
105
+ try {
106
+ const currentVersion = process.env.npm_package_version || '1.0.0';
107
+ const targetVersion = await getTargetVersion(currentVersion);
108
+
109
+ if (!targetVersion) {
110
+ console.log('Invalid version');
111
+ return;
112
+ }
113
+
114
+ try {
115
+ // Update all files first
116
+ await updateManifestVersions(targetVersion);
117
+ console.log(`Files updated to version ${targetVersion}`);
118
+
119
+ // Add files to git
120
+ gitExec('git add manifest.json package.json versions.json');
121
+ gitExec(`git commit -m "Updated to version ${targetVersion}"`);
122
+ console.log('Changes committed');
123
+ } catch (error) {
124
+ console.error(
125
+ 'Error during update or commit:',
126
+ error instanceof Error ? error.message : String(error)
127
+ );
128
+ console.log('Operation failed.');
129
+ return;
130
+ }
131
+
132
+ try {
133
+ // Ensure Git is synchronized before pushing
134
+ await ensureGitSync();
135
+
136
+ gitExec('git push');
137
+ console.log(`Version successfully updated to ${targetVersion} and pushed.`);
138
+ } catch (pushError) {
139
+ console.error(
140
+ 'Failed to push version update:',
141
+ pushError instanceof Error ? pushError.message : String(pushError)
142
+ );
143
+ }
144
+ } catch (error) {
145
+ console.error('Error:', error instanceof Error ? error.message : String(error));
146
+ } finally {
147
+ rl.close();
148
+ }
128
149
  }
129
150
 
130
- updateVersion().catch(console.error).finally(() => {
131
- console.log("Exiting...");
132
- process.exit();
133
- });
151
+ updateVersion()
152
+ .catch(console.error)
153
+ .finally(() => {
154
+ console.log('Exiting...');
155
+ process.exit();
156
+ });