Skip to content

Commit 74f7fd9

Browse files
committed
clean readExtensions usage now that it check existence and return empty array
1 parent 9e5abbb commit 74f7fd9

File tree

2 files changed

+11
-15
lines changed

2 files changed

+11
-15
lines changed

src/extension/extension.ts

+6-5
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,8 @@ export async function readExtensions(
418418
organization?: string,
419419
) {
420420
const extensions: Extension[] = [];
421-
const extensionDirs = safeExistsSync(extensionsDirectory)
421+
const extensionDirs = safeExistsSync(extensionsDirectory) &&
422+
Deno.statSync(extensionsDirectory).isDirectory
422423
? Deno.readDirSync(extensionsDirectory)
423424
: [];
424425
for (const extensionDir of extensionDirs) {
@@ -444,7 +445,7 @@ export async function readExtensions(
444445
join(extensionsDirectory, extensionDir.name),
445446
extensionDir.name,
446447
);
447-
if (ownedExtensions) {
448+
if (ownedExtensions.length > 0) {
448449
extensions.push(...ownedExtensions);
449450
}
450451
}
@@ -692,9 +693,9 @@ async function readExtension(
692693
contributes?.format as Metadata || {};
693694

694695
// Read any embedded extension
695-
const embeddedExtensions = existsSync(join(extensionDir, kExtensionDir))
696-
? await readExtensions(join(extensionDir, kExtensionDir))
697-
: [];
696+
const embeddedExtensions = await readExtensions(
697+
join(extensionDir, kExtensionDir),
698+
);
698699

699700
// Resolve 'default' specially
700701
Object.keys(formats).forEach((key) => {

src/extension/install.ts

+5-10
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ async function readAndCopyExtensions(
339339
const extensions = await readExtensions(extensionsDir);
340340
info(
341341
` Found ${extensions.length} ${
342-
extensions.length === 1 ? "extension" : "extensions"
342+
extensions.length <= 1 ? "extension" : "extensions"
343343
}.`,
344344
);
345345

@@ -385,15 +385,10 @@ export async function confirmInstallation(
385385
) {
386386
const readExisting = async () => {
387387
try {
388-
const existingExtensionsDir = join(installDir, kExtensionDir);
389-
if (Deno.statSync(existingExtensionsDir).isDirectory) {
390-
const existingExtensions = await readExtensions(
391-
join(installDir, kExtensionDir),
392-
);
393-
return existingExtensions;
394-
} else {
395-
return [];
396-
}
388+
const existingExtensions = await readExtensions(
389+
join(installDir, kExtensionDir),
390+
);
391+
return existingExtensions;
397392
} catch {
398393
return [];
399394
}

0 commit comments

Comments
 (0)