Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
YCB is a multi-dimensional configuration library that builds bundles from resource files describing a variety of values.
YCB is a multi-dimensional configuration library that builds bundles from resource files describing a variety of values. The library allows applications to configure themselves based on multiple dimensions describing locations, languages, environments, etc.
npm install ycb --save
import YCB from 'ycb';
const configArray = [
{
dimensions: [
{
environment: {
dev: null,
staging: null,
test: null,
prod: null,
},
},
{
device: {
desktop: null,
mobile: {
tablet: null,
smartphone: null,
},
},
},
],
},
{
settings: ['main'],
host: 'example.com',
prefix: null,
},
{
settings: ['environment:dev'],
host: 'dev.example.com',
},
{
settings: ['environment:staging,test'],
host: 'stage.example.com',
},
{
settings: ['device:smartphone'],
prefix: 'm.',
},
];
const ycbObj = new YCB.Ycb(configArray);
const computedConfig = ycbObj.read({ environment: 'dev' });
console.log(computedConfig.host); // dev.example.com
We can schedule configuration changes ahead of time by defining an interval along with a config and using the time aware read method. For example the following program.
import YCB from 'ycb';
const configArray = [
{
dimensions: [
{
environment: {
dev: null,
staging: null,
test: null,
prod: null,
},
},
{
region: {
us: null,
ca: null,
},
},
],
},
{
settings: ['main'],
host: 'example.com',
},
{
settings: {
dimensions: ['region:us'],
},
logo: 'logo.png',
},
{
settings: {
dimensions: ['region:us'],
schedule: {
start: '2019-11-28T00:04:00Z',
end: '2019-11-29T00:04:00Z',
},
},
logo: 'thanksgiving-logo.png',
},
];
const ycbObj = new YCB.Ycb(configArray, { cacheInfo: true });
const config1 = ycbObj.readTimeAware({ region: 'us' }, 0);
const config2 = ycbObj.readTimeAware({ region: 'us' }, 1574899440000);
const config3 = ycbObj.readTimeAware({ region: 'us' }, 1574985840001);
console.log(config1);
console.log(config2);
console.log(config3);
will print
{ host: 'example.com',
logo: 'logo.png',
__ycb_expires_at__: 1574899440000 }
{ host: 'example.com',
logo: 'thanksgiving-logo.png',
__ycb_expires_at__: 1574985840001 }
{ host: 'example.com', logo: 'logo.png' }
These intervals are closed and either start
or end
may be omitted to define a one sided interval.
To support proper cache expiration one may set the cacheInfo
option, in which case the next time the config will change is added to the returned object.
Examples are provided in the tests directory.
BSD see LICENSE.txt
FAQs
YCB is a multi-dimensional configuration library that builds bundles from resource files describing a variety of values.
The npm package ycb receives a total of 3,247 weekly downloads. As such, ycb popularity was classified as popular.
We found that ycb demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.