Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
2e6dc523
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2e6dc523
编写于
7月 13, 2020
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #102082
上级
3bc3f95d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
5 deletion
+11
-5
src/vs/workbench/services/extensionManagement/common/webExtensionsScannerService.ts
...extensionManagement/common/webExtensionsScannerService.ts
+11
-5
未找到文件。
src/vs/workbench/services/extensionManagement/common/webExtensionsScannerService.ts
浏览文件 @
2e6dc523
...
...
@@ -48,7 +48,7 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
private
readonly
systemExtensionsPromise
:
Promise
<
IScannedExtension
[]
>
;
private
readonly
staticExtensions
:
IScannedExtension
[];
private
readonly
extensionsResource
:
URI
;
private
readonly
extensionsResource
:
URI
|
undefined
;
private
readonly
userExtensionsResourceLimiter
:
Queue
<
IUserExtension
[]
>
;
constructor
(
...
...
@@ -58,7 +58,7 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
@
IRequestService
private
readonly
requestService
:
IRequestService
,
@
ILogService
private
readonly
logService
:
ILogService
,
)
{
this
.
extensionsResource
=
joinPath
(
environmentService
.
userRoamingDataHome
,
'
extensions.json
'
)
;
this
.
extensionsResource
=
isWeb
?
joinPath
(
environmentService
.
userRoamingDataHome
,
'
extensions.json
'
)
:
undefined
;
this
.
userExtensionsResourceLimiter
=
new
Queue
<
IUserExtension
[]
>
();
this
.
systemExtensionsPromise
=
isWeb
?
this
.
builtinExtensionsScannerService
.
scanBuiltinExtensions
()
:
Promise
.
resolve
([]);
const
staticExtensions
=
environmentService
.
options
&&
Array
.
isArray
(
environmentService
.
options
.
staticExtensions
)
?
environmentService
.
options
.
staticExtensions
:
[];
...
...
@@ -155,10 +155,13 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
return
null
;
}
private
readUserExtensions
():
Promise
<
IUserExtension
[]
>
{
private
async
readUserExtensions
():
Promise
<
IUserExtension
[]
>
{
if
(
!
this
.
extensionsResource
)
{
return
[];
}
return
this
.
userExtensionsResourceLimiter
.
queue
(
async
()
=>
{
try
{
const
content
=
await
this
.
fileService
.
readFile
(
this
.
extensionsResource
);
const
content
=
await
this
.
fileService
.
readFile
(
this
.
extensionsResource
!
);
const
storedUserExtensions
:
IStoredUserExtension
[]
=
JSON
.
parse
(
content
.
value
.
toString
());
return
storedUserExtensions
.
map
(
e
=>
({
identifier
:
e
.
identifier
,
...
...
@@ -174,6 +177,9 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
}
private
writeUserExtensions
(
userExtensions
:
IUserExtension
[]):
Promise
<
IUserExtension
[]
>
{
if
(
!
this
.
extensionsResource
)
{
throw
new
Error
(
'
unsupported
'
);
}
return
this
.
userExtensionsResourceLimiter
.
queue
(
async
()
=>
{
const
storedUserExtensions
:
IStoredUserExtension
[]
=
userExtensions
.
map
(
e
=>
({
identifier
:
e
.
identifier
,
...
...
@@ -183,7 +189,7 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
changelogUri
:
e
.
changelogUri
?.
toJSON
(),
packageNLSUri
:
e
.
packageNLSUri
?.
toJSON
(),
}));
await
this
.
fileService
.
writeFile
(
this
.
extensionsResource
,
VSBuffer
.
fromString
(
JSON
.
stringify
(
storedUserExtensions
)));
await
this
.
fileService
.
writeFile
(
this
.
extensionsResource
!
,
VSBuffer
.
fromString
(
JSON
.
stringify
(
storedUserExtensions
)));
return
userExtensions
;
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录