1. @nuskin/configuration-sdk
The configuration sdk gets market configuration from content stack. You can get the full configuration for a list of config maps or get partial configuration using graphql. The sdk caches the configurations for 2 minutes in memory. The sdk also allows
@nuskin/configuration-sdk
Package: @nuskin/configuration-sdk
Last modified: Tue, 26 Mar 2024 15:11:31 GMT
Version: 3.0.0
License: MIT
Downloads: 6,654

Install

npm install @nuskin/configuration-sdk
yarn add @nuskin/configuration-sdk

@nuskin/configuration-sdk

"The configuration sdk gets market configuration from content stack. You can get the full configuration for a list of config maps or get partial configuration using graphql. The sdk caches the configurations for 2 minutes in memory. The sdk also allows for configuraitons to be overridden. Override configurations for runtime shopping context configurations. Or use the function for testing purposes to override configuration in the browser on the fly.",

Installing

Usng npm:

 npm add @nuskin/configuration-sdk

Usng yarn:

 yarn add @nuskin/configuration-sdk

Example usage

 const {
    overrideConfigurationProperty,
    clearConfigurationOverrides,
    overrideConfiguration,
    getConfiguration,
    getPartialConfig,
    getCachedConfigurations,
    getCachedConfiguration,
    getCachedConfigField
} = require('@nuskin/configuration-sdk');


// Override a single configuration for shopping context and market.  The overrides will be merged with the configuration
overrideConfigurationProperty({configMap: 'Ordering', configMapProperty: 'testing', value: true, country: 'US', shoppingContext: 'personal_offer'});

// Override configuration for shopping context and market.  The overrides will be merged with the configuration
overrideConfiguration({configMap: ''});

// Expose the overrideConfiguration function so QA can change configuration in the browser
// Just expose the function on window so when you open the console in the dev tools you can access it
// Testers can also override the marketConfigurationOverrides sessionStorage object instead of using this function
window.nuskin.overrideConfiguration = overrideConfiguration;

// get partial config through graphql endpoint.  Returns just the fields requested
const partialConfig = await getPartialConfig(
    queryFields = {
        Ordering: ['spendingRestrictionsEnabled', 'inventoryCheckEnabled'],
        Cart: ['minAdrPsv']
    },
    options = { // optional for client usage
        country: 'US',
        environment: 'test',
        clientId: 'Client id for you application'
    }
);

// Get full configuration for config maps.
// Each config will be stored in a cache which is where it will be retrieved in subsequent calls.
const config = await getConfiguration(
    configMapNames = ['Ordering', 'Cart'],   // list of configMap names
    options = { // optional for client usage
        country: 'US',
        clientId: 'clientId',
        shoppingContext: 'storefront'
    }
);

// The following functions are designed to be used after configuration is originally
// loaded getConfiguration above. They only look for configuration that is in
// local cache and these functions are synchronous and can be used in place of the
// current ConfigService.getMarketConfig call.

// This will return one or more configMaps from cache.
// Will throw an exception if requested config has not already been loaded by getConfiguration.
const configs = getCachedConfigurations(
    configNames = [] // List of configNames to be retrieved from local cache
)

// This function returns a single configMap from cache.
// Will throw an exception if requested config has not already been loaded by getConfiguration.
const config = getCachedConfiguration(
    configNames = [] // List of configNames to be retrieved from local cache
)

// This will return a single field from one of the configMaps previously loaded into
// cache. All cached configMaps are searched so no cacheName is needed. Field names
// are required to be unique across configMaps by contentStack
const configFieldValue = getCachedConfigField(
    configField
)

Resources

License

MIT

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code