Improvements, GrapQL experiments. Fixed Babel dependencies.

This commit is contained in:
2019-12-15 22:16:55 +01:00
parent 7ba716cd6f
commit 07a6c77ce2
9 changed files with 183 additions and 1898 deletions

View File

@@ -272,19 +272,29 @@ function curateReleases(releases) {
return Promise.all(releases.map(async release => curateRelease(release)));
}
async function getChannelSite(release) {
try {
const site = await findSiteByUrl(release.channel);
return site || null;
} catch (error) {
const [site] = await fetchSites({
name: release.channel,
slug: release.channel,
});
return site || null;
async function attachChannelSite(release) {
if (!release.site.isFallback || !release.channel) {
throw new Error(`Unable to derive channel site from generic URL: ${release.url}.`);
}
const [site] = await fetchSites({
name: release.channel,
slug: release.channel,
});
if (site) {
return {
...release,
site,
};
}
const urlSite = await findSiteByUrl(release.channel);
return {
...release,
site: urlSite,
};
}
async function curateReleaseEntry(release) {
@@ -307,15 +317,6 @@ async function curateReleaseEntry(release) {
deep: typeof release.deep === 'boolean' ? release.deep : false,
};
if (release.site.isFallback && release.channel) {
const site = await getChannelSite(release);
if (site) {
curatedRelease.site_id = site.id;
return curatedRelease;
}
}
return curatedRelease;
}
@@ -477,18 +478,13 @@ async function storeRelease(release) {
async function storeReleases(releases) {
const storedReleases = await Promise.map(releases, async (release) => {
if (release.site.isFallback && !release.channel) {
console.error(`Unable to derive channel site from generic URL: ${release.url}.`);
return null;
}
try {
const releaseId = await storeRelease(release);
const releaseWithChannelSite = await attachChannelSite(release);
const releaseId = await storeRelease(releaseWithChannelSite);
return {
id: releaseId,
...release,
...releaseWithChannelSite,
};
} catch (error) {
console.error(error);