1import { paramMock } from "./utils" 2 3export function mockDataStorage() { 4 global.systemplugin.data = {} 5 const paramValueTypeMock = '[PC Preview] unknow ValueType' 6 const storageObserverMock = { 7 key: "[PC preview] unknow key" 8 } 9 const storageMock = { 10 getSync: function () { 11 console.warn("Storage.getSync interface mocked in the Previewer. How this interface works on the Previewer may" + 12 " be different from that on a real device.") 13 return paramValueTypeMock 14 }, 15 get: function (...args) { 16 console.warn("Storage.get interface mocked in the Previewer. How this interface works on the Previewer may be" + 17 " different from that on a real device.") 18 const len = args.length 19 if (typeof args[len - 1] === 'function') { 20 args[len - 1].call(this, paramMock.businessErrorMock, paramValueTypeMock) 21 } else { 22 return new Promise((resolve) => { 23 resolve(paramValueTypeMock) 24 }) 25 } 26 }, 27 hasSync: function () { 28 console.warn("Storage.hasSync interface mocked in the Previewer. How this interface works on the Previewer may" + 29 " be different from that on a real device.") 30 return paramMock.paramBooleanMock 31 }, 32 has: function (...args) { 33 console.warn("Storage.has interface mocked in the Previewer. How this interface works on the Previewer may be" + 34 " different from that on a real device.") 35 const len = args.length 36 if (typeof args[len - 1] === 'function') { 37 args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock) 38 } else { 39 return new Promise((resolve) => { 40 resolve(paramMock.paramBooleanMock) 41 }) 42 } 43 }, 44 putSync: function () { 45 console.warn("Storage.putSync interface mocked in the Previewer. How this interface works on the Previewer may" + 46 " be different from that on a real device.") 47 }, 48 put: function (...args) { 49 console.warn("Storage.put interface mocked in the Previewer. How this interface works on the Previewer may be" + 50 " different from that on a real device.") 51 const len = args.length 52 if (typeof args[len - 1] === 'function') { 53 args[len - 1].call(this, paramMock.businessErrorMock) 54 } else { 55 return new Promise((resolve) => { 56 resolve() 57 }) 58 } 59 }, 60 deleteSync: function () { 61 console.warn("Storage.deleteSync interface mocked in the Previewer. How this interface works on the Previewer" + 62 " may be different from that on a real device.") 63 return 64 }, 65 delete: function (...args) { 66 console.warn("Storage.delete interface mocked in the Previewer. How this interface works on the Previewer may" + 67 " be different from that on a real device.") 68 const len = args.length 69 if (typeof args[len - 1] === 'function') { 70 args[len - 1].call(this, paramMock.businessErrorMock) 71 } else { 72 return new Promise((resolve) => { 73 resolve() 74 }) 75 } 76 }, 77 clearSync: function () { 78 console.warn("Storage.clearSync interface mocked in the Previewer. How this interface works on the Previewer" + 79 " may be different from that on a real device.") 80 }, 81 clear: function (...args) { 82 console.warn("Storage.clear interface mocked in the Previewer. How this interface works on the Previewer may" + 83 " be different from that on a real device.") 84 const len = args.length 85 if (typeof args[len - 1] === 'function') { 86 args[len - 1].call(this, paramMock.businessErrorMock) 87 } else { 88 return new Promise((resolve) => { 89 resolve() 90 }) 91 } 92 }, 93 flushSync: function () { 94 console.warn("Storage.flushSync interface mocked in the Previewer. How this interface works on the Previewer" + 95 " may be different from that on a real device.") 96 }, 97 flush: function (...args) { 98 console.warn("Storage.flush interface mocked in the Previewer. How this interface works on the Previewer may" + 99 " be different from that on a real device.") 100 const len = args.length 101 if (typeof args[len - 1] === 'function') { 102 args[len - 1].call(this, paramMock.businessErrorMock) 103 } else { 104 return new Promise((resolve) => { 105 resolve() 106 }) 107 } 108 }, 109 on: function (...args) { 110 console.warn("Storage.on interface mocked in the Previewer. How this interface works on the Previewer may be" + 111 " different from that on a real device.") 112 const len = args.length 113 args[len - 1].call(this, storageObserverMock) 114 }, 115 off: function (...args) { 116 console.warn("Storage.off interface mocked in the Previewer. How this interface works on the Previewer may be" + 117 " different from that on a real device.") 118 const len = args.length 119 args[len - 1].call(this, storageObserverMock) 120 } 121 } 122 global.systemplugin.data.storage = { 123 getStorageSync: function () { 124 console.warn("data.storage.getStorageSync interface mocked in the Previewer. How this interface works on the" + 125 " Previewer may be different from that on a real device.") 126 return storageMock 127 }, 128 getStorage: function (...args) { 129 console.warn("data.storage.getStorage interface mocked in the Previewer. How this interface works on the" + 130 " Previewer may be different from that on a real device.") 131 const len = args.length 132 if (typeof args[len - 1] === 'function') { 133 args[len - 1].call(this, paramMock.businessErrorMock, storageMock) 134 } else { 135 return new Promise((resolve) => { 136 resolve(storageMock) 137 }) 138 } 139 }, 140 deleteStorageSync: function () { 141 console.warn("data.storage.deleteStorageSync interface mocked in the Previewer. How this interface works on" + 142 " the Previewer may be different from that on a real device.") 143 }, 144 deleteStorage: function (...args) { 145 console.warn("data.storage.deleteStorage interface mocked in the Previewer. How this interface works on the" + 146 " Previewer may be different from that on a real device.") 147 const len = args.length 148 if (typeof args[len - 1] === 'function') { 149 args[len - 1].call(this, paramMock.businessErrorMock) 150 } else { 151 return new Promise((resolve) => { 152 resolve() 153 }) 154 } 155 }, 156 removeStorageFromCacheSync: function () { 157 console.warn("data.storage.removeStorageFromCacheSync interface mocked in the Previewer. How this interface" + 158 " works on the Previewer may be different from that on a real device.") 159 }, 160 removeStorageFromCache: function (...args) { 161 console.warn("data.storage.removeStorageFromCache interface mocked in the Previewer. How this interface works" + 162 " on the Previewer may be different from that on a real device.") 163 const len = args.length 164 if (typeof args[len - 1] === 'function') { 165 args[len - 1].call(this, paramMock.businessErrorMock) 166 } else { 167 return new Promise((resolve) => { 168 resolve() 169 }) 170 } 171 } 172 } 173}