Skip to content

Instantly share code, notes, and snippets.

View ivandata's full-sized avatar
〽️

Ivan Malov ivandata

〽️
View GitHub Profile
@ivandata
ivandata / test.ts
Last active February 6, 2024 16:11
function retry(myPromise: Promise<unknown>, maxRetries = 1) {
if (!maxRetries) return
let count = 0
let result
while (count < maxRetries) {
if (count === maxRetries) {
break
}
@ivandata
ivandata / retry.ts
Last active February 6, 2024 16:14
function retry(myPromise: Promise<unknown>, maxRetries = 1) {
if (!maxRetries) return
let count = 0
let result
while (count < maxRetries) {
try {
result = myPromise()
break
// https://github.com/reactwg/react-18/discussions/9
// https://github.com/reactjs/rfcs/blob/master/text/0147-use-mutable-source.md
import {
unstable_createMutableSource as createMutableSource,
unstable_useMutableSource as useMutableSource,
} from "react"
const heightSource = createMutableSource(
window,
type DatabaseHelper interface {
Collection(name string) CollectionHelper
Client() ClientHelper
}
type CollectionHelper interface {
FindOne(context.Context, interface{}) SingleResultHelper
InsertOne(context.Context, interface{}) (interface{}, error)
DeleteOne(ctx context.Context, filter interface{}) (int64, error)
}
@ivandata
ivandata / hidden.css
Last active September 23, 2019 14:02
Universal css snippet for hide elements
.hidden {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
border: 0;
padding: 0;
outline: 0;
clip: rect(0 0 0 0);
overflow: hidden;
@ivandata
ivandata / asyncResolve.js
Created September 9, 2019 14:59
Async resolve
// in series
async load() {
const users = await api.getUsers();
const posts = await api.getPosts();
return arrangeData(users, posts);
}
// in parallel
@ivandata
ivandata / getPrototypes.js
Last active September 9, 2019 14:40
How to see Class properties names
class Car {
constructor() {
this.firstName = 'Joe';
this.lastName = 'Cocker';
}
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
@ivandata
ivandata / regex-es6-imports.js
Created August 21, 2019 10:40 — forked from manekinekko/regex-es6-imports.js
A regular Expression to parse ECMAScript6 import syntax
let regex = `import
(?:
["'\s]*
([\w*{}\n, ]+)
from\s*
)?
["'\s]*
([@\w/_-]+)
["'\s]*
;?
@ivandata
ivandata / iterators.js
Last active March 9, 2019 12:53
Iterators. Simple example.
const movies = {
horror: [
'Get Out',
'The Cabinet of Dr. Caligari',
'Psycho',
'Nosferatu, a Symphony of Horror',
'King Kong',
'Repulsion',
'The Bride of Frankenstein',
'The Babadook',
@ivandata
ivandata / cleanCss.js
Last active March 9, 2019 12:53
Clean your unused css
"use strict";
const del = require('del');
const glob = require("glob");
module.exports = (includes, excludes, destination) => {
String.prototype.replaceMultiple = function (obj) {
let replace_string = this;
for (let x in obj) {