[denoland/deno]feat(不稳定): 支持数据: urls

2024-07-17 553 views
0

关闭 #5059

笔记:

  • percent-encoding已经是url
  • 磁盘缓存名称可能需要修改
  • 在 中可能需要优雅失败extract_data_url,应该返回什么样的错误?

回答

5

嗯……我没想到我们允许使用我们不知道的媒体类型。@bartlomieju 我们确定要这样做吗?这似乎是一个巨大的安全漏洞。

非快乐路径测试仍然是好的。

3

处理该问题并检查移除该 fallback 是否会导致回归

8

我希望extract_data_url首先得到一些关于如何处理和未知媒体类型故障的反馈,因为不令人满意的测试结果取决于此。

9

我遇到的用法一般是数据嵌入。

Firefox 和 Chrome 都允许导入该格式。当数据 URL 格式错误或媒体类型不兼容时,此实现的行为会有所不同。浏览器会抛出类型错误,目前前者会引发恐慌,而后者会将其视为 JavaScript。

7

感谢@SyrupThinker 提供的补丁;不过我认为我们应该等到 1.0 发布并且编译器重构完成后再进行这个 PR。

它引入了另一个需要考虑的层面,如果我没记错的话,数据导入依赖于我们目前不支持的位置/来源。

它总是这样工作的:未知的媒体类型被视为 JS,在大多数情况下会导致 V8 或 TS 编译器出现错误。

9

好的,重构之后我会继续致力于此。

5

没错;我们当然不想允许通过类似https > data > file或的进口来规避限制https > data > http

4

@SyrupThinker 很抱歉我们没能早点实现这个功能。如果你能基于 master 重新构建这个功能,我会将它包含在 1.4.0 中(将于 9 月 13 日发布)

1

由于此功能的主要用例是加载工作程序,因此最好有一个测试用例来演示您可以使用数据 URL 启动工作程序。

9

我不知道如何解决 tsc 错误(或如何调试它们),可以寻求一些帮助。

例如,我不知道如何登录cli/tsc/00_typescript.js

0

@SyrupThinker 我已经修复了测试。TS 故障是由 #7392 引起的