adding dev files to master

adding all the dev files, package, webpack etc, including build which will contain minified release
This commit is contained in:
wompmacho
2020-11-01 21:02:00 -05:00
parent f47b10a05e
commit 3d81e92ecb
88 changed files with 7717 additions and 0 deletions

View File

@@ -0,0 +1,92 @@
/**
* MIT License
*
* Copyright (c) 2020 wompmacho
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
class Storage {
get(keys = null) {
return new Promise((res, rej) => {
const returnSingle = typeof keys === 'string' || typeof keys === 'number';
// resolve args = items:object
chrome.storage[this.store].get(keys, (items) => {
if(returnSingle) {
res(items[keys]);
} else {
res(items);
}
});
});
}
getBytesInUse(keys = null) {
return new Promise((res, rej) => {
// resolve args = bytesInUse:integer
chrome.storage[this.store].getBytesInUse(keys, res);
});
}
set(items) {
return new Promise((res, rej) => {
// resolve args = (none)
chrome.storage[this.store].set(items, res);
});
}
remove(keys) {
// resolve args = (none)
return new Promise((res, rej) => {
chrome.storage[this.store].remove(keys, res);
});
}
clear() {
// resolve args = (none)
return new Promise((res, rej) => {
chrome.storage[this.store].clear(res);
});
}
listen(item, onChange) {
if(typeof item === 'function') {
onChange = item;
item = null;
}
chrome.storage.onChanged.addListener((changes, areaName) => {
if(areaName === this.store) {
if(item !== null) {
if(changes.hasOwnProperty(item)) {
const oldValue = changes[item].oldValue || null;
const newValue = changes[item].newValue || null;
onChange(oldValue, newValue);
}
} else {
onChange(changes);
}
}
});
}
}
export default Storage;