@nuskin/contentstack-lib
v1.0.0
Published
This project contains configuration and api code to access Contentstack, to be shared between the backend (AWS Lambda) and frontend (Vue, etc).
Downloads
141
Keywords
Readme
@nuskin/contentstack-lib
This project extends the Contentstack delivery sdk, to be shared between the backend (AWS Lambda) and frontend.
- It simplifies initializing the Stack object.
- It extends the stack with a new function getSingletonEntries most commonly used to get translations
- 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.
- 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
- https://code.tls.nuskin.io/ns-am/utility/npm/contentstack-lib