epic-games-store-crawler
Version:
A crawler to retrieve store data from the Epic Games store
102 lines • 3.38 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const graphql_request_1 = require("graphql-request");
const fetch = require("node-fetch");
const constants_1 = require("./const/constants");
const query_1 = require("./const/query");
/**
* A crawler for the Epic Games Store. Crawls various data from the Epic Games Store.
*/
const Crawler = function () { };
/**
* Retrieve all catalog items for given variables
* @param variables variables for GraphQL query
*
* @example
*
* import { Crawler } from 'epic-games-store-crawler';
*
* Crawler.getItems({
* allowedCountries: 'DE',
* category: 'games/edition/base|bundles/games|editors',
* count: 30,
* country: 'DE',
* locale: 'de'
* });
*
* @returns catalog items
*/
Crawler.getItems = (variables) => __awaiter(void 0, void 0, void 0, function* () {
const catalog = yield graphql_request_1.request(constants_1.default.GQL_BASE, graphql_request_1.gql `${query_1.default.Catalog}`, variables);
return catalog;
});
/**
* Retrieve all free catalog items for given variables
* @param variables variables for GraphQL query
*
* @example
*
* import { Crawler }from 'epic-games-store-crawler';
*
* Crawler.getFreeGames({
* allowCountries: 'DE',
* country: 'DE',
* locale: 'de'
* });
*
* @returns free catalog items
*/
Crawler.getFreeGames = (variables) => __awaiter(void 0, void 0, void 0, function* () {
const freeGames = yield graphql_request_1.request(constants_1.default.GQL_BASE, graphql_request_1.gql `${query_1.default.FreeCatalog}`, variables);
return freeGames;
});
/**
* Retrieve news feed
* @param locale current locale
* @param limit number of entries
*
* @example
*
* import Crawler from 'epic-games-store-crawler';
*
* Crawler.getNews('de', 30);
*
* @returns Epic Games Store news
*/
Crawler.getNews = (locale, limit) => __awaiter(void 0, void 0, void 0, function* () {
const news = yield fetch(`${constants_1.default.SC_BASE}/${locale}/${constants_1.default.SC_BLOG}?limit=${limit}`)
.then(res => res.json());
return news;
});
/**
* Retrieve catalog tags
* @param {CatalogTags} variables
*
* @example
*
* import { Crawler } from 'epic-games-store-crawler';
*
* Crawler.getCatalogTags({
* namespace: 'epic',
* locale: 'de',
* start: 0,
* count: 999
* });
*
* @returns catalog tags
*/
Crawler.getCatalogTags = (variables) => __awaiter(void 0, void 0, void 0, function* () {
const tags = yield graphql_request_1.request(constants_1.default.GQL_BASE, graphql_request_1.gql `${query_1.default.CatalogTags}`, variables);
return tags;
});
exports.default = Crawler;
//# sourceMappingURL=crawler.js.map