@nuskin/contentstack-lib

1.0.0 • Public • Published

@nuskin/contentstack-lib

This project extends the Contentstack delivery sdk, to be shared between the backend (AWS Lambda) and frontend.

  1. It simplifies initializing the Stack object.
  2. It extends the stack with a new function getSingletonEntries most commonly used to get translations
  3. CONTENTSTACK DOES NOT MERGE COMMON ENGLISH WITH US-en STRINGS. FALLBACK IN CONTENTSTACK DOES NOT WORK AS EXPECTED. getSingletonEntries TAKES AN OPTION CALLED mergeWithFallback. IF THAT IS SET TO TRUE THEN IT WILL MERGE THE RESULTS FOR COMMON SPANISH AND MX-es FOR EXAMPLE.
  4. getSingletonEntries also allows you to convert the keys from snake case to camel case.

Installing

Usng npm:

npm install @nuskin/contentstack-lib

Usng yarn:

yarn add @nuskin/contentstack-lib

Example usage

const { getStack, init } = require('@nuskin/contentstack-lib')

// Initialize the module with params needed for connecting to contentstack
// These fields can be gotten from the parameter store
init({env, apiKey, deliveryToken})

// Call getStack to get the stack object
const Stack = getStack()

// get all languages
const languages = await Stack.ContentType('supported_language').Query().toJSON().find();

// get all markets
const markets = await Stack.ContentType('market').Query().toJSON().find();

// Use the extended getStrings function to get translations
// ==================== Deprecated - Dont use this function ==========================
const translations = Stack.getStrings({
    contentTypes: ['checkout_adr_strings', 'checkout_cart_strings'],  // List of content types you want to get translations for
    language: 'en',
    country: 'US',
    merge: true  // Will combine checkout_adr_strings and checkout_cart_strings object with single list of strings
});

// Use this function instead to get your translations
// The entries are returned in the order they were requested so you can destructure the array accordingly
// To get the result in camelcase instead of snake case you can pass in the option.camelcase: true
// Contentstack does not merge common english strings with en_US strings.  This function allows you to merge the two with mergeWithFallback: true
const [
    checkoutAdrStrings,
    checkoutCartStrings
  ] = await Stack.getSingletonEntries({
    contentTypeUIDs: [
      'checkout_adr_strings',
      'checkout_cart_strings'
    ],
    country: 'US',
    language: 'en',
    camelcase: true,
    mergeWithFallback: true
  });

// We could possibly add functionality to return the list of regions markets and languages in a single object structure

Resources

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i @nuskin/contentstack-lib

Weekly Downloads

52

Version

1.0.0

License

ISC

Unpacked Size

309 kB

Total Files

26

Last publish

Collaborators

  • nkranendonk
  • emoore
  • nuskin-cws
  • klau
  • rellenberger