Skip to content

Instantly share code, notes, and snippets.

View sturmenta's full-sized avatar
🌌

Nicolas Sturm sturmenta

🌌
  • Argentina
  • 19:07 (UTC -03:00)
View GitHub Profile
@sturmenta
sturmenta / removeHoursMinutesAndSecondsFromDate.ts
Created November 7, 2022 23:16
remove Hours Minutes And Seconds From Date
import dayjs from 'dayjs';
/**
* return DD/MM/YYYY
*/
export const removeHoursMinutesAndSecondsFromDate = (
date: Date,
): {newDate: dayjs.Dayjs; DDMMYYYY: string} => {
const _date = dayjs(date);
@sturmenta
sturmenta / validateAtLeast13Years.ts
Created November 7, 2022 23:11
validate user date greater than 13 years
import dayjs from 'dayjs';
export const validateAtLeast13Years = (DDMMYYYY?: string): boolean => {
if (!DDMMYYYY) return false;
const timePickerDate = DDMMYYYY.split('/').reverse().join('-');
const date1 = dayjs();
const date2 = dayjs(timePickerDate);
const diff = date1.diff(date2, 'years');
@sturmenta
sturmenta / check-versionA-is-greater-or-equal-than-versionB.ts
Created October 29, 2022 03:03
check version "A" is greater or equal than version "B"
export const checkVersionAIsGreaterOrEqualThanVersionB = ({
versionA,
versionB,
}: {
versionA: string; // 1.2.3
versionB: string; // 1.2.3
}): boolean => {
const _versionA = {
major: parseInt(versionA.split('.')[0], 10), // 1.2.3 -> 1
minor: parseInt(versionA.split('.')[1].split('.')[0], 10), // 1.2.3 -> 2
@sturmenta
sturmenta / example.ts
Last active October 28, 2022 18:29
get gist text - get gist raw text - fetch gist text
const gistUrl = 'https://gist.github.com/sturmenta/df1c9da1f219c88e996e48f19d57acd3';
const {data, error} = await getGistFirstFileText(`${gistUrl}.json`);
console.log(data);
// ## some title
//
// some text
@sturmenta
sturmenta / get-google-maps-place-by-autocomplete.ts
Last active October 19, 2022 11:31
get google maps place by autocomplete
import Qs from 'qs';
import {GOOGLE_MAPS_API_KEY} from 'react-native-dotenv';
export const getGoogleMapsPlaceByAutocomplete = (
place: string,
): Promise<{
data?: {
predictions: Array<{
description: string;
place_id: string;
@sturmenta
sturmenta / scalable-image-uri.tsx
Created October 11, 2022 08:33
react-native uri-image with progress indicator
import React, {useState} from 'react';
import {ImageProps, View} from 'react-native';
import FastImage, {FastImageProps} from 'react-native-fast-image';
import {useComponentTrackTrace} from '_hooks';
import {ShowProgress} from '_atoms';
import {ToastShow} from '_utils';
import {getNewImageSizeByAspectRatio} from './get-new-image-size-by-aspect-ratio';
@sturmenta
sturmenta / show-progress.tsx
Created October 11, 2022 08:28
react-native progress indicator
import React from 'react';
import {useTheme} from '@react-navigation/native';
import {ProgressChart} from 'react-native-chart-kit';
import {MyThemeInterfaceColors, getPercentageInHex} from '_utils';
import {useComponentTrackTrace} from '_hooks';
interface ShowProgressProps {
progress: number;
height?: number;
@sturmenta
sturmenta / get-new-image-size-by-aspect-ratio.ts
Created October 11, 2022 07:31
resize image and keep aspect ratio
type OneRequiredOneOptional =
| {desiredWidth: number; desiredHeight?: number}
| {desiredWidth?: number; desiredHeight: number};
interface CommonProps {
widthReadFromImage: number;
heightReadFromImage: number;
}
type FullProps = CommonProps & OneRequiredOneOptional;
@sturmenta
sturmenta / baseScraper.js
Last active September 30, 2022 12:18
basic scraper
const axios = require('axios');
const cheerio = require('cheerio');
const baseUrl = 'https://www.infomerlo.com';
const urlToScrap = baseUrl + '/noticias';
const numberOfFirstElementsToScrap = 10;
axios(urlToScrap)
.then(response => {
@sturmenta
sturmenta / addObjectsToArrayIfIdNotExists.ts
Created August 7, 2022 21:50
get from graphql with pagination
export const addObjectsToArrayIfIdNotExists = (
baseArray: any[],
objects: any[],
): any[] => {
objects.forEach(obj1 => {
if (!baseArray.find(obj2 => obj2.id === obj1.id)) {
baseArray.push(obj1);
}
});