Skip to content

Instantly share code, notes, and snippets.

@lookitskris
lookitskris / PasswordComplexity.js
Created May 12, 2022 16:28
Regex for password complexity
//Password Complexity Regex
//Must be 8-40 characters
//Must contain at least one digit
//Must contain at least one lowercase letter
//Must contain at least one uppercase letter
//Must contain at least one special character
var term = "Samp!e99";
var re = new RegExp(
/^(?=^.{8,}$)(?=.*\d)(?=.*[!@#$%^&*]+)(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/
@lookitskris
lookitskris / dropTables.sql
Created March 30, 2022 09:33
Drop all Tables in Database
-- use database
USE [dbname]
GO
-- drop constraints
DECLARE @DropConstraints NVARCHAR(max) = ''
SELECT @DropConstraints += 'ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + '.'
+ QUOTENAME(OBJECT_NAME(parent_object_id)) + ' ' + 'DROP CONSTRAINT' + QUOTENAME(name)
FROM sys.foreign_keys
EXECUTE sp_executesql @DropConstraints;
@lookitskris
lookitskris / CreateString.sql
Created March 29, 2022 11:14
Create Connection String - Management Studio
select
'data source=' + @@servername +
';initial catalog=' + db_name() +
case type_desc
when 'WINDOWS_LOGIN'
then ';trusted_connection=true'
else
';user id=' + suser_name()
end
from sys.server_principals
@lookitskris
lookitskris / PasswordComplexityRegex.js
Created March 11, 2022 18:18
password complexity regex
//Password complexity regex that has...
//Must be 8-40 characters
//Must contain at least one digit
//Must contain at least one lowercase letter
//Must contain at least one uppercase letter
//Must contain at least one special character
const password = "HelloHello$1";
const result = /((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,40})/.test(
password
@lookitskris
lookitskris / isJwtExpired.js
Created February 28, 2022 09:59
Check if jwt token has expired
import jwt_decode from "jwt-decode";
export const isJwtExpired = (token) => {
if (typeof token !== "string" || !token)
throw new Error("Invalid token provided");
let isJwtExpired = false;
const { exp } = jwt_decode(token);
const currentTime = new Date().getTime() / 1000;
@lookitskris
lookitskris / CreateName.cs
Last active May 12, 2021 13:03
Format Existing Name
private string CreateName(string requestedName, List<string> values)
{
string str = requestedName;
string formattedName = str;
int i = 0;
while (values.Contains(formattedName))
{
i++;
formattedName = string.Format("{0} ({1})", str, i);
@lookitskris
lookitskris / forwardRef.tsx
Last active April 15, 2021 09:35
Typescript forwardRef example
export type ComponentProps = {
foo?: boolean;
bar: string;
className?: string;
};
export const Component = React.forwardRef(
(props: ComponentProps, ref?: React.Ref<HTMLButtonElement>) => {
const { className, foo, bar } = props;
@lookitskris
lookitskris / Typewriter.tst
Created February 25, 2021 17:06
Typewriter template file for generating Typescript class and enum types
${
using Typewriter.Extensions.Types;
using System.Text.RegularExpressions;
using System.Diagnostics;
string ToKebabCase(string typeName){
return Regex.Replace(typeName, "(?<!^)([A-Z][a-z]|(?<=[a-z])[A-Z])","-$1", RegexOptions.Compiled)
.Trim().ToLower();
}
@lookitskris
lookitskris / useFetchAll.js
Created February 20, 2021 10:49
React hook to fetch data from multiple endpoints
import { useState, useRef, useEffect } from "react";
export default function useFetchAll(urls) {
const prevUrls = useRef([]);
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
useEffect(() => {
// Only run if the array of URLs passed in changes
@lookitskris
lookitskris / useFetch.js
Last active February 20, 2021 15:25
Custom react hook for fetching data using fetch
import { useState, useRef, useEffect } from "react";
//check package.json -> start script -> cross-env
const baseUrl = process.env.REACT_APP_API_BASE_URL;
export default function useFetch(url) {
const isMounted = useRef(false);
const [data, setData] = useState(null);
const [error, setError] = useState(null);
const [loading, setLoading] = useState(true);