Skip to content

Instantly share code, notes, and snippets.

View danielbonifacio's full-sized avatar

Daniel Bonifacio danielbonifacio

View GitHub Profile
@danielbonifacio
danielbonifacio / httpConfig.ts
Last active September 11, 2023 19:15 — forked from Godofbrowser/axios.refresh_token.1.js
Configuração do serviço HTTP para renovar o token apenas uma vez em múltiplas chamadas. Criado para o curso Especialista React.js da AlgaWorks.
import axios from "axios";
import Service from "danielbonifacio-sdk/dist/Service";
import AuthService from "./Authorization.service";
const { REACT_APP_API_BASE_URL } = process.env;
if (REACT_APP_API_BASE_URL) Service.setBaseUrl(REACT_APP_API_BASE_URL);
Service.setRequestInterceptors(async (request) => {
const accessToken = AuthService.getAccessToken();
@danielbonifacio
danielbonifacio / countWordsInMarkdown.ts
Created May 22, 2021 05:03
Typescript Function that counts words in raw Markdown text
export default function countWordsInMarkdown (markdownString: string) {
let text = markdownString
if (text === '')
return 0
// Comments
text = text.replace(/<!--(.*?)-->/gi, '');
// Tabs to spaces
text = text.replace(/\t/gi, ' ');
@danielbonifacio
danielbonifacio / react-moderno.md
Created June 3, 2020 18:07
React moderno: O que você precisa saber para começar com React em 2020

React moderno: O que você precisa saber para começar com React em 2020

Não é de hoje que o React.js é o queridinho das empresas de desenvolvimento de software quando se fala em mobile e front-end web, e isso fez com que surgissem inúmeras vagas relacionadas à tecnologia.

Mas nem todo profissional ou iniciante da área de desenvolvimento tem domínio da linguagem de programação JavaScript (que é a base do React.js), e acabam com medo de iniciar com a tecnologia.

Se você é um deles, seus problemas acabaram agora. Neste artigo vamos abordar tudo que você precisa saber sobre React, sem a necessidade de muito conhecimento em JavaScript.

Índice

@danielbonifacio
danielbonifacio / js-before-frameworks.md
Last active September 15, 2022 16:29
Um resumo de JavaScript Moderno, antes dos frameworks (roteiro da série de vídeos)

Olá. Antes de iniciar, só para te contextualizar: escrevi esse arquivo na intenção de ser um roteiro para uma série de vídeos, por isso, em alguns casos, verão eu me referindo a este como se fosse um vídeo. No mais, espero que aprendam bastante, e compartilhe o conhecimento. Abs, Daniel Bonifacio.

JavaScript before any framework

É claro que todo desenvolvedor web já ouviu falar (ou ao menos deveria ter ouvido) sobre React, Vue ou Angular. Estas ferramentas são chamadas de frameworks, que são, basicamente, um conjunto de ferramentas para agilizar o desenvolvimento de aplicações front-end.

Escolher um framework para trabalho, às vezes, é uma decisão difícil. Empresas usam X, você gosta de Y, mas Z paga melhor, enfim... uma porra!

Mas existe algo em comum entre eles que você precisa saber antes de escolher um: JavaScript. Me chamo Daniel Bonifacio, sou Engenheiro de Software e nessa série eu vou te ensinar tudo que você precisa saber sobre JavaScript antes de entrar de cabeça em estudos de algum framewo

@danielbonifacio
danielbonifacio / settings.json
Created March 13, 2019 12:33
Configuração do ESLint no Visual Studio Code
{
"eslint.autoFixOnSave": true,
"eslint.validate": [
{
"language": "vue",
"autoFix": true
},
{
"language": "html",
"autoFix": true
@danielbonifacio
danielbonifacio / doisPrimeirosNomes.js
Created March 8, 2019 13:45
Recupera os dois primeiros nomes da pessoa (suporta nomes compostos)
const doisPrimeirosNomes = nome => {
const arrayNomes = nome.split(' ')
const nomeComposto = /(da|do|de)/gi.test(arrayNomes[1])
const primeirosNomes = arrayNomes.slice(0, nomeComposto ? 3 : 2).join(' ')
return primeirosNomes
}
@danielbonifacio
danielbonifacio / objetos-recursivos.js
Last active November 22, 2018 19:34
ajuda com objetos recursivos
import $ from 'jquery';
const FORMS = $('[valor=form]');
const data = {};
/**
* TODO: FAZER ESSE TREM CRIAR OBJETO SOZIN
* teste começa aqui
*/
let test = {};
@danielbonifacio
danielbonifacio / arquivo.php
Created March 6, 2018 21:33
Upload de arquivo com AJAX
<?php
if(isset($_FILES['arquivo'])):
$allowed_extensions = ['jpg', 'png', 'zip', 'rar'];
$nome_arquivo = $_FILES['arquivo']['name'];
$explode = explode(".",$nome_arquivo);
$extensao = end($explode);
//Verifica se a extensão do arquivo é permitida
if(!in_array($extensao, $allowed_extensions)):
echo "extensão do arquivo não permitida";
@danielbonifacio
danielbonifacio / texto-bg.html
Last active February 9, 2018 07:48
estrutura inicial do texto com background image
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>BG Exemplo</title>
</head>
<style media="screen">
body {
@danielbonifacio
danielbonifacio / connection.php
Created July 28, 2017 11:24
Conexão com banco de dados e protege contra SQL Injection
<?php
//Precisa do arquivo de configuração
require_once'config.php';
//Proteção contra SQLInjection
function DBEscape($dados){
$link = DBConnect();
if(!is_array($dados))
$dados = mysqli_real_escape_string($link, $dados);
else{