Skip to content

Instantly share code, notes, and snippets.

View DmitriyWebDev's full-sized avatar

Dmitriy Gavrilov DmitriyWebDev

View GitHub Profile
@vezaynk
vezaynk / HOC.ts
Created February 1, 2023 23:35
HOC helpers. reduceHOCs and applyHOCs.
interface HOC<T> {
(Component: React.ComponentType<T>): (props: T) => JSX.Element
}
const reduceHOCs = <T>(...hocs: HOC<T>[]): HOC<T> => hocs
.reduce((reduced, next) => (c) => next(reduced(c)));
const applyHOCs = <T>(...hocs: HOC<T>[]) {
const reducedHoc = reduceHOCs(...hocs);
@isumix
isumix / secure-vscode-ru.md
Last active February 20, 2025 22:21
Безопасное окружение для разработчика

Недавно я задался вопросом безопасности своего дев. окружения - vscode nodejs git yarn npm... Как известно пакеты и их зависимости представляют обширный вектор для атак. Тоже самое можно сказать и про Visual Studio Code с его плагинами и средствами автоматизации, и про другие утилиты. По сути это все есть ящик пандоры с доступом к вашей системе.

Первое что пришло на ум, это создать под проект виртуальную машину и примонтировать каталог проекта в нее. Таким образом бы достигалась полная безопасность остальной системы. Но как показала практика это не очень удобно. Скорость работы оставляет желать лучшего, виртуальная машина потребляет много ресурсов, да и поддержка нескольких операционных систем занимает время.

В голове все это время крутилось: "контейнеры", поэтому решение не заставило себя долго ждать. В общем недавно у нас появилась возможность запускать сервер для vscode и подключаться к нему из своей локальной версии vscode используя remote расширение или вообще через броузер.

Я решил пойти

import React, { useReducer } from 'react';
import { BrowserHistory, Update, History } from 'history';
import { Router } from 'react-router-dom';
import {
Middleware, createSlice,
} from '@reduxjs/toolkit';
type ReduxAction<T = any> = {
type: string,
payload?: T,
@natterstefan
natterstefan / README.md
Created February 18, 2020 14:47
Jest | Mock useState

Jest - mock useState

When using import React, { useState } from 'react' in your components, this is how you can mock useState with jest.

@acutmore
acutmore / README.md
Last active February 27, 2025 19:55
Emulating a 4-Bit Virtual Machine in (TypeScript\JavaScript) (just Types no Script)

A compile-time 4-Bit Virtual Machine implemented in TypeScript's type system. Capable of running a sample 'FizzBuzz' program.

Syntax emits zero JavaScript.

type RESULT = VM<
  [
    ["push", N_1],         // 1
    ["push", False],       // 2
 ["peek", _], // 3

Принципы разработки Амплифера

Тут перечислены не законы, последние слово всегда за здравым смыслом. Тут перечислены лишь направление, куда надо стремиться. Принципы, которые должны помочь, когда не знаешь, что выбрать.

Ценности

  1. Пользователь. Если что-то сильно мешает UX или есть критическая ошибка, то в первую очередь мы спасаем пользователей. Для этого иногда надо взять ответственность на себя, переубедить толпу, написать плохой код.
@ai
ai / requirements.md
Last active December 30, 2024 23:34
Website requirements

Amplifr logo

Amplifr Landings Rules

Amplifr’s rules for landing pages created by outsource.

Requirements

@hackingbeauty
hackingbeauty / ModalFooter.js
Created May 20, 2018 19:18
ModalFooter component for a large-scale React application as taught in the course "How To Write A Single Page Application" - www.singlepageapplication.com
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { modalFooterStyles } from './styles.scss'
import { Modal as ReactBootstrapModal } from 'react-bootstrap'
class ModalFooter extends Component {
constructor(props) {
super(props)
}
@AlexEscalante
AlexEscalante / ReactSelectWithAllOption.js
Last active May 7, 2021 13:26
Gives users of the fine component react-select the ability to select all options with a single click.
/**
* react-select + allOption
*
* author: [email protected], @alex_escalante
*
* Gives users of the fine component react-select the ability to select
* all options with a single click.
*
* We're basically wrapping react-select but using a special option,
* the "allOption". This option is exclusive of any other option
@javierarques
javierarques / jsdom-helper.js
Last active January 12, 2022 00:51
Simulate window resize event in jsdom
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM('<!DOCTYPE html><html><head></head><body></body></html>');
global.window = dom.window;
global.document = dom.window.document;
// Simulate window resize event
const resizeEvent = document.createEvent('Event');