Skip to content

Instantly share code, notes, and snippets.

@monovertex
monovertex / template-lint-codemod.js
Last active October 27, 2022 13:01
Codemod to ignore HBS template lint rule for files that fail it
const { exec } = require('child_process');
const fs = require('fs');
exec('yarn run lint:hbs', { maxBuffer: 1024 * 10000 }, (_err, stdout) => {
const lines = stdout.toString().split(/\r?\n/);
const files = lines.filter((line) => line.startsWith('packages/'));
for (const file of files) {
fs.readFile(file, function (_, fileContent) {
const fileLines = fileContent.toString().split(/\r?\n/);
@monovertex
monovertex / controllers.application.js
Last active October 30, 2019 10:16
Computed property chain makes prop unenumerable
import { later } from '@ember/runloop';
import Ember from 'ember';
import { getOwner } from '@ember/application';
import EmberObject, { computed } from '@ember/object';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
init() {
const owner = getOwner(this);
import Ember from 'ember';
import { observer, computed } from '@ember/object';
export default Ember.Component.extend({
obsCallCount: 0,
prop1: computed('prop2', function () {
return this.get('prop2') + '123';
}),
@monovertex
monovertex / .importjs.js
Last active November 16, 2018 20:59
Configuration for import-js build for an ember-cli project
module.exports = {
excludes: [
'./dist/**',
'./lib/**',
'./public/**',
'./tmp/**',
'./vendor/**',
],
useRelativePaths: false,
groupImports: true,
import Ember from 'ember';
const isEven = (item) => item % 2;
export default Ember.Controller.extend({
testArray: null,
filteredArray: Ember.computed.filter('testArray', isEven),
init() {
@monovertex
monovertex / components.my-component.js
Last active December 12, 2017 12:51
Broken deep hash binding
import Ember from 'ember';
export default Ember.Component.extend({
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
test() {
return 'foo';
}
});
import Ember from 'ember';
export default Ember.Component.extend({
baz: '1234',
foo: Ember.computed('bar', 'baz', function () {
return this.get('bar') + this.get('baz');
})
});
@monovertex
monovertex / controllers.application.js
Created October 11, 2017 06:32
Dynamic service lookup
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
actions: {
bar() {
let serv = Ember.getOwner(this).lookup('service:my-service');
console.log(serv);
alert(serv.get('test'));
@monovertex
monovertex / components.action-tester.js
Last active September 14, 2017 14:38
Route action test
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
test() {
this.sendAction('bar', `via action name - ${this.get('output')}`);
this.sendAction('foo', `direct - ${this.get('output')}`);
}
}
});