igdb-api-node
Version:
Nodejs API Wrapper for the IGDB.com API
43 lines (42 loc) • 1.64 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTagNumber = void 0;
const apicalypse_1 = __importDefault(require("apicalypse"));
const tag_number_1 = __importDefault(require("./tag-number"));
exports.getTagNumber = tag_number_1.default;
const version_1 = require("./version");
const createIGDBClient = (clientID, appAccessToken, opts = {}) => {
const id = clientID || process.env.TWITCH_CLIENT_ID || global.TWITCH_CLIENT_ID;
const token = appAccessToken || process.env.TWITCH_APP_ACCESS_TOKEN || global.TWITCH_APP_ACCESS_TOKEN;
if (!id) {
throw new Error("ClientID must be provided, either as an argument or through env TWITCH_CLIENT_ID");
}
if (!token) {
throw new Error("AppAccessToken must be provided, either as an argument or through env TWITCH_APP_ACCESS_TOKEN");
}
const defaultOptions = {
method: 'POST',
baseURL: 'https://api.igdb.com/v4',
headers: {
'client-id': id,
'authorization': `Bearer ${token}`,
'x-user-agent': `igdb-api-node v${version_1.VERSION}`,
accept: 'application/json',
},
responseType: 'json'
};
// Deep merge the headers
const mergedOptions = {
...defaultOptions,
...opts,
headers: {
...defaultOptions.headers,
...(opts.headers || {})
}
};
return (0, apicalypse_1.default)(mergedOptions);
};
exports.default = createIGDBClient;
;