Skip to content

Commit bf459cc

Browse files
successfully load and index 'plugins
1 parent 45c233f commit bf459cc

File tree

6 files changed

+51
-18
lines changed

6 files changed

+51
-18
lines changed

src/handlers/intent.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import fsOperation from "fileSystem";
2+
import internalFs from "fileSystem/internalFs";
23
import openFile from "lib/openFile";
34
import helpers from "utils/helpers";
45

@@ -32,7 +33,7 @@ export default async function HandleIntent(intent = {}) {
3233

3334
if (module === "plugin") {
3435
const { default: Plugin } = await import("pages/plugin");
35-
const installed = await fsOperation(PLUGIN_DIR, value).exists();
36+
const installed = await internalFs.exists(PLUGIN_DIR);
3637
Plugin({ id: value, installed, install: action === "install" });
3738
}
3839

src/lib/checkPluginsUpdate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import fsOperation from "../fileSystem";
33
import Url from "../utils/Url";
44

55
export default async function checkPluginsUpdate() {
6-
const plugins = await fsOperation(PLUGIN_DIR).lsDir();
6+
const plugins = await internalFs.listDir(PLUGIN_DIR);
77
const promises = [];
88
const updates = [];
99

src/lib/installPlugin.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import alert from "dialogs/alert";
33
import confirm from "dialogs/confirm";
44
import loader from "dialogs/loader";
55
import fsOperation from "fileSystem";
6+
import internalFs from "fileSystem/internalFs";
67
import purchaseListener from "handlers/purchase";
78
import JSZip from "jszip";
89
import Url from "utils/Url";
@@ -42,8 +43,8 @@ export default async function installPlugin(
4243
let state;
4344

4445
try {
45-
if (!(await fsOperation(PLUGIN_DIR).exists())) {
46-
await fsOperation(DATA_STORAGE).createDirectory("plugins");
46+
if (!(await internalFs.exists(PLUGIN_DIR))) {
47+
await internalFs.createDir(DATA_STORAGE, "plugins");
4748
}
4849
} catch (error) {
4950
window.log("error", error);
@@ -181,12 +182,10 @@ export default async function installPlugin(
181182
state = await InstallState.new(id);
182183
console.log("Install state end");
183184

184-
if (!(await fsOperation(pluginDir).exists())) {
185-
await fsOperation(PLUGIN_DIR).createDirectory(id);
185+
if (!(await internalFs.exists(pluginDir))) {
186+
await internalFs.createDir(PLUGIN_DIR, id);
186187
}
187188

188-
console.log(zip);
189-
190189
const promises = Object.keys(zip.files).map(async (file) => {
191190
try {
192191
let correctFile = file;

src/lib/loadPlugins.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import internalFs from "fileSystem/internalFs";
12
import fsOperation from "../fileSystem";
23
import Url from "../utils/Url";
34
import loadPlugin from "./loadPlugin";
@@ -24,7 +25,7 @@ const THEME_IDENTIFIERS = new Set([
2425
]);
2526

2627
export default async function loadPlugins(loadOnlyTheme = false) {
27-
const plugins = await fsOperation(PLUGIN_DIR).lsDir();
28+
const plugins = await internalFs.listDir(PLUGIN_DIR);
2829
const results = [];
2930
const failedPlugins = [];
3031
const loadedPlugins = new Set();

src/pages/plugins/plugins.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ export default function PluginsInclude(updates) {
305305
hasMore = false;
306306
}
307307

308-
const installed = await fsOperation(PLUGIN_DIR).lsDir();
308+
const installed = await internalFs.listDir(PLUGIN_DIR)
309309
installed.forEach(({ url }) => {
310310
const plugin = newPlugins.find(({ id }) => id === Url.basename(url));
311311
if (plugin) {
@@ -330,7 +330,7 @@ export default function PluginsInclude(updates) {
330330
async function getInstalledPlugins(updates) {
331331
$list.installed.setAttribute("empty-msg", strings["loading..."]);
332332
plugins.installed = [];
333-
const installed = await fsOperation(PLUGIN_DIR).lsDir();
333+
const installed = await internalFs.listDir(PLUGIN_DIR)
334334
await Promise.all(
335335
installed.map(async (item) => {
336336
const id = Url.basename(item.url);

src/sidebarApps/extensions/index.js

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Sidebar from "components/sidebar";
66
import prompt from "dialogs/prompt";
77
import select from "dialogs/select";
88
import fsOperation from "fileSystem";
9+
import internalFs from "fileSystem/internalFs";
910
import purchaseListener from "handlers/purchase";
1011
import constants from "lib/constants";
1112
import InstallState from "lib/installState";
@@ -301,18 +302,49 @@ async function loadExplore() {
301302
}
302303

303304
async function listInstalledPlugins() {
305+
let dirItems;
306+
307+
try {
308+
dirItems = await internalFs.listDir(PLUGIN_DIR);
309+
} catch (err) {
310+
return [];
311+
}
312+
304313
const plugins = await Promise.all(
305-
(await fsOperation(PLUGIN_DIR).lsDir()).map(async (item) => {
306-
const id = Url.basename(item.url);
307-
const url = Url.join(item.url, "plugin.json");
308-
const plugin = await fsOperation(url).readFile("json");
309-
const iconUrl = getLocalRes(id, plugin.icon);
310-
plugin.icon = await helpers.toInternalUri(iconUrl);
314+
dirItems.map(async (item, index) => {
315+
let id, url;
316+
try {
317+
id = Url.basename(item.url);
318+
url = Url.join(item.url, "plugin.json");
319+
} catch (err) {
320+
return null;
321+
}
322+
323+
let plugin;
324+
try {
325+
plugin = await fsOperation(url).readFile("json");
326+
} catch (err) {
327+
console.error(err);
328+
return null;
329+
}
330+
331+
try {
332+
const iconUrl = getLocalRes(id, plugin.icon);
333+
plugin.icon = iconUrl;
334+
} catch (err) {
335+
plugin.icon = null;
336+
}
337+
311338
plugin.installed = true;
339+
plugin.id = id;
340+
plugin.path = item.uri;
341+
312342
return plugin;
313343
}),
314344
);
315-
return plugins;
345+
346+
const filteredPlugins = plugins.filter(Boolean);
347+
return filteredPlugins;
316348
}
317349

318350
async function getFilteredPlugins(filterName) {

0 commit comments

Comments
 (0)