{"version":3,"file":"Storage.mjs","sources":["../../src/Storage.ts"],"sourcesContent":["/// <reference path=\"../typings/cocos-creator.d.ts\" />\n\n/**\n * We do not assign 'storage' to window.localStorage immediatelly for React\n * Native compatibility. window.localStorage is not present when this module is\n * loaded.\n */\n\nlet storage: any;\n\nfunction getStorage(): Storage {\n    if (!storage)  {\n        storage = (typeof (cc) !== 'undefined' && cc.sys && cc.sys.localStorage)\n            ? cc.sys.localStorage  // compatibility with cocos creator\n            : typeof (window) !== \"undefined\" && window.localStorage //RN does have window object at this point, but localStorage is not defined\n                ? window.localStorage // regular browser environment\n                : { // mock localStorage for Node.js or RN environment\n                    cache: {},\n                    setItem: function(key, value) { this.cache[key] = value; },\n                    getItem: function(key) { this.cache[key]; },\n                    removeItem: function(key) { delete this.cache[key]; },\n                };\n\n    }\n    return storage;\n}\n\nexport function setItem(key: string, value: string) {\n    getStorage().setItem(key, value);\n}\n\nexport function removeItem(key: string) {\n    getStorage().removeItem(key);\n}\n\nexport function getItem(key: string, callback: Function) {\n    const value: any = getStorage().getItem(key);\n\n    if (\n        typeof (Promise) === 'undefined' || // old browsers\n        !(value instanceof Promise)\n    ) {\n        // browser has synchronous return\n        callback(value);\n\n    } else {\n        // react-native is asynchronous\n        value.then((id) => callback(id));\n    }\n}\n"],"names":[],"mappings":";AAAA;AAEA;;;;AAIG;AAEH,IAAI,OAAY,CAAC;AAEjB,SAAS,UAAU,GAAA;IACf,IAAI,CAAC,OAAO,EAAG;AACX,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,YAAY;AACnE,cAAE,EAAE,CAAC,GAAG,CAAC,YAAY;AACrB,cAAE,QAAQ,MAAM,CAAC,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY;AACpD,kBAAE,MAAM,CAAC,YAAY;AACrB,kBAAE;AACE,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,OAAO,EAAE,UAAS,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE;AAC1D,oBAAA,OAAO,EAAE,UAAS,GAAG,EAAA,EAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C,oBAAA,UAAU,EAAE,UAAS,GAAG,EAAA,EAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;iBACxD,CAAC;AAEb,KAAA;AACD,IAAA,OAAO,OAAO,CAAC;AACnB,CAAC;AAEe,SAAA,OAAO,CAAC,GAAW,EAAE,KAAa,EAAA;IAC9C,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAEK,SAAU,UAAU,CAAC,GAAW,EAAA;AAClC,IAAA,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAEe,SAAA,OAAO,CAAC,GAAW,EAAE,QAAkB,EAAA;IACnD,MAAM,KAAK,GAAQ,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAE7C,IAAA,IACI,QAAQ,OAAO,CAAC,KAAK,WAAW;AAChC,QAAA,EAAE,KAAK,YAAY,OAAO,CAAC,EAC7B;;QAEE,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEnB,KAAA;AAAM,SAAA;;AAEH,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAA;AACL;;;;"}