@2diglobal/gatsby-source-bog

Gatsby source plugin for BOG API version 2.1.1

Usage no npm install needed!

<script type="module">
  import 2diglobalGatsbySourceBog from 'https://cdn.skypack.dev/@2diglobal/gatsby-source-bog';
</script>

README

gatsby-source-bog

npm package

Gatsby source plugin for BOG API version 2.1.1. Loads all games the API provides into GraphQL nodes, supports Gatsby Image integration and setting of custom game providers and uses cache to speedup subsequent builds.

Table of contents

Install

npm i @2diglobal/gatsby-source-bog

Usage

// gatsby-config.js
module.exports = {
  plugins: [
    {
      resolve: 'gatsby-source-bog',
      options: {
        /**
         * API root URl with a trailing slash. This plugin currently
         * supports only the 2.1.1 version of the API.
         */
        apiRoot: 'https://api.casinodomainexample.com/v2_1_1/',

        /**
         *  Your API key.
         */
        apiKey: '<API key>',

        /**
         * The URl of the root location of API images. Without a
         * trailing slash, as the images hosted 'localy' on the API
         * servers will start with a slash. If the image isn't hosted
         * by the API's own servers, or i.e. on a CDN, this parameter
         * will be ignored as in that case the image usually has the
         * whole url.
         * 
         * However, this parameter must always be set in case of
         * changes by the API.
         */
        gameImageRoot: 'https://api.casinodomainexample.com',

        /**
         * Set a custom array of game provider keys you would like to
         * filter your games by.
         * 
         * If not set, defaults to all providers.
         */
        gameProviders: [
          '_betsoft',
          '_kiron',
          '_quickspin'
        ],

        /**
         * Set the maximum number of games that will be requested when
         * starting in `development` enviroment. Useful to set to a
         * low number as each game node usually has 4 images which
         * need to be downloaded, so the bootstrap proccess gets
         * pretty long if you are always loading every game that the
         * casino offers. This setting is ignored in `production`. If
         * set to 0, all casino games will be loaded even in
         * `development`.
         * 
         * Defaults to 50 if not set.
         * 
         * The proccess of downloading and creating image nodes for
         * every game is cached so subsequent builds won't take as
         * long if the .cache folder is intact.
         */
        devMaxGameCount: 40
      }
    }
  ]
}

The package also provides utility functions for converting API game data into a GraphQL representation. Those are the same methods used internaly when adding API games as nodes.

License

MIT