UNPKG

minesweeper-for-web

Version:
45 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deepCopy = exports.deltaToActionType = exports.getSVGReference = void 0; const types_1 = require("../types/index.js"); 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>`; } exports.getSVGReference = getSVGReference; function deltaToActionType(number) { if (number > 0) { return types_1.ActionType.Placed; } if (number < 0) { return types_1.ActionType.Removed; } return types_1.ActionType.NoChange; } exports.deltaToActionType = deltaToActionType; 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; } exports.deepCopy = deepCopy; //# sourceMappingURL=index.js.map