Skip to content

Instantly share code, notes, and snippets.

@mitchallen
mitchallen / index-import.js
Created December 16, 2021 03:37
How to Create a JavaScript Module (NodeJS, Browser) (scriptable.com)
// Modify the index.js import command:
import {makeObject, default as obj} from './my-mod.js';
@mitchallen
mitchallen / index-test.js
Created December 16, 2021 03:40
How to Create a JavaScript Module (NodeJS, Browser) (scriptable.com)
// Add this to the bottom of index.js
let robbie = makeObject();
robbie.hello();
let b9 = makeObject({ name: 'B9' });
b9.hello();
// File: UsedCheckedInput.tsx
// Author: Mitch Allen
import {ChangeEventHandler, useCallback, useState} from "react";
export interface CheckedInput {
id?: string,
name?: string,
init?: boolean,
}
// File: UseTextInput.tsx
// Author: Mitch Allen
import {ChangeEventHandler, useCallback, useState} from "react";
export interface TextInput {
id?: string,
name?: string,
label?: string,
helperText?: string,
// File: UseLocalStorageTextInput.tsx
// Author: Mitch Allen
import {ChangeEventHandler, useCallback, useState} from "react";
export interface LocalStorageTextInput {
storageKey?: string,
id?: string,
name?: string,
label?: string,
// File: UseDropdownInput.tsx
// Author: Mitch Allen
import {FormControl, InputLabel, Select, Input, FormHelperText, SelectChangeEvent, MenuItem} from "@mui/material";
import {ReactNode, useCallback, useState} from "react";
/*
// App()
@mitchallen
mitchallen / index.js
Last active December 24, 2021 09:47
JavaScript Clone Object
// Author: Mitch Allen
// Project: js-clone
// File: index.js
// 1. Define a nicer log function
let stringify = (obj) => console.log(JSON.stringify(obj,null,2));
// 2. Define a source object
let alpha = { name: "Alpha", value: 100 };
@mitchallen
mitchallen / index.js
Created December 24, 2021 10:19
JavaScript object getter and setter
function factory() {
let value = 42;
return {
get price() { return value },
set price( p ) {
value = p;
}
}
@mitchallen
mitchallen / index.js
Created December 28, 2021 18:37
Zero Based Counter that Wraps
function createZeroBasedCounter( options = {} ) {
// zero based
// increment automatically wraps
let {
cursor = 0,
limit = 5, // [0..(limit -1)]
@mitchallen
mitchallen / parser.js
Created December 29, 2021 18:47
JSON parser and validator
// Author: Mitch Allen
// File: parser.js
import { readFileSync } from 'fs';
import Ajv from 'ajv';
const ajv = new Ajv();
export function parser( inputFile, schemaFile ) {