29 lines
882 B
JavaScript
29 lines
882 B
JavaScript
import { ALL_SCHEMAS, CANONICAL_SCHEMA_DOMAINS, normalizeSchemaDomain } from '@/schema/index.js'
|
|
|
|
function cloneDefaults(defaults = {}) {
|
|
return JSON.parse(JSON.stringify(defaults))
|
|
}
|
|
|
|
export function getSectionDefaults(domain, section) {
|
|
const domainKey = normalizeSchemaDomain(domain)
|
|
const sectionSchema = ALL_SCHEMAS[domainKey]?.[section]
|
|
return cloneDefaults(sectionSchema?.defaults || {})
|
|
}
|
|
|
|
export function getDomainDefaults(domain) {
|
|
const domainKey = normalizeSchemaDomain(domain)
|
|
const sections = Object.values(ALL_SCHEMAS[domainKey] || {})
|
|
|
|
return sections.reduce((defaults, schema) => {
|
|
return {
|
|
...defaults,
|
|
...cloneDefaults(schema?.defaults || {}),
|
|
}
|
|
}, {})
|
|
}
|
|
|
|
export const SETTINGS_DEFAULTS_BY_DOMAIN = CANONICAL_SCHEMA_DOMAINS.reduce((defaults, domain) => {
|
|
defaults[domain] = getDomainDefaults(domain)
|
|
return defaults
|
|
}, {})
|