Skip to content

Instantly share code, notes, and snippets.

@RafaelGSS
RafaelGSS / incoming-request.dto.ts
Created February 1, 2021 17:59
Fastify + Typebox Example
import { Type, Static } from '@sinclair/typebox';
export const SendTextMessage = Type.Object({
body: Type.String(),
chatId: Type.Number(),
options: Type.Optional(
Type.Object({ previewUrl: Type.Optional(Type.Boolean()) }),
),
});
rafaelgss@rafaelgss-desktop:~/repos/os/undici-ghsa-pgw7-wx7w-2w33$ node examples/proxy-agent.js
node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: self-signed certificate in certificate chain
    at TLSSocket.onConnectSecure (node:_tls_wrap:1531:34)
    at TLSSocket.emit (node:events:527:28)
    at TLSSocket._finishInit (node:_tls_wrap:945:8)
@RafaelGSS
RafaelGSS / repro.js
Created October 20, 2022 16:47
Undici v19 support
const Fastify = require('./fastify')
const { Client } = require('undici')
const assert = require('assert')
const fastify = Fastify({
return503OnClosing: true,
forceCloseConnections: false
})
fastify.get('/', (req, reply) => {
@RafaelGSS
RafaelGSS / print-radix-tree.cpp
Created December 7, 2022 19:12
PrintTree helper to visualize the fs prefix radix tree
void PrintTree(FSPermission::RadixTree::Node* node, int spaces = 0) {
std::string whitespace = "";
for (int i = 0; i < spaces; ++i) {
whitespace += " ";
}
if (node == nullptr) {
std::cout << whitespace << "Node nullptr" << std::endl;
return;
}
@RafaelGSS
RafaelGSS / index.js
Created March 15, 2023 20:52
Example custom connect fetch
const { setGlobalDispatcher, Agent } = require('undici')
setGlobalDispatcher(
new Agent({
connect: (opts) => {
console.log('Called with', opts)
// implement custom dns lookup
}
})
)
@RafaelGSS
RafaelGSS / RESULT.md
Created March 7, 2024 13:13
util.styleText benchmark against alternatives
@RafaelGSS
RafaelGSS / out
Created May 24, 2024 18:53
jest v0.0.0 error v22
undefined YN0000: Resolution step
YN0002: @algolia/autocomplete-core@npm:1.9.3 [a6ecf] doesn't provide search-insights (p8f471), requested by @algolia/autocomplete-plugin-algolia-insights
YN0060: @jest/monorepo@workspace:. provides jest (p2d3f7) with version 30.0.0-alpha.4, which doesn't satisfy what jest-watch-typeahead requests
YN0002: @react-native/babel-plugin-codegen@npm:0.73.4 doesn't provide @babel/preset-env (p2a96b), requested by @react-native/codegen
YN0002: diff-sequences@workspace:packages/diff-sequences doesn't provide @jest/globals (p284af), requested by @fast-check/jest
YN0002: expect@workspace:packages/expect doesn't provide @jest/globals (p0e49c), requested by @fast-check/jest
YN0000: Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
YN0000: Completed in 1s 521ms
YN0000: Fetch step
YN0013: 7 packages were already cached, 1990 had to be fetched
@RafaelGSS
RafaelGSS / .zshrc
Created January 12, 2025 02:32
Use npx with Node.js Permission Model
alias npx-safe='function _npx_safe() {
local node_opts="--permission --allow-fs-read=$(npm prefix -g) --allow-fs-read=$(npm config get cache)"
local package=""
local package_args=()
while [[ $# -gt 0 ]]; do
if [[ "$1" == --* ]]; then
# Anything starting with `--` goes into node_opts
node_opts+=" $1"