npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@nuskin/configuration-sdk

v3.0.0

Published

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

Downloads

7,515

Readme

@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