Skip to content

Instantly share code, notes, and snippets.

View oleggrishechkin's full-sized avatar

Oleg Grishechkin oleggrishechkin

View GitHub Profile
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
const stringCheck = (keyToOmit) => (value, key) => keyToOmit === key;
const arrayOfStringCheck = (keysToOmit) => (value, key) => keysToOmit.includes(key);
const omit = (targetObject, options) => {
const check = typeof options === 'function' ? options : Array.isArray(options) ? arrayOfStringCheck : stringCheck;
return Object.keys(targetObject).reduce((result, key) => {
if (!check(targetObject[key], key, targetObject)) {
result[key] = targetObject[key];
const colorToHEX = (colorString) => {
if (colorString.startsWith('rgba(')) {
const rgba = colorString
.slice(5, colorString.length - 1)
.split(',')
.map((item) => +item.trim());
const background = [255, 255, 255];
const hex = [
Math.round((rgba[3] * (rgba[0] / 255) + (1 - rgba[3]) * (background[0] / 255)) * 255),
Math.round((rgba[3] * (rgba[1] / 255) + (1 - rgba[3]) * (background[1] / 255)) * 255),
const colorToRGB = (colorString) => {
if (colorString.startsWith('rgba(')) {
const rgba = colorString
.slice(5, colorString.length - 1)
.split(',')
.map((item) => +item.trim());
const background = [255, 255, 255];
const rgb = [
Math.round((rgba[3] * (rgba[0] / 255) + (1 - rgba[3]) * (background[0] / 255)) * 255),
Math.round((rgba[3] * (rgba[1] / 255) + (1 - rgba[3]) * (background[1] / 255)) * 255),
const colorToRGBA = (colorString, alpha) => {
if (colorString.startsWith('rgb(')) {
const rgb = colorString
.slice(4, colorString.length - 1)
.split(',')
.map((item) => +item.trim());
return `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${alpha})`;
}

шаблон

// написать функцию для каррирования

const curry = (func) => {
  // код
};

const sum = (a, b, c) => a + b + c;

шаблон

// написать фунцию, которая возвращает значение св-ва объекта по заданному пути

const getProp = (object, path) => {
  // код
};

const obj = {

шаблон

// написать функцию, которая ждет промисы последовательно и возвращает промис с результатом всех промисов

const promiseChain = (promises: Promise<any>[]): Promise<any[]> => {
  // код
};

const results = promiseChain([fetch('url1'), fetch('url2')]);

шаблон

// написать функцию, которая преобразует массив объектов в объект ключ-значение использую заданный id в качестве ключа

const normalize = (array, id) => {
  //код
};

const arr = [{ id: 1, title: 'object1' }, { id: 2, title: 'object2' }];

шаблон

// написать функцию поверхностного сравнения объектов

const shallowEqual = (object1, object2) => {
  // код
};

console.log(shallowEqual({ title: 'value' }, { title: 'value' })); // true