Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View jthoms1's full-sized avatar
💻
Writing Code

Josh Thomas jthoms1

💻
Writing Code
View GitHub Profile
@jthoms1
jthoms1 / Why_not.tsx
Last active October 12, 2022 16:34
Why_not
import { GoogleMap } from '@capacitor/google-maps';
const MyMap: React.FC = () => {
return (
<div className="component-wrapper">
<GoogleMap
apiKey={process.env.REACT_APP_YOUR_API_KEY_HERE}
config={{
center: {
# Type a script or drag a script file from your workspace to insert # Type a script or drag a script file from your workspace to insert its path.
# SRCROOT
# TARGET_NAME
# BUILT_PRODUCTS_DIR
APP_NAME="shopwebapp"
EMBEDDED_DIR="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app/portals"
EMBEDDED_APP="${SRCROOT}/../../web/build"
ZIP_FILE="${APP_NAME}.zip"
mkdir "${EMBEDDED_DIR}"
# Instructions on how to download an App Bundle from AppFlow
#
#
# Setup auth first: https://ionic.io/docs/appflow/cli/overview#authentication
#
# Environment variables
#
# APP_ID (IE 186b544f)
# CHANNEL (IE production)
# PORTAL_NAME (IE checkout)
@jthoms1
jthoms1 / index.ts
Last active September 28, 2021 16:43
import ShopAPI from './ShopAPIPlugin';
import Portals from '@ionic/portals';
const App: React.FC<InitialContext> = () => {
const [sessionInfo, setSession] = useState(null);
const [startingRoute, setInitialRoute] = useState(null);
useEffect(() => {
const [context, sessionInfo] = await Promise.all([
Portals.getInitialContext(),
@jthoms1
jthoms1 / styles.d.ts
Created July 21, 2020 03:01
Much better way of using tokens in Styled Components
import { ThemeType } from 'some/path/to/my/tokens';
import 'styled-components';
declare module 'styled-components' {
export interface DefaultTheme extends ThemeType {}
}

Keybase proof

I hereby claim:

  • I am jthoms1 on github.
  • I am jthoms1 (https://keybase.io/jthoms1) on keybase.
  • I have a public key whose fingerprint is 43F1 2702 C01E 2E33 6B63 151A E50F 4DE2 8157 8CE6

To claim this, I am signing this object:

@jthoms1
jthoms1 / waterfall.ts
Created September 4, 2018 19:08
Simple promise waterfall.
function waterFallExec<T, S>(listOfItems: T[], func: (item: T) => Promise<S>): Promise<S[]> {
const results: S[] = []
return listOfItems.reduce(function (lastPromise, item) {
return lastPromise.then(function (res) {
return func(item).then(function (result) {
res.push(result);
return res;
});
});
/**
* This is an autogenerated file created by the Stencil compiler.
* It contains typing information for all components that exist in this project.
*/
/* tslint:disable */
import { JSXElements } from '@stencil/core';
import '@stencil/router';
import '@stencil/state-tunnel';
@jthoms1
jthoms1 / pit.md
Last active August 7, 2018 01:32
Pit of Success

The Pit of Success: in stark contrast to a summit, a peak, or a journey across a desert to find victory through many trials and surprises, we want our customers to simply fall into winning practices by using our platform and frameworks. To the extent that we make it easy to get into trouble we fail.

Rico Mariani, MS Research MindSwap Oct 2003.


I had a chance hear Rico Mariani do

@jthoms1
jthoms1 / transform-test.ts
Created September 20, 2017 02:31
Typescript transform test tool
function transformSourceFile(sourceText: string, transformers: ts.TransformerFactory<ts.SourceFile>[]) {
const transformed = ts.transform(ts.createSourceFile('source.ts', sourceText, ts.ScriptTarget.ES2015), transformers);
const printer = ts.createPrinter({ newLine: ts.NewLineKind.CarriageReturnLineFeed }, {
onEmitNode: transformed.emitNodeWithNotification,
substituteNode: transformed.substituteNode
});
const result = printer.printBundle(ts.createBundle(transformed.transformed));
transformed.dispose();
return result;
}