mirror of
				https://github.com/feathericons/feather.git
				synced 2023-08-10 21:13:24 +03:00 
			
		
		
		
	build: Use promises in algolia script
This commit is contained in:
		| @@ -21,23 +21,53 @@ function syncAlgolia() { | |||||||
|   const index = client.initIndex('icons'); |   const index = client.initIndex('icons'); | ||||||
|   const indexTmp = client.initIndex('icons_tmp'); |   const indexTmp = client.initIndex('icons_tmp'); | ||||||
|  |  | ||||||
|   indexTmp.setSettings({ |   console.log( | ||||||
|     searchableAttributes: ['unordered(name)', 'unordered(tags)'], |     "Copying target index's settings, synonyms and rules into temporary index...", | ||||||
|     customRanking: ['asc(name)'], |   ); | ||||||
|   }); |   scopedCopyIndex(client, index.indexName, indexTmp.indexName) | ||||||
|  |     .then(() => { | ||||||
|   const records = Object.keys(icons).map(name => ({ |       const objects = Object.keys(icons).map(name => ({ | ||||||
|         name, |         name, | ||||||
|         tags: tags[name] || [], |         tags: tags[name] || [], | ||||||
|       })); |       })); | ||||||
|  |  | ||||||
|   console.log('Pushing data to the temporary index...'); |       console.log('Adding objects to the temporary index...'); | ||||||
|   indexTmp.addObjects(records, err => { |       return addObjects(indexTmp, objects); | ||||||
|     if (err) throw err; |     }) | ||||||
|   }); |     .then(() => { | ||||||
|  |  | ||||||
|       console.log('Moving temporary index to target index...'); |       console.log('Moving temporary index to target index...'); | ||||||
|   client.moveIndex(indexTmp.indexName, index.indexName, err => { |       return moveIndex(client, indexTmp.indexName, index.indexName); | ||||||
|     if (err) throw err; |     }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function scopedCopyIndex( | ||||||
|  |   client, | ||||||
|  |   indexNameSrc, | ||||||
|  |   indexNameDest, | ||||||
|  |   scope = ['settings', 'synonyms', 'rules'], | ||||||
|  | ) { | ||||||
|  |   return new Promise((resolve, reject) => { | ||||||
|  |     client.copyIndex(indexNameSrc, indexNameDest, scope, (error, contents) => { | ||||||
|  |       if (error) reject(error); | ||||||
|  |       resolve(contents); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function addObjects(index, objects) { | ||||||
|  |   return new Promise((resolve, reject) => { | ||||||
|  |     index.addObjects(objects, (error, contents) => { | ||||||
|  |       if (error) reject(error); | ||||||
|  |       resolve(contents); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function moveIndex(client, indexNameSrc, indexNameDest) { | ||||||
|  |   return new Promise((resolve, reject) => { | ||||||
|  |     client.moveIndex(indexNameSrc, indexNameDest, (error, contents) => { | ||||||
|  |       if (error) reject(error); | ||||||
|  |       resolve(contents); | ||||||
|  |     }); | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Cole Bemis
					Cole Bemis