Skip to content

Instantly share code, notes, and snippets.

View mandado's full-sized avatar

Jorge Roberto Tomaz Junior mandado

  • Juiz de Fora - Minas Gerais
View GitHub Profile

Estilo de Codificação e Organização de Arquitetura Base para Projetos Node + TypeScript (Airbnb Style)

Este documento define um estilo de codificação e organização de arquitetura base para projetos Node.js e TypeScript que utilizam as melhores práticas de desenvolvimento. O objetivo é fornecer um conjunto de diretrizes para garantir a consistência, legibilidade, manutenabilidade e escalabilidade do código. Este estilo de codificação é baseado no Airbnb Style Guide, com algumas adaptações para melhor se adequar às necessidades de projetos Node + TypeScript.

Estrutura do Projeto ( Rascunho )

a ideia aqui é definir um padrão, hoje quando usamos api serverless estamos começando a usar esse boilerplate que está em uma estrutura diferente. https://github.com/tem-saude/tem-serverless-boilerplate

e quando vamos para fargate usamos nest como base, mas sem uma estrutura definida.

@mandado
mandado / callAll.ts
Last active November 17, 2022 15:58
interface CallBack<Params extends any[]> {
(...args: Params): void;
}
export const callAll =
<Params extends any[]>(...fns: Array<CallBack<Params> | undefined>) =>
(...args: Params) =>
fns.forEach((fn) => typeof fn === 'function' && fn(...args));
// use example <input onKeyDown={callAll(addTagOnEnterPress, removeLastTagOnBackspacePress)} />
@mandado
mandado / rearct-native-app-in-wsl2.md
Created January 16, 2022 20:25 — forked from bergmannjg/rearct-native-app-in-wsl2.md
Building a react native app in WSL2

aproveitando a deixa... tem um sugestão que notei que pode ser implementada futuramente. se vcs acharem boa ideia, que é, usar uma config pra setar os eventos automaticamente.

as vezes em uma classe temos um monte de event listener no connect, o que pensei é uma espécie de config.

algo como:

export default class AnnotationModal extends Controller {
DROP FUNCTION IF EXISTS avoid_quota_beyond_limit() CASCADE;
CREATE OR REPLACE FUNCTION avoid_quota_beyond_limit() RETURNS TRIGGER AS $$
DECLARE
var_group_id uuid;
var_product_id uuid;
var_quota_by_group int;
var_total_quotas int ;
var_current_quotas int;
BEGIN
select product_id into var_product_id from groups where id = NEW.group_id;
@mandado
mandado / graphql-with-user-context-jwt.js
Created August 1, 2017 01:46
injecting user on context graphql
'use strict';
const { graphqlHapi, graphiqlHapi } = require('apollo-server-hapi');
const jwt = require('jsonwebtoken');
const schema = require('./schema');
const db = require('./config/database');
const secretJWT = 'minhasecreetjwt';
'use strict';
export default (Vue) => {
Vue.component('mm-checkbox', {
props: {
value: {
type: Array,
default: ''
},
valueChecked: {
#!/bin/sh
curl -L "https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
cat <<EOF >> docker-composer.yml
version: '2'
services:
@mandado
mandado / config.json
Created November 18, 2016 20:05 — forked from anonymous/config.json
Bootstrap Customizer Config
{
"vars": {
"@gray-base": "#000",
"@gray-darker": "lighten(@gray-base, 13.5%)",
"@gray-dark": "lighten(@gray-base, 20%)",
"@gray": "lighten(@gray-base, 33.5%)",
"@gray-light": "lighten(@gray-base, 46.7%)",
"@gray-lighter": "lighten(@gray-base, 93.5%)",
"@brand-primary": "darken(#2979FF, 6.5%)",
"@brand-success": "#5cb85c",
@mandado
mandado / config.json
Created November 18, 2016 17:50 — forked from anonymous/config.json
Bootstrap Customizer Config
{
"vars": {
"@gray-base": "#000",
"@gray-darker": "lighten(@gray-base, 13.5%)",
"@gray-dark": "lighten(@gray-base, 20%)",
"@gray": "lighten(@gray-base, 33.5%)",
"@gray-light": "lighten(@gray-base, 46.7%)",
"@gray-lighter": "lighten(@gray-base, 93.5%)",
"@brand-primary": "darken(#2979FF, 6.5%)",
"@brand-success": "#5cb85c",