perf: prepared statements, CSP, digest pin, вырезание design-preview, нагрузочные бюджеты, jsdom-тесты web, composite CI, SBOM/Trivy
This commit is contained in:
1 parent
08be310e6b
commit
1a68597d48
31 files changed
+1313
-158
No files matched your search
@@ -0,0 +1,30 @@
|
||||
// Node ≥ 25 имеет собственный экспериментальный localStorage, который затеняет
|
||||
// jsdom и без --localstorage-file не работает. Подставляем простую реализацию.
|
||||
class MemoryStorage implements Storage {
|
||||
private map = new Map<string, string>()
|
||||
get length() {
|
||||
return this.map.size
|
||||
}
|
||||
clear() {
|
||||
this.map.clear()
|
||||
}
|
||||
getItem(key: string) {
|
||||
return this.map.get(key) ?? null
|
||||
}
|
||||
key(index: number) {
|
||||
return [...this.map.keys()][index] ?? null
|
||||
}
|
||||
removeItem(key: string) {
|
||||
this.map.delete(key)
|
||||
}
|
||||
setItem(key: string, value: string) {
|
||||
this.map.set(key, String(value))
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof globalThis.localStorage?.clear !== 'function') {
|
||||
Object.defineProperty(globalThis, 'localStorage', {
|
||||
value: new MemoryStorage(),
|
||||
configurable: true,
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user