configurator
easy optional configuration that overlays optional propers over a base or default config
behavior
import createConfigurator from '@john-ko/configurator'
const config = {
nestedOption: {
somekeys: 'apple',
nestedOptionAgain: {
somekeys: 'banana',
nestedOption: {
somekeyA: 'a',
somekeyB: 'b'
}
}
}
}
const { defineConfig } = createConfigurations(config)
const cfg = defineConfig({
nestedOption: {
nestedOptionAgain: {
nestedOption: {
somekeyA: 'AAAAA'
}
}
}
})
console.log(JSON.string(cfg))
usage
example
import createConfigurator from '@john-ko/configurator'
type config = {
name: string,
options: 'a' | 'b' | 'c'
nested: {
n1: boolean,
options: {
n2: number
nested: {
n3: string
}
}
}
}
const defaultConfig: config = {
name: 'name',
options: 'a',
nested: {
n1: false,
options: {
n2: 0,
nested: {
n3: ''
}
}
}
}
const { defineConfig } = createConfigurations<config>(defaultConfig)
export { defineConfig }
import { defineConfig } = './config.js'
export default defineConfig({})