UNPKG

@focus-reactive/graphql-content-layer

Version:

[![npm version](https://badge.fury.io/js/%40focus-reactive%2Fgraphql-content-layer.svg)](https://badge.fury.io/js/%40focus-reactive%2Fgraphql-content-layer) # GitNation GraphQL Content Layer

88 lines (52 loc) 1.93 kB
[![npm version](https://badge.fury.io/js/%40focus-reactive%2Fgraphql-content-layer.svg)](https://badge.fury.io/js/%40focus-reactive%2Fgraphql-content-layer) # GitNation GraphQL Content Layer package for fetching conference content from GraphCMS it's published on NPM as `@focus-reactive/graphql-content-layer` This package is intended for: 1. Fetching data from GraphCMS, process and building content layer 2. Generate Storybook with output of: 1. GraphCMS queries (CMS Layer) 2. Processed content (Content Layer) ## API and Configuring 1. GraphCMS connection should be configured via env variables: `CMS_ENDPOINT` and `CMS_TOKEN` 2. The package exposes `getContent` async function for generating content layer Usage: ```js const { getContent } = require('@focus-reactive/graphql-content-layer'); const content = await getContent(conferenceSettings); ``` see [conferenceSettings](#conferencesettings) for details 3. The package generates Storybook with CMS and Content layers to use it: ```js // story.js const { passConferenceSettings, } = require('@focus-reactive/graphql-content-layer/dist/content.stories'); passConferenceSettings(conferenceSettings); ``` ### conferenceSettings Pass `conferenceSettings` with conference specific ("hardcoded") data I should contain: `tagColors` - colors settings for "tech" badges, tags, labels ```js speakerAvatar = { dimensions: { avatarWidth: 500, avatarHeight: 500, } } ``` - image transformation settings for speakers/trainers/mcs and so on avatars ## Develop `yarn dev` to start watching and compiling the code `yarn storybook` to launch Storybook `yarn tdd` - Jest tests in watching mode `yarn start` - starts dev, storybook and tests (each in independent watch mode) `yarn update-schema` for updating GraphQL introspection schema For publishing to NPM: ```shell npm publish ``` it will transpile the code and publish the package