Skip to content

Instantly share code, notes, and snippets.

View daltonmenezes's full-sized avatar
:octocat:
"Hey ho, let's code" - R4m0n3s

Dalton Menezes daltonmenezes

:octocat:
"Hey ho, let's code" - R4m0n3s
View GitHub Profile
@daltonmenezes
daltonmenezes / get-vercel-envs.js
Last active October 4, 2023 04:41
Get/Export Vercel envs script
;(async () => {
const TIMEOUT_MS = 700
const delay = () => new Promise((resolve) => setTimeout(resolve, TIMEOUT_MS))
const revealButtons = document.querySelectorAll('button[aria-label="Click to reveal"]')
for (revealButton of revealButtons) {
revealButton.click()
await delay()
}
@daltonmenezes
daltonmenezes / pixelToRem.ts
Created February 16, 2022 02:38
A pixel to rem utility function
function pixelToRem(...values: number[]) {
return values
.reduce((acc, current) => (acc += current / 16 + `rem `), "")
.trim();
}
pixelToRem(13, 20) // 0.8125rem 1.25rem
@daltonmenezes
daltonmenezes / wait-for.js
Created February 9, 2022 00:47
Wait for DOM elements to exist before executing a callback
// target can ben an array of targets like ['#element', '.element']
function waitFor(target, callback, timeout = 1000) {
return new Promise((resolve) => {
const interval = window.setInterval(() => {
let isTargetOnDOM
isTargetOnDOM = Array.isArray(target)
? target.every((element) => document.querySelector(element))
: (isTargetOnDOM = document.querySelector(target))
@daltonmenezes
daltonmenezes / CreateRentalUseCase.spec.ts
Created August 20, 2021 15:00
CreateRentalUseCase.spec.ts
import dayjs from "dayjs";
import { CarsRepositoryInMemory } from "@modules/cars/repositories/in-memory/CarsRepositoryInMemory";
import { RentalsRepositoryInMemory } from "@modules/rentals/repositories/RentalsRepositoryInMemory";
import { DayjsDateProvider } from "@shared/container/providers/DateProvider/implementations/DayjsDateProvider";
import { AppError } from "@shared/errors/AppError";
import { CreateRentalUseCase } from "./CreateRentalUseCase";
let createRentalUseCase: CreateRentalUseCase;
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"name": "Meta",
"scope": [
"meta.object-literal.key",
"variable.object.property",
"variable.other.property",
"keyword.operator",
@daltonmenezes
daltonmenezes / filtered-objects.js
Last active April 5, 2020 23:00
Filter an array of shallow objects by repeating and non-repeating objects in javascript
const objectList = [
{ id: 1, console: 'playstation 4' },
{ id: 2, console: 'xbox one s' },
{ id: 2, console: 'xbox one s' },
{ id: 1, console: 'playstation 4' },
{ id: 1, console: 'playstation 4' },
{ id: 1, console: 'playstation 2' },
{ id: 3, console: 'playstation 1' }
]
@daltonmenezes
daltonmenezes / github-status.js
Created March 31, 2020 04:00
Scraping GitHub status servers with javascript
fetch('https://www.githubstatus.com/')
.then(res => res.text())
.then(text => {
const parser = new DOMParser()
const dom = parser.parseFromString(text, 'text/html')
const status = Array.from(
dom.querySelectorAll("div.component-inner-container.showcased span.component-status"),
el => {
const alias = {
'status-green': 'normal',
@daltonmenezes
daltonmenezes / sorting.js
Last active March 30, 2020 01:56
Sorting numbers by ASC and DESC in javascript without mutating the original array
const numbers = [4, 2, 5, 1, 3]
const orderBy = ([...arr], type = 'ASC') => {
const order = {
ASC: (a, b) => a - b,
DESC: (a, b) => b - a
}
return arr.sort(order[type])
}
@daltonmenezes
daltonmenezes / delay.js
Created March 19, 2020 02:05
A delay/sleep function for javascript
function delay(time) {
return new Promise(resolve =>
setTimeout(resolve, time)
)
}
(async () => {
await delay(1000)
console.log('It takes 1 second to be executed.')
@daltonmenezes
daltonmenezes / pixel.js
Created March 16, 2020 03:44
Get pixel value by increment in javascript to handle element sizes
const pixel = ((init = 0) => {
let pixelValue = init
function increment(value) {
pixelValue += value
}
return {
getByIncrement: value => {
increment(value)