Skip to content

Instantly share code, notes, and snippets.

Avatar

A. Matías Quezada amatiasq

View GitHub Profile
View html5-dnd.html
<!DOCTYPE html>
<html>
<head>
<title>Parcel Sandbox</title>
<meta charset="UTF-8" />
</head>
<body>
<div id="app">
<div class="left">Left</div>
@amatiasq
amatiasq / 1-ExposedReferencesTable.cs
Last active February 3, 2023 13:14
Using ExposedReferences in Unity
View 1-ExposedReferencesTable.cs
using System.Collections.Generic;
using UnityEngine;
public class ExposedReferencesTable : MonoBehaviour, IExposedPropertyTable
{
public List<PropertyName> properties = new();
public List<Object> references = new();
public T Get<T>(ExposedReference<T> reference) where T : Object
{
@amatiasq
amatiasq / odin.cs
Last active January 12, 2023 15:11
View odin.cs
class Example : MonoBehaviour {
// Assets only
[AssetsOnly]
public GameObject SomePrefab;
[AssetsOnly]
public List<GameObject> OnlyPrefabs;
// SceneObjectsOnly
[SceneObjectsOnly]
public GameObject SomeSceneObject;
View interface-segregation.cs
using System;
// Interface segregation
interface ISimulationReporter<TResult>
{
event Action<TResult> OnComplete;
}
interface ISimulationRunner<TInput>
View netcode.test.ts
import { equal } from 'assert';
import { FIRST_FRAME } from './Netcode';
import { NetcodeClient } from './NetcodeClient';
import { NetcodeServer } from './NetcodeServer';
type UserId = 'a' | 'b';
type Input = 'RUN' | null;
interface Entity {
x: number;
View ts-mockito.ts
import { mock, instance, when, verify, anything } from 'ts-mockito';
const mockedFoo: Foo = mock(Foo);
// stub method before execution
when(mockedFoo.getBar(3)).thenReturn('three');
// Getting instance from mock
const foo: Foo = instance(mockedFoo);
@amatiasq
amatiasq / esm.ts
Last active September 23, 2021 11:57
View esm.ts
const extensions = {
js: 'application/javascript',
ts: 'application/typescript',
jsx: 'text/jsx',
tsx: 'text/tsx',
} as const;
type Extensions = typeof extensions;
type ValidExtension = keyof Extensions;
type ValidMediaType = Extensions[ValidExtension];
@amatiasq
amatiasq / concatRegexes.js
Last active February 24, 2021 08:57
concatRegexes
View concatRegexes.js
const createConcatenator = escape => (...regexes) => {
const join = regexes
.map(x => (x instanceof RegExp ? regexToString(x) : escape(x)))
.join("");
const flags = regexes
.map(x => x instanceof RegExp && x.flags)
.filter(Boolean)
.join("");
View typed-messaging.ts
interface Message<Type extends string | number, Data = never> {
type: Type;
data: Data;
}
type MessageData<
Msg extends Message<any, any>,
Type extends Msg['type']
> = Extract<Msg, { type: Type }>['data'];
View cached-request.js
let cache = null;
export function myCachedRequest() {
if (cache) {
return Promise.resolve(cache);
}
return fetch('potato.com/foo').then(x => {
cache = x;
return x