UNPKG

epic-games-store-crawler

Version:

A crawler to retrieve store data from the Epic Games store

102 lines 3.38 kB
"use strict"; 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