mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2024-11-10 09:07:47 +01:00
40 lines
No EOL
1.2 KiB
TypeScript
40 lines
No EOL
1.2 KiB
TypeScript
import {config} from "../src/config";
|
|
import { Logger } from "../src/utils/logger";
|
|
|
|
export function getbaseURL(): string {
|
|
return `http://localhost:${config.port}`;
|
|
}
|
|
|
|
/**
|
|
* Duplicated from Mocha types. TypeScript doesn't infer that type by itself for some reason.
|
|
*/
|
|
export type Done = (err?: any) => void;
|
|
|
|
/**
|
|
*
|
|
* Check object contains expected properties
|
|
*/
|
|
export const partialDeepEquals = (actual: Record<string, any>, expected: Record<string, any>, print = true): boolean => {
|
|
// loop over key, value of expected
|
|
for (const [ key, value ] of Object.entries(expected)) {
|
|
// if value is object or array, recurse
|
|
if (Array.isArray(value) || typeof value === "object") {
|
|
if (!partialDeepEquals(actual?.[key], value, false)) {
|
|
if (print) printActualExpected(actual, expected);
|
|
|
|
return false;
|
|
}
|
|
}
|
|
else if (actual?.[key] !== value) {
|
|
if (print) printActualExpected(actual, expected);
|
|
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
};
|
|
|
|
function printActualExpected(actual: Record<string, any>, expected: Record<string, any>): void {
|
|
Logger.error(`Actual: ${JSON.stringify(actual)}`);
|
|
Logger.error(`Expected: ${JSON.stringify(expected)}`);
|
|
} |