Skip to content

Commit 12e8ad8

Browse files
committed
carany build warning
1 parent 932fb39 commit 12e8ad8

File tree

7 files changed

+86
-23
lines changed

7 files changed

+86
-23
lines changed

esbuild.config.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ esbuild
4848
treeShaking: true,
4949
outfile: 'main.js',
5050
minify: true,
51+
define: {
52+
MB_GLOBAL_CONFIG_DEV_BUILD: 'false',
53+
},
5154
plugins: [
5255
esbuildSvelte({
5356
compilerOptions: { css: 'injected' },

esbuild.dev.config.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ const context = await esbuild
4949
treeShaking: true,
5050
outdir: `exampleVault/.obsidian/plugins/${manifest.id}/`,
5151
outbase: 'src',
52+
define: {
53+
MB_GLOBAL_CONFIG_DEV_BUILD: 'true',
54+
},
5255
plugins: [
5356
copy({
5457
paths: [

esbuild.publish.config.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ esbuild
5858
sourcemap: false,
5959
treeShaking: true,
6060
outfile: './Publish.js',
61+
define: {
62+
MB_GLOBAL_CONFIG_DEV_BUILD: 'false',
63+
},
6164
plugins: [
6265
esbuildSvelte({
6366
compilerOptions: { css: 'injected' },

extraTypes/obsidian-ex.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { type Plugin, type PluginManifest } from 'obsidian';
2+
import { getUUID } from '../src/utils/Utils';
23

34
declare module 'obsidian' {
45
interface App {
@@ -58,4 +59,8 @@ declare module 'obsidian' {
5859
}
5960
}
6061

62+
declare global {
63+
const MB_GLOBAL_CONFIG_DEV_BUILD: boolean;
64+
}
65+
6166
export {};

src/main.ts

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,36 @@ import { ButtonMDRC } from './renderChildren/ButtonMDRC';
1818
import { InlineButtonMDRC } from './renderChildren/InlineButtonMDRC';
1919
import { ButtonBuilderModal } from './fields/button/ButtonBuilderModal';
2020

21+
export enum MetaBindBuild {
22+
DEV = 'dev',
23+
CANARY = 'canary',
24+
RELEASE = 'release',
25+
}
26+
2127
export default class MetaBindPlugin extends Plugin implements IPlugin {
22-
// @ts-ignore defined in `onload`
28+
// @ts-expect-error TS2564
2329
settings: MetaBindPluginSettings;
2430

25-
// @ts-ignore defined in `onload`
31+
// @ts-expect-error TS2564
2632
mdrcManager: MDRCManager;
2733

28-
// @ts-ignore defined in `onload`
34+
// @ts-expect-error TS2564
2935
metadataManager: MetadataManager;
3036

31-
// @ts-ignore defined in `onload`
37+
// @ts-expect-error TS2564
3238
api: API;
3339

34-
// @ts-ignore defined in `onload`
40+
// @ts-expect-error TS2564
3541
internal: ObsidianAPIAdapter;
3642

43+
// @ts-expect-error TS2564
44+
build: MetaBindBuild;
45+
3746
async onload(): Promise<void> {
3847
console.log(`meta-bind | Main >> load`);
3948

49+
this.build = this.determineBuild();
50+
4051
// load and immediately save settings to apply migrations
4152
await this.loadSettings();
4253
await this.saveSettings();
@@ -144,15 +155,6 @@ export default class MetaBindPlugin extends Plugin implements IPlugin {
144155
// LP editor extension
145156
this.registerEditorExtension(createMarkdownRenderChildWidgetEditorPlugin(this));
146157

147-
// this.addCommand({
148-
// id: 'mb-debugger-command',
149-
// name: 'debugger',
150-
// callback: () => {
151-
// // eslint-disable-next-line no-debugger
152-
// debugger;
153-
// },
154-
// });
155-
156158
// register commands
157159
this.addCommand({
158160
id: 'open-docs',
@@ -195,6 +197,9 @@ export default class MetaBindPlugin extends Plugin implements IPlugin {
195197

196198
// register settings tab
197199
this.addSettingTab(new MetaBindSettingTab(this.app, this));
200+
201+
// add indicator for dev and canary builds
202+
this.addStatusBarBuildIndicator();
198203
}
199204

200205
onunload(): void {
@@ -203,6 +208,32 @@ export default class MetaBindPlugin extends Plugin implements IPlugin {
203208
this.metadataManager.unload();
204209
}
205210

211+
determineBuild(): MetaBindBuild {
212+
if (MB_GLOBAL_CONFIG_DEV_BUILD) {
213+
return MetaBindBuild.DEV;
214+
} else if (this.manifest.version.includes('canary')) {
215+
return MetaBindBuild.CANARY;
216+
} else {
217+
return MetaBindBuild.RELEASE;
218+
}
219+
}
220+
221+
addStatusBarBuildIndicator(): void {
222+
if (this.build === MetaBindBuild.DEV) {
223+
const item = this.addStatusBarItem();
224+
item.setText('Meta Bind Dev Build');
225+
item.addClass('mb-error');
226+
this.register(() => item.remove());
227+
}
228+
229+
if (this.build === MetaBindBuild.CANARY) {
230+
const item = this.addStatusBarItem();
231+
item.setText(`Meta Bind Canary Build (${this.manifest.version})`);
232+
item.addClass('mb-error');
233+
this.register(() => item.remove());
234+
}
235+
}
236+
206237
isFilePathExcluded(path: string): boolean {
207238
for (const excludedFolder of this.settings.excludedFolders) {
208239
if (path.startsWith(excludedFolder)) {

src/settings/SettingsTab.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { type App, PluginSettingTab, Setting } from 'obsidian';
1+
import { type App, ButtonComponent, PluginSettingTab, Setting } from 'obsidian';
22
import type MetaBindPlugin from '../main';
33
import { DEFAULT_SETTINGS, weekdays } from './Settings';
44
import { ExcludedFoldersSettingModal } from './excludedFoldersSetting/ExcludedFoldersSettingModal';
55
import { InputFieldTemplatesSettingModal } from './inputFieldTemplateSetting/InputFieldTemplatesSettingModal';
66
import { DocsHelper } from '../utils/DocsHelper';
77
import { MB_FAQ_VIEW_TYPE } from '../faq/FaqView';
8+
import { MetaBindBuild } from '../main';
89

910
export class MetaBindSettingTab extends PluginSettingTab {
1011
plugin: MetaBindPlugin;
@@ -19,6 +20,19 @@ export class MetaBindSettingTab extends PluginSettingTab {
1920

2021
containerEl.empty();
2122

23+
if (this.plugin.build === MetaBindBuild.DEV || this.plugin.build === MetaBindBuild.CANARY) {
24+
containerEl.createEl('p', {
25+
text: `You are using a ${this.plugin.build} build (${this.plugin.manifest.version}). This build is not intended for production use. Use at your own risk.`,
26+
cls: 'mb-error',
27+
});
28+
const button = new ButtonComponent(containerEl);
29+
button.setButtonText('Learn About Canary Builds');
30+
button.setCta();
31+
button.onClick(() => {
32+
DocsHelper.open(DocsHelper.linkToCanaryBuilds());
33+
});
34+
}
35+
2236
new Setting(containerEl)
2337
.setName('Quick access')
2438
.addButton(cb => {

src/utils/DocsHelper.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,35 @@ import {
77

88
export class DocsHelper {
99
static linkToInputField(type: InputFieldType): string {
10-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/reference/inputfields/${type.toLowerCase()}/`;
10+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/reference/inputfields/${type.toLowerCase()}/`;
1111
}
1212

1313
static linkToInputFieldArgument(type: InputFieldArgumentType): string {
14-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/reference/inputfieldarguments/${type.toLowerCase()}/`;
14+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/reference/inputfieldarguments/${type.toLowerCase()}/`;
1515
}
1616

1717
static linkToViewField(type: ViewFieldType): string {
18-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/reference/viewfields/${type.toLowerCase()}/`;
18+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/reference/viewfields/${type.toLowerCase()}/`;
1919
}
2020

2121
static linkToViewFieldArgument(type: ViewFieldArgumentType): string {
22-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/reference/viewfieldarguments/${type.toLowerCase()}/`;
22+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/reference/viewfieldarguments/${type.toLowerCase()}/`;
2323
}
2424

2525
static linkToInputFields(): string {
26-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/guides/inputfields/`;
26+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/guides/inputfields/`;
2727
}
2828

2929
static linkToViewFields(): string {
30-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/guides/viewfields/`;
30+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/guides/viewfields/`;
3131
}
3232

3333
static linkToSearch(search: string): string {
34-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/?s=${encodeURIComponent(search)}`;
34+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/?s=${encodeURIComponent(search)}`;
3535
}
3636

3737
static linkToHome(): string {
38-
return `https://mprojectscode.github.io/obsidian-meta-bind-plugin-docs/`;
38+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/`;
3939
}
4040

4141
static linkToGithub(): string {
@@ -46,6 +46,10 @@ export class DocsHelper {
4646
return `https://github.com/mProjectsCode/obsidian-meta-bind-plugin/issues`;
4747
}
4848

49+
static linkToCanaryBuilds(): string {
50+
return `https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/guides/installation/#canary-builds`;
51+
}
52+
4953
static open(link: string): void {
5054
window.open(link, '_blank');
5155
}

0 commit comments

Comments
 (0)