Object.hasOwn polyfill

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-25 14:15:03 -05:00
parent 59672ce845
commit a28d55cab8
12 changed files with 42 additions and 16 deletions

1
app.d.ts vendored
View File

@ -1,2 +1,3 @@
import './helpers/polyfills.js';
export declare const app: import("express-serve-static-core").Express;
export default app;

13
app.js
View File

@ -1,3 +1,4 @@
import './helpers/polyfills.js';
import createError from 'http-errors';
import express from 'express';
import compression from 'compression';
@ -88,15 +89,15 @@ app.use(session({
}
}));
app.use((request, response, next) => {
if (Object.prototype.hasOwnProperty.call(request.cookies, sessionCookieName) &&
!Object.prototype.hasOwnProperty.call(request.session, 'user')) {
if (Object.hasOwn(request.cookies, sessionCookieName) &&
!Object.hasOwn(request.session, 'user')) {
response.clearCookie(sessionCookieName);
}
next();
});
const sessionChecker = (request, response, next) => {
if (Object.prototype.hasOwnProperty.call(request.session, 'user') &&
Object.prototype.hasOwnProperty.call(request.cookies, sessionCookieName)) {
if (Object.hasOwn(request.session, 'user') &&
Object.hasOwn(request.cookies, sessionCookieName)) {
next();
return;
}
@ -132,8 +133,8 @@ app.all(urlPrefix + '/keepAlive', (_request, response) => {
});
app.use(urlPrefix + '/login', routerLogin);
app.get(urlPrefix + '/logout', (request, response) => {
if (Object.prototype.hasOwnProperty.call(request.session, 'user') &&
Object.prototype.hasOwnProperty.call(request.cookies, sessionCookieName)) {
if (Object.hasOwn(request.session, 'user') &&
Object.hasOwn(request.cookies, sessionCookieName)) {
request.session.destroy(() => {
response.clearCookie(sessionCookieName);
response.redirect(urlPrefix + '/');

14
app.ts
View File

@ -1,3 +1,5 @@
import './helpers/polyfills.js'
import createError from 'http-errors'
import express, { type RequestHandler } from 'express'
@ -172,8 +174,8 @@ app.use(
// Clear cookie if no corresponding session
app.use((request, response, next) => {
if (
Object.prototype.hasOwnProperty.call(request.cookies, sessionCookieName) &&
!Object.prototype.hasOwnProperty.call(request.session, 'user')
Object.hasOwn(request.cookies, sessionCookieName) &&
!Object.hasOwn(request.session, 'user')
) {
response.clearCookie(sessionCookieName)
}
@ -188,8 +190,8 @@ const sessionChecker = (
next: express.NextFunction
): void => {
if (
Object.prototype.hasOwnProperty.call(request.session, 'user') &&
Object.prototype.hasOwnProperty.call(request.cookies, sessionCookieName)
Object.hasOwn(request.session, 'user') &&
Object.hasOwn(request.cookies, sessionCookieName)
) {
next()
return
@ -257,8 +259,8 @@ app.use(urlPrefix + '/login', routerLogin)
app.get(urlPrefix + '/logout', (request, response) => {
if (
Object.prototype.hasOwnProperty.call(request.session, 'user') &&
Object.prototype.hasOwnProperty.call(request.cookies, sessionCookieName)
Object.hasOwn(request.session, 'user') &&
Object.hasOwn(request.cookies, sessionCookieName)
) {
request.session.destroy(() => {
response.clearCookie(sessionCookieName)

View File

@ -1,3 +1,4 @@
import './polyfills.js';
import type * as recordTypes from '../types/recordTypes';
export declare function regenerateApiKey(userName: string): Promise<void>;
export declare function getApiKey(userName: string): Promise<string>;

View File

@ -1,3 +1,4 @@
import './polyfills.js';
import fs from 'node:fs/promises';
import { v4 as uuidv4 } from 'uuid';
import Debug from 'debug';
@ -33,7 +34,7 @@ export async function getApiKey(userName) {
if (apiKeys === undefined) {
await loadApiKeys();
}
if (!Object.prototype.hasOwnProperty.call(apiKeys, userName)) {
if (!Object.hasOwn(apiKeys, userName)) {
await regenerateApiKey(userName);
}
return apiKeys[userName];

View File

@ -1,3 +1,5 @@
import './polyfills.js'
import fs from 'node:fs/promises'
import { v4 as uuidv4 } from 'uuid'
@ -42,7 +44,7 @@ export async function getApiKey(userName: string): Promise<string> {
await loadApiKeys()
}
if (!Object.prototype.hasOwnProperty.call(apiKeys, userName)) {
if (!Object.hasOwn(apiKeys, userName)) {
await regenerateApiKey(userName)
}

View File

@ -1,3 +1,4 @@
import './polyfills.js';
import type * as configTypes from '../types/configTypes';
export declare function getProperty(propertyName: 'application.applicationName'): string;
export declare function getProperty(propertyName: 'application.logoURL'): string;

View File

@ -1,3 +1,4 @@
import './polyfills.js';
import { config } from '../data/config.js';
const configFallbackValues = new Map();
configFallbackValues.set('application.applicationName', 'Lot Occupancy System');
@ -52,7 +53,7 @@ export function getProperty(propertyName) {
const propertyNameSplit = propertyName.split('.');
let currentObject = config;
for (const propertyNamePiece of propertyNameSplit) {
if (Object.prototype.hasOwnProperty.call(currentObject, propertyNamePiece)) {
if (Object.hasOwn(currentObject, propertyNamePiece)) {
currentObject = currentObject[propertyNamePiece];
continue;
}

View File

@ -1,5 +1,7 @@
/* eslint-disable @typescript-eslint/indent, node/no-unpublished-import */
import './polyfills.js'
import { config } from '../data/config.js'
import type * as configTypes from '../types/configTypes'
@ -210,7 +212,7 @@ export function getProperty(propertyName: string): unknown {
let currentObject = config
for (const propertyNamePiece of propertyNameSplit) {
if (Object.prototype.hasOwnProperty.call(currentObject, propertyNamePiece)) {
if (Object.hasOwn(currentObject, propertyNamePiece)) {
currentObject = currentObject[propertyNamePiece]
continue
}

1
helpers/polyfills.d.ts vendored 100644
View File

@ -0,0 +1 @@
export {};

View File

@ -0,0 +1,6 @@
import Debug from 'debug';
const debug = Debug('lot-occupancy-system:polyfills');
if (Object.hasOwn === undefined) {
debug('Applying Object.hasOwn(o, v) polyfill');
Object.hasOwn = Object.prototype.hasOwnProperty.call;
}

View File

@ -0,0 +1,7 @@
import Debug from 'debug'
const debug = Debug('lot-occupancy-system:polyfills')
if (Object.hasOwn === undefined) {
debug('Applying Object.hasOwn(o, v) polyfill')
Object.hasOwn = Object.prototype.hasOwnProperty.call
}