Skip to content

Commit fd70a0b

Browse files
committed
refactor(store): use the statement ID for reindexing
1 parent 649d1c1 commit fd70a0b

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

lib/store/indexed-statements-store.ts

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,12 @@ export class IndexedStatementsStore implements PolicyStatementStore {
4444
}
4545

4646
addAll(statements: ParsedPolicyStatement[]) {
47-
statements.forEach((statement) =>
48-
this.#statements.set(statement[SYM_SID], statement)
49-
);
50-
this.#reindexAll(statements);
47+
const sids = statements.map((statement) => {
48+
const sid = statement[SYM_SID];
49+
this.#statements.set(sid, statement);
50+
return sid;
51+
});
52+
this.#reindexAll(sids);
5153
}
5254

5355
get(sid: string): ParsedPolicyStatement | undefined {
@@ -85,8 +87,18 @@ export class IndexedStatementsStore implements PolicyStatementStore {
8587
return statement;
8688
}
8789

88-
#reindexAll(statements: ParsedPolicyStatement[]) {
89-
const sids = statements.map((s) => s[SYM_SID]);
90+
#reindexAll(sids: string[]) {
91+
const statements: ParsedPolicyStatement[] = [];
92+
93+
sids.forEach((sid) => {
94+
const statement = this.#statements.get(sid);
95+
96+
if (!statement) {
97+
return;
98+
} else {
99+
statements.push(statement);
100+
}
101+
});
90102

91103
const globAll = statements
92104
.filter((s) => s.actionsByType.globAll)

0 commit comments

Comments
 (0)