Skip to content

Instantly share code, notes, and snippets.

View doasync's full-sized avatar
🙂

Ruslan @doasync doasync

🙂
View GitHub Profile
@doasync
doasync / request.js
Last active May 29, 2020 10:39
Axios-like fetch
const queryString = (params) => {
const qs = String(new URLSearchParams(params));
return qs ? `?${qs}` : "";
};
const joinBase = (url, baseUrl) =>
`${baseUrl.replace(/\/$/, "")}/${url.replace(/^\/|\/$/, "")}/`;
const contentTypeJson = { "Content-Type": "application/json" };
@doasync
doasync / NameModal.jsx
Created April 28, 2020 17:46
Effector modal model
// Сам компонент модалки при этом будет выглядеть примерно так:
// ...
const onSubmit = () => {
closeModal();
saveNameAction();
};
// Component
@doasync
doasync / error-map.js
Last active May 26, 2020 11:14
Final form validators
import {
notEmpty,
booleanType,
numberType,
numberMin,
numberMax,
numberGt,
numberLt,
numberBetween,
integerType,
@doasync
doasync / fry.js
Last active September 3, 2020 12:13
fry with interceptors
'use strict';
const queryString = (params) => {
const qs = String(new URLSearchParams(params));
return qs ? `?${qs}` : "";
};
const joinBase = (url, baseUrl) =>
`${baseUrl.replace(/\/$/, "")}/${url.replace(/^\/|\/$/, "")}/`;
@doasync
doasync / round.ts
Created October 19, 2020 12:23
Round number with precision (TypeScrypt)
export const round = (number: number, fractionDigits = 0): number => {
const digits = 10 ** fractionDigits;
const value = number * digits * (1 + Number.EPSILON);
return Math.round(value) / digits;
};
@doasync
doasync / cached.js
Last active January 7, 2022 16:35
Create cached function (memoize)
export const cached = (fn) => {
const cache = new Map();
return function cachedFn(...args) {
const input = JSON.stringify(args);
if (cache.has(input)) {
return cache.get(input);
}
@doasync
doasync / human-format.ts
Created February 4, 2021 17:27
Human format
type ReadableConfig = {
separator?: string;
unit?: string;
formatFn?: (value: number) => string;
fractional?: boolean;
};
// Sorted from big to small
// See: https://www.bipm.org/en/measurement-units
const si = [