Skip to content

Instantly share code, notes, and snippets.

View sukima's full-sized avatar

Devin Weaver sukima

View GitHub Profile
@sukima
sukima / countries.json
Last active December 8, 2020 13:31 — forked from keeguon/countries.json
A list of countries in JSON
[
{"name": "Afghanistan", "code": "AF"},
{"name": "Åland Islands", "code": "AX"},
{"name": "Albania", "code": "AL"},
{"name": "Algeria", "code": "DZ"},
{"name": "American Samoa", "code": "AS"},
{"name": "AndorrA", "code": "AD"},
{"name": "Angola", "code": "AO"},
{"name": "Anguilla", "code": "AI"},
{"name": "Antarctica", "code": "AQ"},
@sukima
sukima / controllers.application\.js
Created November 11, 2020 14:53
split helper with new line support
import Controller from '@ember/controller';
export default class ApplicationController extends Controller {
example = `This
message
seems
to
split
correctly`;
}
@sukima
sukima / machine.js
Created October 7, 2020 18:49
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
import Controller from '@ember/controller';
import EmberObject from '@ember/object';
const FOO = { bar: 'BAR' };
class Foobar extends EmberObject {
baz = FOO.bar;
}
export default class ApplicationController extends Controller {
import Component from '@glimmer/component';
export default class extends Component {
}
@sukima
sukima / controllers.application\.js
Last active August 6, 2020 15:41
Autotracking adds hidden goodies
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { action, computed } from '@ember/object';
// Ember 3.18.1
export default class ApplicationController extends Controller {
appName = 'Ember Twiddle'; // NOT Tracked
@computed('appName') // Dirty Dependancy
get foo1() {
return `${this.appName}-1`;
@sukima
sukima / controllers.application\.js
Last active August 8, 2020 15:36
tracking polyfill autotrack
import Controller from '@ember/controller';
import EmberObject, { action, computed, notifyPropertyChange } from '@ember/object';
let currentAutoTrackings = [];
function trackedData(key, initializer) {
let values = new WeakMap();
let autoTrackingData = new WeakMap();
let hasInitializer = typeof initializer === 'function';
@sukima
sukima / controllers.application\.js
Last active August 5, 2020 21:27
Lagacy Tracked Polyfill-ish
import Controller from '@ember/controller';
import EmberObject, { action } from '@ember/object';
function trackedData(key, initializer) {
let values = new WeakMap();
let hasInitializer = typeof initializer === 'function';
function getter(self) {
let value;
if (hasInitializer && !values.has(self)) {
import Controller from '@ember/controller';
import EmberObject, { action, computed } from '@ember/object';
const PROPERTY_BAG = Symbol('PROPERTY_BAG');
function legacyTrackedVanilla(target, key, descriptor) {
target[PROPERTY_BAG] = target[PROPERTY_BAG] ?? EmberObject.create();
target[PROPERTY_BAG].set(key, descriptor.initializer?.());
descriptor.get = function() {
console.log(1); // NEVER CALLED
@sukima
sukima / machine.js
Created July 27, 2020 20:52
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions