How to use datocms-client - 10 common examples

To help you get started, we’ve selected a few datocms-client examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github datocms / plugins / inverse-relationships / src / index.js View on Github external
window.DatoCmsPlugin.init((plugin) => {
  plugin.startAutoResizer();
  const dato = new SiteClient(plugin.parameters.global.datoCmsApiToken);

  const container = document.createElement('div');
  container.classList.add('container');
  document.body.appendChild(container);
  const title = document.createElement('h4');
  title.classList.add('title');
  title.textContent = plugin.parameters.instance.title;
  container.appendChild(title);

  const postItemType = Object.values(plugin.itemTypes).find(
    itemType => itemType.attributes.api_key === plugin.parameters.instance.itemTypeApiKey,
  );

  const linkField = Object.values(plugin.fields).find(field => (
    field.relationships.item_type.data.id === postItemType.id
      && field.attributes.api_key === plugin.parameters.instance.fieldApiKey
github gridsome / gridsome / packages / source-datocms / index.js View on Github external
async fetchContent (store) {
    const { addCollection, getCollection } = store
    const { apiToken, apiUrl, previewMode } = this.options

    const clientHeaders = {
      'X-Reason': 'dump',
      'X-SSG': 'gridsome'
    }

    const client = apiUrl
      ? new SiteClient(apiToken, clientHeaders, apiUrl)
      : new SiteClient(apiToken, clientHeaders)

    const loader = new Loader(client, previewMode)
    await loader.load()

    const { itemsRepo, entitiesRepo } = loader

    const cache = {}

    for (const itemType of itemsRepo.itemTypes) {
      const { titleField, fields } = itemType

      const slugField = fields.find(({ fieldType }) => fieldType === 'slug')

      cache[itemType.id] = { titleField, slugField }

      const collection = addCollection(
github gridsome / gridsome / packages / source-datocms / index.js View on Github external
async fetchContent (store) {
    const { addCollection, getCollection } = store
    const { apiToken, apiUrl, previewMode } = this.options

    const clientHeaders = {
      'X-Reason': 'dump',
      'X-SSG': 'gridsome'
    }

    const client = apiUrl
      ? new SiteClient(apiToken, clientHeaders, apiUrl)
      : new SiteClient(apiToken, clientHeaders)

    const loader = new Loader(client, previewMode)
    await loader.load()

    const { itemsRepo, entitiesRepo } = loader

    const cache = {}

    for (const itemType of itemsRepo.itemTypes) {
      const { titleField, fields } = itemType

      const slugField = fields.find(({ fieldType }) => fieldType === 'slug')

      cache[itemType.id] = { titleField, slugField }
github datocms / gatsby-source-datocms / src / hooks / sourceNodes / index.js View on Github external
module.exports = async (
  { actions, getNode, getNodesByType, reporter, parentSpan, schema, store },
  {
    apiToken,
    disableLiveReload,
    previewMode,
    apiUrl,
    localeFallbacks: rawLocaleFallbacks,
  },
) => {
  let client = apiUrl
    ? new SiteClient(apiToken, CLIENT_HEADERS, apiUrl)
    : new SiteClient(apiToken, CLIENT_HEADERS);

  const localeFallbacks = rawLocaleFallbacks || {};

  const loader = new Loader(client, process.env.GATSBY_CLOUD || previewMode);

  const program = store.getState().program;
  const cacheDir = `${program.directory}/.cache/datocms-assets`;

  if (!fs.existsSync(cacheDir)) {
    fs.mkdirSync(cacheDir);
  }

  const context = {
    entitiesRepo: loader.entitiesRepo,
    actions,
    getNode,
github static-dev / spike-datocms / lib / index.js View on Github external
constructor(opts) {
    Object.assign(this, this.validate(opts))
    this.client = new SiteClient(opts.token, { 'X-Api-Version': '1' })
    bindAllClass(this, ['apply', 'run'])
  }
github datocms / gatsby-source-datocms / src / hooks / sourceNodes / index.js View on Github external
module.exports = async (
  { actions, getNode, getNodesByType, reporter, parentSpan, schema, store },
  {
    apiToken,
    disableLiveReload,
    previewMode,
    apiUrl,
    localeFallbacks: rawLocaleFallbacks,
  },
) => {
  let client = apiUrl
    ? new SiteClient(apiToken, CLIENT_HEADERS, apiUrl)
    : new SiteClient(apiToken, CLIENT_HEADERS);

  const localeFallbacks = rawLocaleFallbacks || {};

  const loader = new Loader(client, process.env.GATSBY_CLOUD || previewMode);

  const program = store.getState().program;
  const cacheDir = `${program.directory}/.cache/datocms-assets`;

  if (!fs.existsSync(cacheDir)) {
    fs.mkdirSync(cacheDir);
  }

  const context = {
    entitiesRepo: loader.entitiesRepo,
    actions,
github gridsome / gridsome / packages / source-datocms / index.js View on Github external
async fetchContent (store) {
    const { addCollection, getCollection } = store
    const { apiToken, apiUrl, previewMode } = this.options

    const clientHeaders = {
      'X-Reason': 'dump',
      'X-SSG': 'gridsome'
    }

    const client = apiUrl
      ? new SiteClient(apiToken, clientHeaders, apiUrl)
      : new SiteClient(apiToken, clientHeaders)

    const loader = new Loader(client, previewMode)
    await loader.load()

    const { itemsRepo, entitiesRepo } = loader

    const cache = {}

    for (const itemType of itemsRepo.itemTypes) {
      const { titleField, fields } = itemType

      const slugField = fields.find(({ fieldType }) => fieldType === 'slug')

      cache[itemType.id] = { titleField, slugField }

      const collection = addCollection(
        this.createTypeName(itemType.name),
      )
github datocms / gatsby-source-datocms / src / hooks / sourceNodes / index.js View on Github external
{ actions, getNode, getNodesByType, reporter, parentSpan, schema, store },
  {
    apiToken,
    disableLiveReload,
    previewMode,
    apiUrl,
    localeFallbacks: rawLocaleFallbacks,
  },
) => {
  let client = apiUrl
    ? new SiteClient(apiToken, CLIENT_HEADERS, apiUrl)
    : new SiteClient(apiToken, CLIENT_HEADERS);

  const localeFallbacks = rawLocaleFallbacks || {};

  const loader = new Loader(client, process.env.GATSBY_CLOUD || previewMode);

  const program = store.getState().program;
  const cacheDir = `${program.directory}/.cache/datocms-assets`;

  if (!fs.existsSync(cacheDir)) {
    fs.mkdirSync(cacheDir);
  }

  const context = {
    entitiesRepo: loader.entitiesRepo,
    actions,
    getNode,
    getNodesByType,
    localeFallbacks,
    schema,
    store,
github datocms / gatsby-source-datocms / createItemNodes.js View on Github external
var _require = require('humps'),
    camelize = _require.camelize,
    pascalize = _require.pascalize;

var initNodeFromEntity = require('./initNodeFromEntity');
var addDigestToNode = require('./addDigestToNode');
var mId = require('./makeId');
var createTextNode = require('./createTextNode');
var createAssetNode = require('./createAssetNode');
var createSeoMetaTagsNode = require('./createSeoMetaTagsNode');

var _require2 = require('datocms-client'),
    Item = _require2.Item,
    i18n = _require2.i18n,
    buildField = _require2.buildField;

var objectEntries = require('object.entries');

var itemNodeId = function itemNodeId(repo, id, locale) {
  if (!id) {
    return null;
  }

  var itemEntity = repo.findEntity('item', id);
  return mId(itemEntity, locale);
};

module.exports = function createItemNodes(repo, itemsRepo, createNode) {
  var items = repo.findEntitiesOfType('item');
  var site = repo.findEntitiesOfType('site')[0];
github datocms / gatsby-source-datocms / createAssetNode.js View on Github external
'use strict';

var addDigestToNode = require('./addDigestToNode');

var _require = require('datocms-client'),
    buildField = _require.buildField;

var objectAssign = require('object-assign');

module.exports = function createAssetNode(parent, field, value, itemsRepo, createNode) {
  if (!value) {
    return null;
  }

  var node = objectAssign({
    id: 'DatoCmsAsset-' + value,
    parent: parent.id,
    children: [],
    internal: {
      type: 'DatoCmsAsset'
    }
  }, buildField('file', value, itemsRepo).toMap());