Adding function to get preset values by name

d2df04550a74ba340953f5a937682d42754a1c4f

qvink <qvink@users.noreply.github.com>

1 files changed, +28 -0Ignore whitespace
public/scripts/preset-manager.js+28 -0
@@ -615,6 +615,34 @@ class PresetManager {
615615 return settings;
616616 }
617617
618+ getCompletionPresetByName(name) {
619+ // Retrieve a completion preset by name
620+ let { presets, preset_names } = this.getPresetList();
621+ let preset;
622+
623+ // Some APIs use an array of names, others use an object of {name: index}
624+ if (Array.isArray(preset_names)) { // array of names
625+ if (!preset_names.includes(name)) {
626+ preset = undefined;
627+ } else {
628+ preset = presets[preset_names.indexOf(name)];
629+ }
630+ } else { // object of {names: index}
631+ if (preset_names[name] === undefined) {
632+ preset = undefined;
633+ } else {
634+ preset = presets[preset_names[name]];
635+ }
636+ }
637+
638+ // if the preset isn't found, return null
639+ if (preset === undefined) {
640+ console.error(`Preset ${name} not found`);
641+ return;
642+ }
643+ return preset;
644+ }
645+
618646 // pass no arguments to delete current preset
619647 async deletePreset(name) {
620648 const { preset_names, presets } = this.getPresetList();