mirror of
https://github.com/feathericons/feather.git
synced 2023-08-10 21:13:24 +03:00
build: Refactor algolia script to reindex data atomically
This commit is contained in:
parent
962870d51c
commit
ae8e149850
@ -18,20 +18,32 @@ function syncAlgolia() {
|
||||
// ALGOLIA_ADMIN_KEY must be added as an environment variable in Travis CI
|
||||
const client = algolia(ALGOLIA_APP_ID, process.env.ALGOLIA_ADMIN_KEY);
|
||||
|
||||
// Initialize the target and temporary indexes
|
||||
const index = client.initIndex('icons');
|
||||
const indexTmp = client.initIndex('icons_tmp');
|
||||
|
||||
// Copy the settings, synonyms and rules (but not the records)
|
||||
// of the target index into the temporary index
|
||||
client.copyIndex(index.indexName, indexTmp.indexName, [
|
||||
'settings',
|
||||
'synonyms',
|
||||
'rules',
|
||||
]);
|
||||
|
||||
// Push data to the temporary index
|
||||
const records = Object.keys(icons).map(name => ({
|
||||
name,
|
||||
tags: tags[name] || [],
|
||||
}));
|
||||
|
||||
index.clearIndex((err, content) => {
|
||||
indexTmp.addObjects(records, (err, content) => {
|
||||
if (err) throw err;
|
||||
console.log(content);
|
||||
});
|
||||
|
||||
index.addObjects(records, (err, content) => {
|
||||
if (err) throw err;
|
||||
console.log(content);
|
||||
});
|
||||
// Move the temporary index to the target index
|
||||
client.moveIndex(indexTmp.indexName, index.indexName, (err, content) => {
|
||||
if (err) throw err;
|
||||
console.log(content);
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user