Skip to content

Commit 56c6f45

Browse files
authored
prefer localStorage over window.localStorage (#3646)
1 parent 32ea9f1 commit 56c6f45

File tree

5 files changed

+23
-11
lines changed

5 files changed

+23
-11
lines changed

.changeset/light-geckos-vanish.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@graphiql/toolkit": patch
3+
---
4+
5+
prefer `localStorage` over `window.localStorage`

.eslintrc.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,14 @@ module.exports = {
133133
'no-octal-escape': 'error',
134134
'no-param-reassign': 'error',
135135
'no-proto': 'error',
136-
'no-restricted-properties': 'off',
136+
'no-restricted-properties': [
137+
'error',
138+
{
139+
object: 'window',
140+
property: 'localStorage',
141+
message: 'Use `localStorage` instead',
142+
},
143+
],
137144
'no-return-assign': 'error',
138145
'no-return-await': 'error',
139146
'no-script-url': 'error',

packages/graphiql-toolkit/src/storage/base.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ export class StorageAPI {
6464
this.storage = null;
6565
} else {
6666
this.storage = {
67-
getItem: window.localStorage.getItem.bind(window.localStorage),
68-
setItem: window.localStorage.setItem.bind(window.localStorage),
69-
removeItem: window.localStorage.removeItem.bind(window.localStorage),
67+
getItem: localStorage.getItem.bind(localStorage),
68+
setItem: localStorage.setItem.bind(localStorage),
69+
removeItem: localStorage.removeItem.bind(localStorage),
7070

7171
get length() {
7272
let keys = 0;
73-
for (const key in window.localStorage) {
73+
for (const key in localStorage) {
7474
if (key.indexOf(`${STORAGE_NAMESPACE}:`) === 0) {
7575
keys += 1;
7676
}
@@ -80,9 +80,9 @@ export class StorageAPI {
8080

8181
clear() {
8282
// We only want to clear the namespaced items
83-
for (const key in window.localStorage) {
83+
for (const key in localStorage) {
8484
if (key.indexOf(`${STORAGE_NAMESPACE}:`) === 0) {
85-
window.localStorage.removeItem(key);
85+
localStorage.removeItem(key);
8686
}
8787
}
8888
},

packages/graphiql-toolkit/src/storage/custom.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export function createLocalStorage({
2525
removeItem: key => localStorage.removeItem(getStorageKey(key)),
2626
get length() {
2727
let keys = 0;
28-
for (const key in window.localStorage) {
28+
for (const key in localStorage) {
2929
if (key.indexOf(storageKeyPrefix) === 0) {
3030
keys += 1;
3131
}
@@ -35,9 +35,9 @@ export function createLocalStorage({
3535

3636
clear() {
3737
// We only want to clear the namespaced items
38-
for (const key in window.localStorage) {
38+
for (const key in localStorage) {
3939
if (key.indexOf(storageKeyPrefix) === 0) {
40-
window.localStorage.removeItem(key);
40+
localStorage.removeItem(key);
4141
}
4242
}
4343
},

packages/graphiql/src/components/__tests__/GraphiQL.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const simpleIntrospection = {
2929
};
3030

3131
beforeEach(() => {
32-
window.localStorage.clear();
32+
localStorage.clear();
3333
});
3434

3535
describe('GraphiQL', () => {

0 commit comments

Comments
 (0)