Skip to content

Commit abd3cc6

Browse files
authored
Merge pull request #17 from tilde-lab/#16
Fix #16
2 parents 1dbe0f4 + d02b1bd commit abd3cc6

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

prefetch.js

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,32 @@ const optimade = new Optimade({
1414
providersUrl: 'https://providers.optimade.org/providers.json'
1515
});
1616

17-
optimade.getProviders().then(async () => {
17+
let time = performance.now(),
18+
alltime = performance.now(),
19+
skip = process.env.SKIP;
20+
// || 'oqmd, jarvis';
21+
22+
optimade.getProviders().then(async (providers) => {
23+
24+
console.warn('providers fetched from source', performance.now() - time);
25+
time = performance.now();
1826

1927
const filteredApis = Object.entries(optimade.apis).filter(([k, v]) => v.length);
2028
const apis = filteredApis.sort().reduce((acc, [k, v]) => {
2129
return { ...acc, ...{ [k]: v } };
2230
}, {});
2331

24-
const source = Object.keys(optimade.providers).sort().reduce(
32+
const source = Object.keys(providers).sort().reduce(
2533
(obj, key) => {
26-
obj[key] = optimade.providers[key];
34+
obj[key] = providers[key];
2735
return obj;
2836
}, {});
2937

30-
async function getQueryLimits(providers, max = 1000) {
38+
console.warn('providers sorted', performance.now() - time);
39+
40+
async function getQueryLimits(providers, skip = '', max = 1000) {
41+
42+
providers = Object.fromEntries(Object.entries(providers).filter(([key]) => !skip.includes(key)));
3143

3244
const fetchLimits = async (k, v) => {
3345
const formula = `chemical_formula_anonymous="A2B"`;
@@ -51,21 +63,26 @@ optimade.getProviders().then(async () => {
5163
console.log(error);
5264
}
5365
};
54-
55-
providers = await Object.entries(providers).reduce(async (promise, [k, v]) => {
66+
time = performance.now();
67+
return await Object.entries(providers).reduce(async (promise, [k, v], i) => {
5668
const provider = await fetchLimits(k, v);
5769
const acc = await promise;
70+
console.log(i, provider);
5871
return { ...acc, ...provider };
5972
}, Promise.resolve({}));
60-
61-
const log = { prefetched: Object.keys(providers).length, source: Object.keys(source).length };
62-
console.log(log);
63-
64-
return providers;
6573
}
6674

67-
getQueryLimits(source).then(providers => {
75+
getQueryLimits(source, skip).then(providers => {
6876
const data = { providers, apis };
77+
78+
console.warn('limits fetched', performance.now() - time);
79+
80+
console.log({
81+
prefetched: Object.keys(providers).length,
82+
source: Object.keys(source).length,
83+
alltime: performance.now() - alltime
84+
});
85+
6986
fs.writeFile(path.join(__dirname, 'dist/prefetched.json'), JSON.stringify(data), (err) => {
7087
if (err) throw err;
7188
console.log('The prefetched.json file has been saved!');

0 commit comments

Comments
 (0)