Skip to content

Commit 0e424eb

Browse files
committed
update logging
1 parent d747511 commit 0e424eb

15 files changed

+54
-37
lines changed

exampleVault/examples fg.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
rating: 31
33
title: test title test test
44
completed: false
5-
toggle1: false
6-
slider1: 4
5+
toggle1: true
6+
slider1: 9
77
slider2: 8
88
text1: Testa
99
text_area1: test test test

src/InputFieldMarkdownRenderChild.ts

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import { InputFieldFactory } from './inputFields/InputFieldFactory';
55
import { InputFieldArgumentType, InputFieldDeclaration, InputFieldDeclarationParser } from './parsers/InputFieldDeclarationParser';
66
import { AbstractInputFieldArgument } from './inputFieldArguments/AbstractInputFieldArgument';
77
import { ClassInputFieldArgument } from './inputFieldArguments/ClassInputFieldArgument';
8-
import { getFrontmatterOfTFile } from '@opd-libs/opd-metadata-lib/lib/API';
98
import { traverseObject, validatePath as validateObjectPath } from '@opd-libs/opd-metadata-lib/lib/Utils';
109
import { MetaBindBindTargetError, MetaBindInternalError } from './utils/MetaBindErrors';
10+
import { MetadataFileCache } from './MetadataManager';
1111

1212
export enum InputFieldMarkdownRenderChildType {
1313
INLINE_CODE_BLOCK,
@@ -16,7 +16,7 @@ export enum InputFieldMarkdownRenderChildType {
1616

1717
export class InputFieldMarkdownRenderChild extends MarkdownRenderChild {
1818
plugin: MetaBindPlugin;
19-
metaData: any;
19+
metadataCache: MetadataFileCache | undefined;
2020
filePath: string;
2121
uuid: string;
2222
inputField: AbstractInputField | undefined;
@@ -51,7 +51,6 @@ export class InputFieldMarkdownRenderChild extends MarkdownRenderChild {
5151

5252
if (this.inputFieldDeclaration.isBound) {
5353
this.parseBindTarget();
54-
this.metaData = getFrontmatterOfTFile(this.bindTargetFile as TFile, this.plugin);
5554
}
5655

5756
this.inputField = InputFieldFactory.createInputField(this.inputFieldDeclaration.inputFieldType, {
@@ -106,12 +105,12 @@ export class InputFieldMarkdownRenderChild extends MarkdownRenderChild {
106105
}
107106
}
108107

109-
registerSelfToMetadataManager(): void {
108+
registerSelfToMetadataManager(): MetadataFileCache | undefined {
110109
if (!this.inputFieldDeclaration?.isBound || !this.bindTargetFile || !this.bindTargetMetadataField) {
111110
return;
112111
}
113112

114-
this.plugin.metadataManager.register(
113+
return this.plugin.metadataManager.register(
115114
this.bindTargetFile,
116115
metadata => {
117116
if (!this.inputField) {
@@ -145,8 +144,8 @@ export class InputFieldMarkdownRenderChild extends MarkdownRenderChild {
145144

146145
getInitialValue(): any | undefined {
147146
if (this.inputFieldDeclaration?.isBound && this.bindTargetMetadataField) {
148-
const value = traverseObject(this.bindTargetMetadataField, this.metaData);
149-
console.debug(`meta-bind | setting initial value to ${value} (typeof ${typeof value}) for input field ${this.uuid}`);
147+
const value = traverseObject(this.bindTargetMetadataField, this.metadataCache?.metadata);
148+
console.debug(`meta-bind | InputFieldMarkdownRenderChild >> setting initial value to ${value} (typeof ${typeof value}) for input field ${this.uuid}`);
150149
return value ?? this.inputField?.getDefaultValue();
151150
}
152151
}
@@ -164,9 +163,7 @@ export class InputFieldMarkdownRenderChild extends MarkdownRenderChild {
164163
}
165164

166165
async onload(): Promise<void> {
167-
console.debug('meta-bind | load inputFieldMarkdownRenderChild', this);
168-
169-
this.metaData = await this.metaData;
166+
console.debug('meta-bind | InputFieldMarkdownRenderChild >> load', this);
170167

171168
const container: HTMLDivElement = this.containerEl.createDiv();
172169
container.addClass('meta-bind-plugin-input-wrapper');
@@ -190,7 +187,7 @@ export class InputFieldMarkdownRenderChild extends MarkdownRenderChild {
190187
return;
191188
}
192189

193-
this.registerSelfToMetadataManager();
190+
this.metadataCache = this.registerSelfToMetadataManager();
194191
this.plugin.registerInputFieldMarkdownRenderChild(this);
195192

196193
this.inputField.render(container);
@@ -205,7 +202,7 @@ export class InputFieldMarkdownRenderChild extends MarkdownRenderChild {
205202
}
206203

207204
onunload(): void {
208-
console.debug('meta-bind | unload inputFieldMarkdownRenderChild', this);
205+
console.debug('meta-bind | InputFieldMarkdownRenderChild >> unload', this);
209206

210207
this.plugin.unregisterInputFieldMarkdownRenderChild(this);
211208
this.unregisterSelfFromMetadataManager();

src/MetadataManager.ts

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,29 @@ export class MetadataManager {
3232
this.interval = window.setInterval(() => this.update(), this.plugin.settings.syncInterval);
3333
}
3434

35-
register(file: TFile, onCacheUpdate: (metadata: Record<string, any>) => void, uuid: string): void {
35+
register(file: TFile, onCacheUpdate: (metadata: Record<string, any>) => void, uuid: string): MetadataFileCache {
3636
const fileCache = this.getCacheForFile(file);
3737
if (fileCache) {
38-
console.debug(`meta-bind | registered ${uuid} to existing file cache`);
38+
console.debug(`meta-bind | MetadataManager >> registered ${uuid} to existing file cache ${file.path}`);
3939
fileCache.listeners.push({ onCacheUpdate, uuid });
40+
return fileCache;
4041
} else {
41-
const c = {
42+
console.debug(`meta-bind | MetadataManager >> registered ${uuid} to newly created file cache ${file.path}`);
43+
const c: MetadataFileCache = {
4244
file: file,
4345
metadata: {},
4446
listeners: [{ onCacheUpdate, uuid }],
4547
cyclesSinceLastUpdate: 0,
4648
changed: false,
47-
}
49+
};
4850

49-
this.plugin.app.vault.cachedRead(file).then(value => c.metadata = getMetaDataFromFileContent(value));
51+
this.plugin.app.vault.cachedRead(file).then(value => {
52+
c.metadata = getMetaDataFromFileContent(value);
53+
this.notifyListeners(c);
54+
});
5055

5156
this.cache.push(c);
57+
return c;
5258
}
5359
}
5460

@@ -58,8 +64,11 @@ export class MetadataManager {
5864
return;
5965
}
6066

67+
console.debug(`meta-bind | MetadataManager >> unregistered ${uuid} to from file cache ${file.path}`);
68+
6169
fileCache.listeners = fileCache.listeners.filter(x => x.uuid !== uuid);
6270
if (fileCache.listeners.length === 0) {
71+
console.debug(`meta-bind | MetadataManager >> deleted unused file cache ${file.path}`);
6372
this.cache = this.cache.filter(x => x.file.path !== file.path);
6473
}
6574
}
@@ -80,11 +89,15 @@ export class MetadataManager {
8089
}
8190

8291
async updateFrontmatter(fileCache: MetadataFileCache): Promise<void> {
92+
console.debug(`meta-bind | MetadataManager >> updating frontmatter of ${fileCache.file.path} to`, fileCache.metadata);
93+
8394
fileCache.changed = false;
8495
await setFrontmatterOfTFile(fileCache.metadata, fileCache.file, this.plugin);
8596
}
8697

8798
updateMetadataFileCache(metadata: Record<string, any>, file: TFile, uuid?: string | undefined): void {
99+
console.debug(`meta-bind | MetadataManager >> updating metadata in ${file.path} metadata cache to`, metadata);
100+
88101
const fileCache = this.getCacheForFile(file);
89102
if (!fileCache) {
90103
return;
@@ -97,7 +110,7 @@ export class MetadataManager {
97110
}
98111

99112
updatePropertyInMetadataFileCache(value: any, path: string, file: TFile, uuid?: string | undefined): void {
100-
console.debug(`meta-bind | updating ${path} in ${file.path} metadata cache to`, value);
113+
console.debug(`meta-bind | MetadataManager >> updating ${path} in ${file.path} metadata cache to`, value);
101114

102115
const fileCache = this.getCacheForFile(file);
103116
if (!fileCache) {
@@ -130,7 +143,7 @@ export class MetadataManager {
130143
const metadata: Record<string, any> = Object.assign({}, cache.frontmatter); // copy
131144
delete metadata.position;
132145

133-
console.debug(`meta-bind | updating ${file} on frontmatter update`, metadata);
146+
console.debug(`meta-bind | MetadataManager >> updating ${file} on frontmatter update`, metadata);
134147

135148
fileCache.metadata = metadata;
136149
fileCache.cyclesSinceLastUpdate = 0;
@@ -144,6 +157,7 @@ export class MetadataManager {
144157
if (exceptUuid && exceptUuid === listener.uuid) {
145158
continue;
146159
}
160+
console.debug(`meta-bind | MetadataManager >> notifying input field ${listener.uuid} of updated metadata`);
147161
listener.onCacheUpdate(fileCache.metadata);
148162
}
149163
}

src/inputFields/DateInputField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export class DateInputField extends AbstractInputField {
8888
}
8989

9090
public render(container: HTMLDivElement): void {
91-
console.debug(`meta-bind | render dateInputField ${this.inputFieldMarkdownRenderChild.uuid}`);
91+
console.debug(`meta-bind | DateInputField >> render ${this.inputFieldMarkdownRenderChild.uuid}`);
9292

9393
this.date = DateParser.parse(this.inputFieldMarkdownRenderChild.getInitialValue()) ?? DateParser.getDefaultDate();
9494
if (!this.date.isValid()) {

src/inputFields/DatePicker/DatePickerInputField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export class DatePickerInputField extends AbstractInputField {
6767
}
6868

6969
render(container: HTMLDivElement): void {
70-
console.debug(`meta-bind | render datePickerInputField ${this.inputFieldMarkdownRenderChild.uuid}`);
70+
console.debug(`meta-bind | DatePickerInputField >> render ${this.inputFieldMarkdownRenderChild.uuid}`);
7171

7272
this.container = container;
7373

src/inputFields/NumberInputField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export class NumberInputField extends AbstractInputField {
4444
}
4545

4646
render(container: HTMLDivElement): void {
47-
console.debug(`meta-bind | render numberInputField ${this.inputFieldMarkdownRenderChild.uuid}`);
47+
console.debug(`meta-bind | NumberInputField >> render ${this.inputFieldMarkdownRenderChild.uuid}`);
4848

4949
const component = new TextComponent(container);
5050
component.inputEl.type = 'number';

src/inputFields/SelectInputField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export class SelectInputField extends AbstractInputField {
5353
}
5454

5555
render(container: HTMLDivElement): void {
56-
console.debug(`meta-bind | render selectInputField ${this.inputFieldMarkdownRenderChild.uuid}`);
56+
console.debug(`meta-bind | SelectInputField >> render ${this.inputFieldMarkdownRenderChild.uuid}`);
5757

5858
container.addClass('meta-bind-plugin-select-input-bg');
5959
this.container = container;

src/inputFields/SliderInputField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class SliderInputField extends AbstractInputField {
5555
}
5656

5757
render(container: HTMLDivElement): void {
58-
console.debug(`meta-bind | render slider ${this.inputFieldMarkdownRenderChild.uuid}`);
58+
console.debug(`meta-bind | SliderInputField >> render ${this.inputFieldMarkdownRenderChild.uuid}`);
5959

6060
container.removeClass('meta-bind-plugin-input-wrapper');
6161
container.addClass('meta-bind-plugin-flex-input-wrapper');

src/inputFields/Suggest/SuggestInputField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ export class SuggestInputField extends AbstractInputField {
105105
}
106106

107107
render(container: HTMLDivElement): void {
108-
console.debug(`meta-bind | render suggestInputField ${this.inputFieldMarkdownRenderChild.uuid}`);
108+
console.debug(`meta-bind | SuggestInputField >> render ${this.inputFieldMarkdownRenderChild.uuid}`);
109109

110110
this.container = container;
111111

src/inputFields/TextAreaInputField.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export class TextAreaInputField extends AbstractInputField {
4343
}
4444

4545
render(container: HTMLDivElement): void {
46-
console.debug(`meta-bind | render textAreaInputField ${this.inputFieldMarkdownRenderChild.uuid}`);
46+
console.debug(`meta-bind | TextAreaInputField >> render ${this.inputFieldMarkdownRenderChild.uuid}`);
4747

4848
const component = new TextAreaComponent(container);
4949
component.setValue(this.inputFieldMarkdownRenderChild.getInitialValue());

0 commit comments

Comments
 (0)