Skip to content

Instantly share code, notes, and snippets.

View lolmaus's full-sized avatar
🧠
Reducing entropy

Andrey Mikhaylov (lolmaus) lolmaus

🧠
Reducing entropy
View GitHub Profile
@lolmaus
lolmaus / 1 wait-for.ts
Last active February 28, 2020 15:53
wait for
import Ember from 'ember';
import { assert } from '@ember/debug';
let pending = 0;
export function checkPending(): boolean {
return pending === 0;
}
export default function waitForInTests(_target: unknown, _propertyKey: string, desc: PropertyDescriptor): void {
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
isChecked: false,
actions: {
toggle() {
this.toggleProperty('isChecked');
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
timeZoneOptions: Object.freeze([
{ groupName: "Asia", options:["Kabul","Yerevan","Baku","Dhaka","Brunei","Bangkok","Shanghai","Urumqi","Taipei","Macau","Tbilisi","Dili","Kolkata","Jakarta"]},
{ groupName: "Australia", options: ["Darwin", "Eucla", "Perth", "Brisbane","Lindeman","Adelaide","Hobbart","Currie","Melbourne"]},
]),
@lolmaus
lolmaus / controllers.application.js
Created October 22, 2019 12:00
Classic Ember tracking on a POJO
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
foo: {
bar: 'Baz'
},
uppercaseFooBar: Ember.computed('foo.bar', function () {
@lolmaus
lolmaus / 1_ternary.js
Last active September 13, 2019 16:43
Ternary vs ifs
const isHidden =
option.selectable !== undefined ? option.selectable :
hasOptedIntoDisabledOptions ? values.all.length > 1 :
getAvailableOptionValues(option, state, constraints).length > 1 ;
@lolmaus
lolmaus / 01.md
Last active March 21, 2024 19:50
Prettier is uglier

Before:

  plugins: [
    "@typescript-eslint",
    "ember",
    "prettier",
  ],
@lolmaus
lolmaus / controllers.application.js
Last active September 5, 2019 15:08
Two-way relationships defined as one-way on the backend side
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
child: Ember.computed(function () {
return this.store.peekRecord('child', '1');
}),
init () {
@lolmaus
lolmaus / app.js
Created September 3, 2019 14:11
Glimmer Pods components are silently not rendering in Octane #18350 https://github.com/emberjs/ember.js/issues/18350
'use strict';
;define("glimmer-component-pods-bug/app", ["exports", "glimmer-component-pods-bug/resolver", "ember-load-initializers", "glimmer-component-pods-bug/config/environment"], function (_exports, _resolver, _emberLoadInitializers, _environment) {
"use strict";
Object.defineProperty(_exports, "__esModule", {
value: true
});
@lolmaus
lolmaus / controllers.application.js
Last active July 11, 2019 11:54
Updating a plain object
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
// Fun fact: using an object as a property like this is kinda OK for controllers,
// since they are singletons. But the instance of the object will leak across
// tests! So please don't do what I do here:
foo: {
bar: 0
@lolmaus
lolmaus / adapters.application.js
Created June 20, 2019 10:48
Solution for JSONAPIAdapter.updateRecord, DS.InvalidError and record.errors: https://github.com/emberjs/data/issues/6173
import DS from 'ember-data';
import RSVP from 'rsvp';
export default DS.JSONAPIAdapter.extend({
updateRecord(store, type, snapshot) {
if (snapshot.adapterOptions && snapshot.adapterOptions.withError) {
return RSVP.reject(new DS.InvalidError([
{
detail: 'This name is reserved',
source: {pointer: '/data/attributes/name'},