Skip to content

Instantly share code, notes, and snippets.

View feliperohdee's full-sized avatar
🚀
Going High

Felipe Rohde feliperohdee

🚀
Going High
View GitHub Profile
@feliperohdee
feliperohdee / useShare.ts
Created February 9, 2024 00:44 — forked from KristofferEriksson/useShare.ts
A React Typescript hook that let users share your content directly via native share dialogs
import { useCallback, useEffect, useState } from "react";
// Types for the useShare hook parameters
interface UseShareParams {
onShare?: (content: ShareParams) => void;
onSuccess?: (content: ShareParams) => void;
onError?: (error: any) => void;
fallback?: () => void;
successTimeout?: number;
}
@feliperohdee
feliperohdee / licenses.json
Last active January 26, 2024 19:22
easyauth permissions
[
{
"label": "DEFAULT_ADMIN_PERMISSION",
"roles": [
"license.collaborators.delete",
"license.collaborators.invite",
"license.collaborators.read",
"license.collaborators.update",
"license.delete",
"license.delete.ads",
@feliperohdee
feliperohdee / index.js
Last active August 4, 2023 15:41
process async items with concurrency
const worker = async (queue, concurrency = 25) => {
let index = 0;
let results = [];
let threads = [];
const execThread = async () => {
while (index < queue.length) {
const currentIndex = index++;
// Use of `currentIndex` is important because `index` may change after await is resolved
@feliperohdee
feliperohdee / patterns.html
Created April 8, 2020 13:31
svg patterns
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Patterns.html</title>
</head>
<body>
@feliperohdee
feliperohdee / promise-all-4.js
Created December 24, 2022 22:25
promise-all-4.js
const putData = async (data, ms) => {
return new Promise(resolve => {
setTimeout(() => {
resolve(data);
}, ms);
});
};
const clearAll = async () => {
// logic to clear all data
@feliperohdee
feliperohdee / promise-all-3.js
Created December 24, 2022 22:09
promise-all-3.js
const putData = async (data, ms) => {
return new Promise(resolve => {
setTimeout(() => {
resolve(data);
}, ms);
});
};
const clearAll = async () => {
// logic to clear all data
@feliperohdee
feliperohdee / promise.all-2.js
Last active December 24, 2022 22:05
promise.all-2.js
const putData = async (data, ms) => {
return new Promise(resolve => {
setTimeout(() => {
resolve(data);
}, ms);
});
};
const [
result1,
const putData = async (data, ms) => {
return new Promise(resolve => {
setTimeout(() => {
resolve(data);
}, ms);
});
};
const [
result1,
const graphql = require('graphql');
const _ = require('lodash');
const constants = require('../constants');
const {
parse,
validate,
validateSchema,
execute,
@feliperohdee
feliperohdee / Worker.js
Created January 28, 2021 21:47
Simple RXJS based worker broker
const workerThreads = require('worker_threads');
const rx = require('rxjs');
class Worker {
constructor(file, data) {
this.messageId = 0;
this.callbacks = new Map();
this.client = new workerThreads.Worker(file, {
workerData: {
id: Date.now(),