configuration/constants/idiom.constants.ts
configuration/constants/idiom.constants.ts is a file in GovLab Quality. 37 lines of code and 3 definitions.
import type { DeprecatedApi } from "#types/idiom.types";
export const DEPRECATED_MEMBERS: ReadonlyMap<string, DeprecatedApi> = new Map([
[
"substr",
{
reason: "String.prototype.substr is Annex B legacy (its 2nd arg is length, not end index)",
replacement: "slice() or substring()",
},
],
[
"hasOwnProperty",
{
reason: "a direct hasOwnProperty call is prototype-unsafe and shadowable by an own property",
replacement: "Object.hasOwn(obj, key)",
},
],
["getYear", { reason: "Date.prototype.getYear is deprecated (returns year - 1900)", replacement: "getFullYear()" }],
["setYear", { reason: "Date.prototype.setYear is deprecated", replacement: "setFullYear()" }],
["keyCode", { reason: "KeyboardEvent.keyCode is deprecated", replacement: "event.key or event.code" }],
["charCode", { reason: "KeyboardEvent.charCode is deprecated", replacement: "event.key" }],
]);
export const DEPRECATED_GLOBALS: ReadonlyMap<string, DeprecatedApi> = new Map([
[
"escape",
{ reason: "escape() is deprecated and mishandles non-ASCII code points", replacement: "encodeURIComponent()" },
],
["unescape", { reason: "unescape() is deprecated", replacement: "decodeURIComponent()" }],
]);
export const DEPRECATED_CTORS: ReadonlyMap<string, DeprecatedApi> = new Map([
[
"Buffer",
{
reason: "new Buffer() is deprecated for security reasons (uninitialized memory)",
replacement: "Buffer.from(value) or Buffer.alloc(size)",
},
],
]);