@mirawision/chrome-api
Version:
A comprehensive TypeScript library for Chrome Extension API, providing type-safe wrappers and utilities for bookmarks, commands, context menus, cookies, downloads, storage, notifications, runtime, scripting, and side panel functionalities.
118 lines (117 loc) • 3.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Windows = void 0;
class Windows {
static async get(windowId, getInfo) {
return new Promise((resolve, reject) => {
chrome.windows.get(windowId, getInfo || {}, (window) => {
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError);
}
else {
resolve(window);
}
});
});
}
static async getCurrent(getInfo) {
return new Promise((resolve, reject) => {
chrome.windows.getCurrent(getInfo || {}, (window) => {
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError);
}
else {
resolve(window);
}
});
});
}
static async getLastFocused(getInfo) {
return new Promise((resolve, reject) => {
chrome.windows.getLastFocused(getInfo || {}, (window) => {
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError);
}
else {
resolve(window);
}
});
});
}
static async getAll(getInfo) {
return new Promise((resolve, reject) => {
chrome.windows.getAll(getInfo || {}, (windows) => {
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError);
}
else {
resolve(windows);
}
});
});
}
static async create(createData) {
return new Promise((resolve, reject) => {
chrome.windows.create(createData || {}, (window) => {
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError);
}
else {
if (!window)
reject(new Error('Window not created'));
else
resolve(window);
}
});
});
}
static async update(windowId, updateInfo) {
return new Promise((resolve, reject) => {
chrome.windows.update(windowId, updateInfo, (window) => {
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError);
}
else {
resolve(window);
}
});
});
}
static async remove(windowId) {
return new Promise((resolve, reject) => {
chrome.windows.remove(windowId, () => {
if (chrome.runtime.lastError) {
reject(chrome.runtime.lastError);
}
else {
resolve();
}
});
});
}
static addCreatedListener(callback) {
chrome.windows.onCreated.addListener(callback);
}
static addRemovedListener(callback) {
chrome.windows.onRemoved.addListener(callback);
}
static addFocusChangedListener(callback) {
chrome.windows.onFocusChanged.addListener(callback);
}
static addBoundsChangedListener(callback) {
chrome.windows.onBoundsChanged.addListener(callback);
}
static removeCreatedListener(callback) {
chrome.windows.onCreated.removeListener(callback);
}
static removeRemovedListener(callback) {
chrome.windows.onRemoved.removeListener(callback);
}
static removeFocusChangedListener(callback) {
chrome.windows.onFocusChanged.removeListener(callback);
}
static removeBoundsChangedListener(callback) {
chrome.windows.onBoundsChanged.removeListener(callback);
}
}
exports.Windows = Windows;