Skip to content

Commit 0da8757

Browse files
committed
fix: add global settings to stanzas
Addresses issue #114
1 parent 73cd300 commit 0da8757

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

out/spec.js

+11
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,15 @@ function getStanzaType(stanza) {
419419
return stanzaType
420420
}
421421

422+
function addDefaultsAndGlobals(settings, defaults) {
423+
// Add [default] or [global] settings to a stanza if they do not already exist
424+
for(let i=0; i < defaults.length; i++) {
425+
if(!settings.find(o => o.name === defaults[i].name && o.value === defaults[i].value)) {
426+
settings.push(defaults[i])
427+
}
428+
}
429+
}
430+
422431
function getStanzaSettings(specConfig, stanzaName) {
423432
// Given a stanzaName, return its settings
424433
// Stanzas could follow one of these syntaxes:
@@ -439,6 +448,7 @@ function getStanzaSettings(specConfig, stanzaName) {
439448
}
440449

441450
let defaultSettings = getStanzaSettingsByStanzaName(specConfig, "[default]")
451+
let globalSettings = getStanzaSettingsByStanzaName(specConfig, "[global]")
442452
let stanzaType = getStanzaType(stanzaName)
443453
if((stanzaName == "[default]") && (!specConfig.allowsFreeformStanzas)) { return defaultSettings }
444454

@@ -465,6 +475,7 @@ function getStanzaSettings(specConfig, stanzaName) {
465475

466476
if(settings) {
467477
settings.push(...defaultSettings)
478+
addDefaultsAndGlobals(settings, globalSettings)
468479
return settings
469480
}
470481
break

0 commit comments

Comments
 (0)