Skip to content

Instantly share code, notes, and snippets.

View vslipchenko's full-sized avatar
💭
Who am 👁️

Vlad vslipchenko

💭
Who am 👁️
View GitHub Profile
@vslipchenko
vslipchenko / request.js
Created March 4, 2025 16:04
This utility provides a flexible request management system for asynchronous API calls. It is designed to optimize API request performance, avoid redundant requests, and manage stale data or errors in dynamic web applications.
// Symbols are used in order to not confuse these special values with the real request response values
// Unique primitive value used as the stale request response value
const staleRequestSymbol = Symbol('staleRequest');
// Unique primitive value used as a response value of non-distinct payload requests
const nonDistinctPayloadSymbol = Symbol('nonDistinctPayload');
// Map are used to guarantee the integrity of request specific context if a single request
// is re-created more than once in a process
const requestsCache = new Map();
const requestsContext = new Map();
// Enum
@vslipchenko
vslipchenko / scrollbar.css
Created October 21, 2023 18:18
Custom universal scrollbar for Firefox/WebKit-based browsers
/* Show custom scrollbar on devices with a large display (laptops, desktops, etc.)
as smaller devices usually have a neat scrollbar already */
@media (min-width: 992px) {
/* Firefox */
@supports (scrollbar-width: thin) {
* {
/* First collor is responsible for the thumb color, the second one - for the track color */
scrollbar-color: #b9b9b9 #f0f0f0;
scrollbar-width: thin;
}
@vslipchenko
vslipchenko / Strong Middle - Senior Front-end Developer Interview Questions
Last active September 12, 2022 15:25
Following is a list of both technical and non-technical interview questions that you may expect to be asked during interview. It was compiled after a series of interviews and extended with a few questions of friend of mine who was also undergoing interviews. P.S. Provided a brief context in a round brackets where it was needed
Technical:
1. OOP principles
2. Differences between abstract class and interface
2. Software Development Principles (SOLID, DRY, KISS, YAGNI, etc.)
3. Event loop, micro and macro tasks, queueMicrotask(). Difference between queueMicrotask() and Promise.resolve()
4. What is call stack. How it works ?
5. Data structures (hashmap, linked list, etc.)
6. Architectural and design patterns in JS
7. Diferences between local storage, session storageand document cookie. When to use each ?
8. What is Flux (architectural pattern) ? Describe it's core concepts
@vslipchenko
vslipchenko / tsconfig.json
Created June 29, 2020 19:22 — forked from KRostyslav/tsconfig.json
tsconfig.json с комментариями.
// Файл "tsconfig.json":
// - устанавливает корневой каталог проекта TypeScript;
// - выполняет настройку параметров компиляции;
// - устанавливает файлы проекта.
// Присутствие файла "tsconfig.json" в папке указывает TypeScript, что это корневая папка проекта.
// Внутри "tsconfig.json" указываются настройки компилятора TypeScript и корневые файлы проекта.
// Программа компилятора "tsc" ищет файл "tsconfig.json" сначала в папке, где она расположена, затем поднимается выше и ищет в родительских папках согласно их вложенности друг в друга.
// Команда "tsc --project C:\path\to\my\project\folder" берет файл "tsconfig.json" из папки, расположенной по данному пути.
// Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию.
// Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json".