Skip to main content

core

One filter that runs the whole stack in the order the filters depend on, with the namespace declared once.

#StageWhy here
1manifestpicks the profile's manifest variant before anything reads it
2generatoropt-in: templates become JSON before the scripts are bundled
3guidesguide keys have to land before i18n collects them
4i18n.lang files, the runtime bundle and the key types
5ui-compilerscreens bake against the keys i18n emitted
6bundlerlast: it inlines the generated bundles and strips the sources

Each stage runs in its own Node process, exactly as Regolith runs it: same temp workspace, same ROOT_DIR, same settings JSON, same exit code. A stage whose inputs are absent says it has nothing to do and the run continues, so the full stack is a safe default for a project that uses part of it. A project that needs a step of its own between two stages lists the filters one by one in config.json and puts its own filter where it belongs.

Install​

Register the resolver once per machine, then install the whole set — core runs the other filters from their own folders, so it cannot be installed alone:

regolith config resolvers --append github.com/bedrock-core/regolith-filters/resolver.json
regolith install core manifest generator guides i18n ui-compiler bundler

Declare those same seven names in regolith.filterDefinitions with their released versions. regolith install-all reads only that object; it does not follow core's chain. The CLI template is a complete pinned example.

Then one entry per profile replaces the six:

config.json
{
"regolith": {
"profiles": {
"default": {
"filters": [
{
"filter": "core",
"settings": {
"shared": { "namespace": "drav0011_economy" },
"ui-compiler": { "screens": ["./BP/scripts/screens/index.ts"] },
"bundler": { "debug": true }
}
}
]
},
"test": {
"filters": [
{
"filter": "core",
"settings": {
"shared": { "namespace": "drav0011_economy" },
"manifest": { "manifestPath": "BP/manifest.test.json" },
"ui-compiler": { "screens": ["./BP/scripts/screens/index.ts"] },
"bundler": { "debug": true, "tsConfigPath": "tsconfig.test.json" }
}
}
]
}
}
}
}

Settings​

SettingTypeDefaultDescription
sharedobject{}Merged into every stage. The addon's namespace belongs here, and so does pretty: absent, every file the stack generates is minified; { "indent": "tab" } lays them all out. A stage that does not read a key ignores it
manifest, guides, i18n, ui-compiler, bundlerobject | false{}Settings for that stage, merged over shared. false skips the stage
generatorobject | trueoffThe generator runs only when this key is present — it writes schema types into the project, so a project opts in. true runs it with defaults

Each stage's own settings are documented on its page; the keys are unchanged here.

Checks​

CheckWhat fails
Unknown settingA key that is not shared or one of the six stage names
Missing stageA stage whose folder is not installed beside core