Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1427258
index.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
index.js
View Options
/**
* A safe interface to HTML5 `localStorage` and `sessionStorage`.
*
* This normalises differences across browsers and silences any and all
* exceptions that may occur.
*
* **Note**: Storage keys are not automatically prefixed in relation to
* MediaWiki and/or the current wiki. Always **prefix your keys** with "mw" to
* avoid conflicts with gadgets, JavaScript libraries, browser extensions,
* internal CDN or webserver cookies, and third-party applications that may
* be embedded on the page.
*
* **Warning**: This API has limited storage space and does not use an expiry
* by default. This means unused **keys are stored forever**, unless you
* opt-in to the `expiry` parameter or otherwise make sure that your code
* can rediscover and delete keys you created in the past.
*
* If you don't use the `expiry` parameter, avoid keys with variable
* components as this leads to untracked keys that your code has no way
* to know about and delete when the data is no longer needed. Instead,
* store dynamic values in an object under a single constant key that you
* manage or replace over time.
* See also T121646.
*
* @example mw.storage.set( key, value, expiry );
* mw.storage.set( key, value ); // stored indefinitely
* mw.storage.get( key );
*
* @example var local = require( 'mediawiki.storage' ).local;
* local.set( key, value, expiry );
* local.get( key );
*
* @example mw.storage.session.set( key, value );
* mw.storage.session.get( key );
*
* @example var session = require( 'mediawiki.storage' ).session;
* session.set( key, value );
* session.get( key );
*
* @module mediawiki.storage
*/
'use strict'
;
// Catch exceptions to avoid fatal in Chrome's "Block data storage" mode
// which throws when accessing the localStorage property itself, as opposed
// to the standard behaviour of throwing on getItem/setItem. (T148998)
const
localStorage
=
(
function
()
{
try
{
return
window
.
localStorage
;
}
catch
(
e
)
{}
}()
),
sessionStorage
=
(
function
()
{
try
{
return
window
.
sessionStorage
;
}
catch
(
e
)
{}
}()
);
const
SafeStorage
=
require
(
'./SafeStorage.js'
);
/**
* Alias for {@link module:mediawiki.storage.local}.
*
* @type {SafeStorage}
* @memberof mw
* @property {SafeStorage} session Alias for {@link module:mediawiki.storage.session}.
*/
mw
.
storage
=
new
SafeStorage
(
localStorage
);
mw
.
storage
.
session
=
new
SafeStorage
(
sessionStorage
);
module
.
exports
=
{
/**
* A safe interface to HTML5 `localStorage`.
*
* @type {SafeStorage}
*/
local
:
mw
.
storage
,
/**
* A safe interface to HTML5 `sessionStorage`.
*
* **Note**: Data persisted via `sessionStorage` will persist for the lifetime
* of the browser *tab*, not the browser *window*.
* For longer-lasting persistence across tabs, refer to mw.storage or mw.cookie instead.
*
* @type {SafeStorage}
*/
session
:
mw
.
storage
.
session
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, May 16, 14:25 (1 d, 7 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
97/88/22672cc9b20046a6a243b8f0f190
Default Alt Text
index.js (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment