27 lines
877 B
JavaScript
27 lines
877 B
JavaScript
|
import { getAllIdsIterator } from "../indexing/allIds"
|
||
|
import { getRecordInfo } from "../recordApi/recordInfo"
|
||
|
import { isTopLevelIndex } from "./hierarchy"
|
||
|
import { joinKey } from "../common"
|
||
|
import { initialiseIndex } from "../indexing/initialiseIndex"
|
||
|
|
||
|
export const initialiseNewIndex = async (app, indexNode) => {
|
||
|
|
||
|
if (isTopLevelIndex(indexNode)) {
|
||
|
await initialiseIndex(app.datastore, "/", indexNode)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
const iterate = await getAllIdsIterator(app)(indexNode.parent().nodeKey())
|
||
|
let iterateResult = await iterate()
|
||
|
while (!iterateResult.done) {
|
||
|
const { result } = iterateResult
|
||
|
for (const id of result.ids) {
|
||
|
const recordKey = joinKey(result.collectionKey, id)
|
||
|
await initialiseIndex(
|
||
|
app.datastore,
|
||
|
getRecordInfo(app.hierarchy, recordKey).dir,
|
||
|
indexNode)
|
||
|
}
|
||
|
iterateResult = await iterate()
|
||
|
}
|
||
|
}
|