update so edit extensions.json

This commit is contained in:
Andrew Pareles 2025-05-12 10:58:18 -07:00
parent 6f73804e94
commit a4046bc5a5

View file

@ -42,6 +42,9 @@ const extensionBlacklist = [
]; ];
const isBlacklisted = (fsPath: string | undefined) => {
return extensionBlacklist.find(bItem => fsPath?.includes(bItem))
}
class ExtensionTransferService extends Disposable implements IExtensionTransferService { class ExtensionTransferService extends Disposable implements IExtensionTransferService {
_serviceBrand: undefined; _serviceBrand: undefined;
@ -89,25 +92,21 @@ class ExtensionTransferService extends Disposable implements IExtensionTransferS
await fileService.createFolder(toParent) await fileService.createFolder(toParent)
} }
for (const extensionFolder of stat.children ?? []) { for (const extensionFolder of stat.children ?? []) {
if (extensionBlacklist.find(bItem => extensionFolder.resource.path.includes(bItem))) {
console.log('Skipping...', extensionFolder.resource.path)
continue
}
const from = extensionFolder.resource const from = extensionFolder.resource
const to = URI.joinPath(toParent, extensionFolder.name) const to = URI.joinPath(toParent, extensionFolder.name)
const toStat = await fileService.resolve(from) const toStat = await fileService.resolve(from)
if (toStat.isDirectory) { if (toStat.isDirectory) {
await fileService.copy(from, to, true) if (!isBlacklisted(extensionFolder.resource.fsPath)) {
await fileService.copy(from, to, true)
}
} }
else if (toStat.isFile) { else if (toStat.isFile) {
if (extensionFolder.name === 'extensions.json') { if (extensionFolder.name === 'extensions.json') {
try { try {
const contentsStr = await fileService.readFile(from) const contentsStr = await fileService.readFile(from)
const json: any = JSON.parse(contentsStr.value.toString()) const json: any = JSON.parse(contentsStr.value.toString())
const j2 = json.filter((entry: { identifier?: { id?: string } }) => const j2 = json.filter((entry: { identifier?: { id?: string } }) => !isBlacklisted(entry?.identifier?.id))
!extensionBlacklist.find(bItem => entry?.identifier?.id?.includes(bItem))
)
const jsonStr = JSON.stringify(j2) const jsonStr = JSON.stringify(j2)
await fileService.writeFile(to, VSBuffer.fromString(jsonStr)) await fileService.writeFile(to, VSBuffer.fromString(jsonStr))
} }
@ -145,8 +144,7 @@ class ExtensionTransferService extends Disposable implements IExtensionTransferS
try { try {
if (child.isDirectory) { if (child.isDirectory) {
// if is blacklisted // if is blacklisted
if (extensionBlacklist.find(bItem => child.resource.path.includes(bItem))) { if (isBlacklisted(child.resource.fsPath)) {
console.log('Deleting extension', child.resource.fsPath) console.log('Deleting extension', child.resource.fsPath)
await fileService.del(child.resource, { recursive: true, useTrash: true }) await fileService.del(child.resource, { recursive: true, useTrash: true })
} }
@ -157,9 +155,7 @@ class ExtensionTransferService extends Disposable implements IExtensionTransferS
try { try {
const contentsStr = await fileService.readFile(child.resource) const contentsStr = await fileService.readFile(child.resource)
const json: any = JSON.parse(contentsStr.value.toString()) const json: any = JSON.parse(contentsStr.value.toString())
const j2 = json.filter((entry: { identifier?: { id?: string } }) => const j2 = json.filter((entry: { identifier?: { id?: string } }) => !isBlacklisted(entry?.identifier?.id))
!extensionBlacklist.find(bItem => entry?.identifier?.id?.includes(bItem))
)
const jsonStr = JSON.stringify(j2) const jsonStr = JSON.stringify(j2)
await fileService.writeFile(child.resource, VSBuffer.fromString(jsonStr)) await fileService.writeFile(child.resource, VSBuffer.fromString(jsonStr))
} }