Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return new Promise((resolve, reject) => {
if (store === 'itunes') {
itunes.app({
appId: opt.appId,
country: opt.country, // TODO: Support more countries
})
.then((data) => {
setMetrics(store, opt.country, data) // TODO: Support more countries
.then(resolve)
.catch(reject);
})
.catch((err) => {
reject(new Error(`Itunes Scraper error for the app "${opt.appId}" (${opt.country}): ${err.message}`));
});
}
if (store === 'gplay') {
gplay.app({
appId: opt.appId,
'use strict';
// FIXME don't force memoization
const itunes = require('app-store-scraper').memoized();
const R = require('ramda');
const calc = require('../calc');
const debug = require('debug')('aso');
/*
* An object that holds all store-specific parts of the algorithms exposed by
* the library. This is not the most elegant solution ever, but beats introducing
* hierarchies and inheritance. If these objects grow too big it's probably better
* to break them into more cohessive components, maybe with defaults for the
* common stuff.
*/
const getCollection = (app) => app.free ? itunes.collection.TOP_FREE_IOS : itunes.collection.TOP_PAID_IOS;
const getGenre = (app) => app.primaryGenreId;
function buildStore (defaults) {