Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@offirgolan
offirgolan / extract-icu-message-argument-types.ts
Last active July 11, 2023 04:20
Extract ICU Message Argument Types
/**
* Utility type to replace a string with another.
*/
type Replace<S extends string, R extends string, W extends string> =
S extends `${infer BS}${R}${infer AS}`
? Replace<`${BS}${W}${AS}`, R, W>
: S
/**
* Utility type to remove all spaces and new lines from the provided string.
/*
Create a new polly instance.
Connect Polly to fetch. By default, it will record any requests that it
hasn't yet seen while replaying ones it has already recorded.
*/
const polly = new Polly('Simple Example', {
adapters: ['fetch'], // Hook into `fetch`
persister: 'local-storage', // Read/write to/from local-storage
});
/*
Create a new polly instance.
Connect Polly to fetch. By default, it will record any requests that it
hasn't yet seen while replaying ones it has already recorded.
*/
const polly = new Polly('Simple Example', {
adapters: ['fetch'], // Hook into `fetch`
persister: 'local-storage', // Read/write to/from local-storage
});
@offirgolan
offirgolan / controllers.application.js
Last active July 27, 2018 20:57
Ember CP Validations - Disabled Bug
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@offirgolan
offirgolan / controllers.application.js
Created February 11, 2018 06:49
Ember Wormhole Bug Demo
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
isValid: false,
isValidObserver: Ember.observer('model.validations.isValid', function() {
this.set('isValid', this.get('model.validations.isValid'));
})
@offirgolan
offirgolan / components.x-card.js
Created September 22, 2017 21:56
EC: Sync Loading State
import Ember from 'ember';
import { task, timeout } from 'ember-concurrency';
export default Ember.Component.extend({
classNames: ['x-card'],
timeout: 500,
task: task(function *() {
yield timeout(this.get('timeout'));
}).on('didReceiveAttrs').restartable()
@offirgolan
offirgolan / controllers.application.js
Created September 20, 2017 19:06
Buffered Array Proxy
import Ember from 'ember';
const {
get,
computed,
isArray,
A: emberArray
} = Ember;
const BufferedArrayProxy = Ember.ArrayProxy.extend({
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});