Skip to content

Instantly share code, notes, and snippets.

View Grubba27's full-sized avatar
:shipit:

Gabriel Grubba Grubba27

:shipit:
View GitHub Profile
@Grubba27
Grubba27 / example.js
Last active May 2, 2025 15:19
Meteor methods with decorators
// .babelrc needs this config at least:
// {
// "plugins": [
// ["@babel/plugin-transform-class-static-block"],
// ["@babel/plugin-proposal-decorators", { "version": "2023-11" }]
// ]
// }
import { Meteor } from 'meteor/meteor';
# frozen_string_literal: true
require "rails/generators/active_record/migration/migration_generator"
class Rails::MigrationGenerator < ActiveRecord::Generators::MigrationGenerator
class_option :plugin_name,
type: :string,
banner: "plugin_name",
desc: "The plugin name to generate the migration into."
@Grubba27
Grubba27 / table.md
Last active July 16, 2025 12:18
Meteor <> MongoDB compat table
Meteor MongoDB Driver Latest Compatible MongoDB MongoDB with all features Oldest supported MongoDB
3.3 6.9.0 8.0 8.0 3.6
3.2 6.9.0 8.0 8.0 3.6
3.1 6.10.0 8.0 8.0 3.6
3.0 4.17.2 8.0 6.0 3.6
2.15 4.17.2 7.0 6.0 3.6
2.14 4.17.2 7.0 6.0 3.6
2.13.3 4.16.0 7.0 6.0 3.6
@Grubba27
Grubba27 / async.go
Last active March 4, 2024 01:14
Async/Await implementation in Go with generics for better IDE support
package async
// This snippet is an update on what we see in
// https://hackernoon.com/asyncawait-in-golang-an-introductory-guide-ol1e34sg
// Also this one follows this assumptions from this article: https://appliedgo.net/futures/
// Assumption #1: It is ok that the spawned goroutine blocks after having calculated the result.
// Assumption #2: The reader reads the result only once.
// Assumption #3: The spawned goroutine provides a result within a reasonable time.
@Grubba27
Grubba27 / settings.json
Created January 22, 2024 18:49
vscode config
{
"json.schemaDownload.enable": true,
"workbench.colorTheme": "Night Wolf (black)",
"workbench.iconTheme": "symbols",
"files.autoSave": "afterDelay",
"editor.fontSize": 14,
"editor.fontFamily": "'Jetbrains Mono', 'FiraCode-Retina', 'Fira Code', Monocraft , Menlo, Monaco, 'Courier New', monospace",
"editor.tabSize": 2,
"editor.cursorBlinking": "phase",
@Grubba27
Grubba27 / meteor-type-rpc.ts
Created January 3, 2024 20:16
dead simple trpc like api for meteor
import { Meteor } from "meteor/meteor";
const setProxySettings = (
{
call,
filter,
}: {
call: ({ path, args }: { path: unknown; args: unknown[] }) => any;
filter: (path: string[]) => unknown;
} = {
@Grubba27
Grubba27 / generic-proxy.ts
Created January 3, 2024 19:56
create your own tRPC-like api with JavaScript proxy and a little bit of ts magic
const setProxySettings = (
{
call,
filter,
}: {
call: ({ path, args }: { path: unknown; args: unknown[] }) => any;
filter: (path: string[]) => unknown;
} = {
call: ({ path, args }) => {
return {
@Grubba27
Grubba27 / meteor-packages
Last active December 4, 2023 23:48
All packages in the core of meteor
accounts-2fa logging
accounts-base logic-solver
accounts-facebook meetup-config-ui
accounts-github meetup-oauth
accounts-google meteor
accounts-meetup meteor-base
accounts-meteor-developer meteor-developer-config-ui
accounts-oauth meteor-developer-oauth
accounts-password meteor-platform
accounts-passwordless meteor-tool
@Grubba27
Grubba27 / install-node-14.21.4.sh
Created August 23, 2023 17:24
installing Node.js 14.21.4
#!/bin/bash
# Set environment variables
NODE_VERSION="14.21.4"
NODE_URL="https://static.meteor.com/dev-bundle-node-os/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz"
DIR_NODE="/usr/local"
# Download and install Node.js using wget
wget -qO- "$NODE_URL" | tar -xz -C "$DIR_NODE"/ && mv "$DIR_NODE"/node-v${NODE_VERSION}-linux-x64 "$DIR_NODE"/v$NODE_VERSION
@Grubba27
Grubba27 / tester.js
Created July 24, 2023 04:22
dead simple testing framework in js
/**
*
* @param {string} name
* @param {(assert: typeof assert) => void} callback
*/
function assement(name, callback) {
let counter = 0,
failed = 0,
errorList = [];