npm install metaconfiguration --save
const { Config } = require('metaconfiguration');
Load configuration with asynchronous constructor:
const { Config } = require('metaconfiguration');
const config = await new Config('./configDirectory');
console.log(config);
// Output example:
// {
// logger: {
// enabled: true,
// keepDays: 100,
// writeInterval: 3000,
// writeBuffer: 65536,
// toStdout: [ 'system', 'fatal', 'error' ]
// },
// server: {
// transport: 'http',
// address: '127.0.0.1',
// ports: 80
// }
// }
or factory:
const { readConfig } = require('metaconfiguration');
const config = await readConfig('./configDirectory');
Specify certain configuration sections to load:
const { Config } = require('metaconfiguration');
const options = { names: ['application', 'gateway'] };
const config = await new Config('./configDirectory', options);
Loag configuration in specified mode:
const { Config } = require('metaconfiguration');
const options = { mode: 'test' };
const config = await new Config('./configDirectory', options);
Specify sections and mode:
const { Config } = require('metaconfiguration');
const options = { mode: 'test', names: ['application', 'gateway'] };
const config = await new Config('./configDirectory', options);
Use custom context (sandbox) to execute configuration js file in it:
const vm = require('node:vm');
const metautil = require('metautil');
const { Config } = require('metaconfiguration');
const context = { duration: metautil.duration };
vm.createContext(context);
const options = { context };
const config = await new Config('./configDirectory', options);
Copyright (c) 2019-2024 Metarhia contributors.
Metaconfiguration is MIT licensed.
Metaconfiguration is a part of Metarhia technology stack.