Skip to content

Instantly share code, notes, and snippets.

View wnqueiroz's full-sized avatar
:octocat:

William Queiroz wnqueiroz

:octocat:
View GitHub Profile
@wnqueiroz
wnqueiroz / next-js-12-factor-app-support.sh
Created April 23, 2024 17:20
Next.js 12-factor App Support
# -------------------------- .docker/entrypoint.sh --------------------------
#!/bin/bash
DIR=".next"
find "${DIR}" -type f | while read -r file; do
for var in $(env | cut -d= -f1 | grep '^NEXT_PUBLIC'); do
PATTERN="\$${var}"
NEW_VALUE=$(eval echo "\$$var")
SED_COMMAND="s|${PATTERN}|${NEW_VALUE}|g"
@wnqueiroz
wnqueiroz / aes256-gcm.mjs
Created January 24, 2023 21:23
AES 256 GCM | Authenticated Encryption and Decryption
import { randomBytes, createCipheriv, createDecipheriv } from 'node:crypto';
const aes256gcm = (key) => {
const encrypt = (str) => {
const iv = new randomBytes(12);
const cipher = createCipheriv('aes-256-gcm', key, iv);
let enc1 = cipher.update(str, 'utf8');
@wnqueiroz
wnqueiroz / ecdh-aes256-gcm.mjs
Created January 24, 2023 21:22
AES 256 GCM and ECDH | Authenticated Encryption and Decryption
/**
* @see https://www.youtube.com/watch?v=M7M3qeQxTq4
*/
import { createECDH, randomBytes, createCipheriv, createDecipheriv } from 'crypto';
const alice = createECDH('secp256k1');
alice.generateKeys();
@wnqueiroz
wnqueiroz / get-base64-file-size.js
Created December 14, 2022 14:56
Get Base64 File Size
const base64 =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAABgGlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGCqSCwoyGFhYGDIzSspCnJ3UoiIjFJgv8PAzcDDIMRgxSCemFxc4BgQ4MOAE3y7xsAIoi/rgsxqOqd2d+pGwehjat+yq+1cc3DrAwPulNTiZAYGRg4gOyWlODkXyAbp0UsuKCoBsucA2brlJQUg9hkgW6QI6EAg+wGInQ5hfwGxk8BsJg6wmpAgZyBbBsgWSIKwdUDsdAjbBsROzkhMAbJB/tKBuAEMuIJdFAzNDXx1HQk4nFSQm1MKswMUWjypeaHBQFoIiGUYghlcGBQYDBnMGQwYfBl0GYCWl6RWlIAUO+cXVBZlpmeUKDgCQzdVwTk/t6C0JLVIR8EzL1lPR8HIwNAApA4UbxDjPweBbWAUO48Qy5rMwGDxhoGBuQohlrKcgWGLPQODeDBCTH020EnvGRh2hBckFiXCHc/4jYUQvzjN2AjC5nFiYGC99///ZzUGBvZJDAx/J/7//3vR//9/FwPtv8PAcCAHALbUa30s2MP4AAAAVmVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAADkoYABwAAABIAAABEoAIABAAAAAEAAAEAoAMABAAAAAEAAAEAAAAAAEFTQ0lJAAAAU2NyZWVuc2hvdG3UI1QAAAHWaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHht
@wnqueiroz
wnqueiroz / Dockerfile
Created September 24, 2022 01:24
An efficient Dockerfile to build an image with NestJS with just the production dependencies
FROM node:16.17-alpine as builder
WORKDIR /usr/src/app
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
COPY package*.json ./
RUN npm i -g @nestjs/cli \
@wnqueiroz
wnqueiroz / audit-yarn-with-npm.sh
Last active September 19, 2022 16:02
Audit packages with NPM (from Yarn project)
rm -rf node_modules yarn.lock
yarn
npm i --package-lock-only
npm audit fix
yarn import
rm package-lock.json
@wnqueiroz
wnqueiroz / run-unix-command-with-nodejs.ts
Created April 15, 2022 01:34
Custom implementation of how to run UNIX commands through NodeJS
import { exec } from 'child_process'
/**
* Usage:
*
* const stdout = await _`ls -la`;
*
* or:
*
* const flags = [
@wnqueiroz
wnqueiroz / jwtRS256.sh
Created January 5, 2021 21:28 — forked from ygotthilf/jwtRS256.sh
How to generate JWT RS256 key
ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key
# Don't add passphrase
openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub
cat jwtRS256.key
cat jwtRS256.key.pub
@wnqueiroz
wnqueiroz / yarn-import.sh
Created June 10, 2020 17:00
yarn-import.sh
rm yarn.lock && yarn import
@wnqueiroz
wnqueiroz / npm-audit-fix.sh
Created June 10, 2020 16:25
npm-audit-fix.sh
$ npm audit fix