gpt4 book ai didi

javascript - 如何通过语句静态验证 JS 构造语句

转载 作者:行者123 更新时间:2023-12-03 18:52:17 27 4
gpt4 key购买 nike

我有如下定义的 JS(JS 文件)。在推送到存储库时,我想静态验证下面定义的内容(验证此)。我一直在研究这个,我的第一个想法是验证 items 1-4使用 https://www.npmjs.com/package/espree .如果有人可以确认这是否可以完成工作(是最好的方法),并且如果可以,请验证返回的 AST 的示例。
验证 item 5更有趣一点我需要提取w.abc.myobj的内容设置为有效地始终等同于 JSON 并使用类似 https://www.npmjs.com/package/ajv 的规则验证其内容.感谢任何关于如何最好地做到这一点的见解,尤其是从静态代码文件中提取 JSON。
验证这个

/* 
1. Is the first statement a try/catch block
2. Is the first statement within the try/catch block an anonymous function with a "w" arg
3. Is the second statement what is shown
4. Is the anonymous function called with the window object
5. Next i'd like to grab w.abc.myobj and validate it using schema validation.
*/
JS文件
try {
(function (w) {
w.abc = w.abc || {};
w.abc.myobj = {
"prop1": {
"enabled": true,
"type": "non-fiction",
"params: {
"serverInfo": {
"url": "{arg} ? https://www.url1.com : https://www.url2.com",
"path": "/some/directory"
},
"accountInfo: {
"user": "someUser1"
}
}
},
"prop2: {
"enabled": true,
"type": "fiction",
"params": {
"serverInfo": {
"url": "https://www.url2.com",
"path": "/some/directory"
},
"accountInfo: {
"user": "someUser2"
}
}
}
};
})(window);
} catch (e) { /* do nothing */ }

最佳答案

EsLint 建立在您提到的软件包之上,因此您可以通过为每个测试编写一个 eslint 插件来让您的生活更轻松。

关于javascript - 如何通过语句静态验证 JS 构造语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66702123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com