Skip to content

Instantly share code, notes, and snippets.

View vasilionjea's full-sized avatar
🌎
Nullius in verba

Vasili Onjea vasilionjea

🌎
Nullius in verba
View GitHub Profile
import Benchmark from 'benchmark';
/**
* -------------------------------------------
* Utils
* -------------------------------------------
*/
function isNone(obj: unknown): boolean {
return obj === null || obj === undefined;
}
@vasilionjea
vasilionjea / rock-paper-scissors.js
Last active November 24, 2022 18:27
Mentoring juniors through rock, paper, scissors
/**
* -----------------------------------------------------------------
* It works version
* -----------------------------------------------------------------
*/
const computerChoiceDisplay = document.getElementById('computer-choice')
const playerChoiceDisplay = document.getElementById('player-choice')
const resultDisplay = document.getElementById('result')
const possibleChoices = document.querySelectorAll('button')
let playerChoice

JavaScript Observables

Notes on Observables.

/**
 * A simple Observable class with `map` and `filter` operators. 
 * 
 * When instantiated, Observable classes don't do anything until they 
 * are "subscribed" to.
@vasilionjea
vasilionjea / controllers.application.js
Created January 2, 2019 05:36
{{each}} Uncaught Error: unreachable
import Ember from 'ember';
export default Ember.Controller.extend({
buttons: [
{id: 1, text: 'button 1'},
{id: 2, text: 'button 2'},
{id: 3, text: 'button 3'}
],
});
@vasilionjea
vasilionjea / components.my-component.js
Created October 11, 2018 00:22
Integration tests - renderWithDefaults
import Ember from 'ember';
export default Ember.Component.extend({
});
@vasilionjea
vasilionjea / controllers.application.js
Created September 25, 2018 22:16
Computed Property for "wrapped items"
import Ember from 'ember';
export default Ember.Controller.extend({
canCreate: true,
hasMax: true,
items: [
{ isEnabled: true, name: 'duplicate'},
{ isEnabled: true, name: 'edit'},
],
@vasilionjea
vasilionjea / controllers.application.js
Last active September 13, 2018 07:29
Epxand a11y accordion panel dynamically via DOM event
import Ember from 'ember';
export default Ember.Controller.extend({
isValid: false,
actions: {
submit() {
if (this.get('isValid') === false) {
this._openFirstPanel();
}
@vasilionjea
vasilionjea / components.component-alpha.js
Last active August 23, 2018 21:31
Child components with same parent wrapper
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['my-child'],
});
@vasilionjea
vasilionjea / controllers.application.js
Last active August 14, 2018 02:49
Ember Conccurency - Error Handling
import Ember from 'ember';
import { task } from 'ember-concurrency';
function fetchReject(type) {
return new Promise(function(resolve, reject) {
Ember.run.later(() => reject('rejected reason'), 1000);
});
}
export default Ember.Controller.extend({
import Ember from 'ember';
const STATES = ['REJECTED', 'APPROVED', 'REQUESTED'];
function getRandomState() {
return STATES[Math.floor(Math.random() * STATES.length)];
}
export default Ember.Controller.extend({
appName: 'Ember Array CP',