Feat(settings): settings configuration parser #78
Merged
jakob.scheid
merged 20 commits from 2026-05-29 14:03:15 +02:00
feature/settings-config-parser into main
Labels
Clear labels
Area/Global
Area/Legal
Area/Search Results
Area/Settings
Area/Sidebar
Area/Start page
Compat/Breaking
Kind/Bug
Kind/Chore
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Refactor
Kind/Security
Kind/Style
Kind/Testing
Kind/Urgent
A global issue or pull request
An issue or pull requests related to the search results feature
The issue or pull request is related to the settings
The issue or pull request is related to the sidebar
Related to the start page
Breaking change that will not be backward compatible
Something is not working
Chore and maintainerance
Documentation changes
Improve existing functionality
New functionality
Refactoring code
This is security issue
Code style changes
Issue or pull request related to testing
The issue or pull request is urgent
Priority
Critical
1
The priority is critical
Priority
High
2
The priority is high
Priority
Low
4
The priority is low
Priority
Medium
3
The priority is medium
Reviewed
Confirmed
1
Issue has been confirmed
Reviewed
Duplicate
2
This issue or pull request already exists
Reviewed
Invalid
3
Invalid issue
Reviewed
Will Not Fix
3
This issue will not be fixed
Status
Abandoned
3
Somebody has started to work on this but abandoned work
Status
Blocked
1
Something is blocking this issue or pull request
Status
Need More Info
2
Feedback is required to reproduce issue or to continue work
Projects
Clear projects
No projects
Project Board
Done
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Seekra/frontend#78
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds a JSON-based settings configuration parser. The config file lives at
src/features/settings/settings.jsonand is loaded via dynamic import. A validator checks all entry types (bool, number, string, selection, section) and a Vue.js composable provides reactive access to the parsed configuration.Related Issues
Closes: #77
Please do not put the settings file into
public/and do not load it viafetch. You should use a dynamic JavaScript import (await import('…')) and I ask you to put the settings intosrc/features/settings/settings.jsonor something similar.Please provide a description/summay of the PR.
Why did you create the empty file
public/settings.js?Can you please remove the example settings?
@@ -0,0 +57,4 @@assertString(entry.name, `${path}.name`);assertString(entry.i18n, `${path}.i18n`);if (entry.default === undefined) {Not every setting does need a default value. I suggest omitting this check.
@@ -0,0 +72,4 @@}if (entry.type === 'selection') {validateSelectionOptions(entry.options, path);if (typeof entry.allowMultiple !== 'boolean') {I think it should have a default value (
false) that is used if it is not specified.@@ -0,0 +32,4 @@* @property {string} [description]*//**Could you please check the value of
typeinstead of the type ofdefault?add settings configuration parserto Feat: settings configuration parserFeat: settings configuration parserto Feat(settings): settings configuration parser