mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
extensions-api -- in-progress / loading extension manifest fix
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
17478fd38e
commit
3a06f76545
@ -52,21 +52,22 @@ export class ExtensionStore extends BaseStore<ExtensionStoreModel> {
|
|||||||
|
|
||||||
async loadExtensions(basePath: string): Promise<ExtensionManifest[]> {
|
async loadExtensions(basePath: string): Promise<ExtensionManifest[]> {
|
||||||
const paths = await fs.readdir(basePath);
|
const paths = await fs.readdir(basePath);
|
||||||
const extensionsStats = paths.map(fileName => {
|
const manifestsLoading = paths.map(fileName => {
|
||||||
const absPath = path.resolve(basePath, fileName);
|
const absPath = path.resolve(basePath, fileName);
|
||||||
const manifestPath = path.resolve(absPath, "manifest.json");
|
const manifestPath = path.resolve(absPath, "package.json");
|
||||||
return fs.stat(manifestPath).then(async stat => {
|
return new Promise<ExtensionManifest>(async resolve => {
|
||||||
if (stat.isFile()) {
|
try {
|
||||||
const manifestJson = await fs.readJson(manifestPath);
|
const manifestJson = await fs.readJson(manifestPath);
|
||||||
const manifest: ExtensionManifest = {
|
resolve({
|
||||||
...manifestJson,
|
...manifestJson,
|
||||||
manifestPath: manifestPath,
|
manifestPath: manifestPath,
|
||||||
}
|
});
|
||||||
return manifest;
|
} catch (err) {
|
||||||
|
resolve(null);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
let extensions = await Promise.all(extensionsStats.map(extStat => extStat.catch(() => null)));
|
let extensions = await Promise.all(manifestsLoading);
|
||||||
extensions = extensions.filter(v => !!v); // filter out files and invalid folders (without manifest.json)
|
extensions = extensions.filter(v => !!v); // filter out files and invalid folders (without manifest.json)
|
||||||
logger.info(`[EXTENSION-STORE]: loaded ${extensions.length} extensions`, { basePath, extensions });
|
logger.info(`[EXTENSION-STORE]: loaded ${extensions.length} extensions`, { basePath, extensions });
|
||||||
return extensions;
|
return extensions;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user