From 42c3b0d8bf2cf98d3202d8ea6a44bee8b9792fda Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Fri, 29 Dec 2023 00:05:24 -0500 Subject: Add eslint rule no-restricted-syntax (#486) --- .eslintrc.json | 11 +++++++++++ ext/js/core/json.js | 2 ++ 2 files changed, 13 insertions(+) diff --git a/.eslintrc.json b/.eslintrc.json index 3ea5d555..9a0402ed 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -200,6 +200,17 @@ ], "no-implicit-globals": "error", "no-multi-spaces": "error", + "no-restricted-syntax": [ + "error", + { + "message": "Avoid using JSON.parse(), prefer parseJson.", + "selector": "MemberExpression[object.name=JSON][property.name=parse]" + }, + { + "message": "Avoid using Response.json(), prefer readResponseJson.", + "selector": "MemberExpression[property.name=json]" + } + ], "no-trailing-spaces": "error", "no-whitespace-before-property": "error", "object-curly-spacing": [ diff --git a/ext/js/core/json.js b/ext/js/core/json.js index a031f84e..0ebe2887 100644 --- a/ext/js/core/json.js +++ b/ext/js/core/json.js @@ -25,6 +25,7 @@ * @returns {T} */ export function parseJson(value) { + // eslint-disable-next-line no-restricted-syntax return JSON.parse(value); } @@ -36,5 +37,6 @@ export function parseJson(value) { * @returns {Promise} */ export async function readResponseJson(response) { + // eslint-disable-next-line no-restricted-syntax return await response.json(); } -- cgit v1.2.3