UNPKG

minesweeper-for-web

Version:
39 lines 1.54 kB
import { ActionType } from '../types/index.js'; export function getSVGReference(id) { // eslint-disable-next-line no-secrets/no-secrets return `<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 76 76" preserveAspectRatio="xMidYMid meet" enable-background="new 0 0 76 76"><use href="#${id}" /></svg>`; } export function deltaToActionType(number) { if (number > 0) { return ActionType.Placed; } if (number < 0) { return ActionType.Removed; } return ActionType.NoChange; } export function deepCopy(object) { if (Array.isArray(object)) { // @ts-expect-error: Unsafe type // eslint-disable-next-line @typescript-eslint/no-unsafe-return return object.map((item) => deepCopy(item)); } if (object instanceof Date) { // @ts-expect-error: Unsafe type return new Date(object.getTime()); } if (object && typeof object === 'object') { const getters = Object.entries(Object.getOwnPropertyDescriptors(Object.getPrototypeOf(object))) .filter(([key, descriptor]) => typeof descriptor.get === 'function' && key !== '__proto__') .map(([key]) => key); const copy = {}; for (const key of [...Object.keys(object), ...getters]) { // @ts-expect-error: Unsafe type copy[key] = deepCopy(object[key]); } // @ts-expect-error: Unsafe type return copy; } return object; } //# sourceMappingURL=index.js.map