All files / src/settings registry.ts

0% Statements 0/14
100% Branches 0/0
0% Functions 0/2
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                                         
import joplin from "api";
import { SettingItem } from "api/types";
 
import { ApplyTagsWhileInsertingSetting } from "./applyTagsWhileInserting";
import { DefaultNoteTemplateIdSetting } from "./defaultNoteTemplateId";
import { DefaultTemplatesConfigSetting } from "./defaultTemplatesConfig";
import { DefaultTodoTemplateIdSetting } from "./defaultTodoTemplateId";
import { TemplatesSourceSetting } from "./templatesSource";
import { FocusTitleAfterCreateSetting } from "./focusTitleAfterCreate";
 
import { PluginSetting } from "./base";
 
export class PluginSettingsRegistry {
    private static allPluginSettings: PluginSetting<unknown>[] = [
        ApplyTagsWhileInsertingSetting,
        DefaultNoteTemplateIdSetting,
        DefaultTemplatesConfigSetting,
        DefaultTodoTemplateIdSetting,
        TemplatesSourceSetting,
        FocusTitleAfterCreateSetting,
    ];
 
    public static async registerSettings(): Promise<void> {
        // Register setting section
        await joplin.settings.registerSection("templatesPlugin", {
            label: "Templates",
        });
 
        // Register all settings
        const settingsManifest: Record<string, SettingItem> = this.allPluginSettings.reduce((manifest, setting) => {
            manifest[setting.id] = setting.manifest;
            return manifest;
        }, {});
        await joplin.settings.registerSettings(settingsManifest);
    }
}