Skip to content

Instantly share code, notes, and snippets.

View MrChocolatine's full-sized avatar
Away, unlikely to answer.

MrChocolatine

Away, unlikely to answer.
  • Remote Island
View GitHub Profile
@MrChocolatine
MrChocolatine / GitHub - How to delete all workflow runs.md
Last active December 3, 2022 15:30
GitHub - How to delete all workflow runs
@MrChocolatine
MrChocolatine / controllers.application\.js
Last active December 16, 2021 16:14
Ember.js getters/setters
import Controller from '@ember/controller';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
const DEFAULT_A = [ 'default_a' ];
const DEFAULT_B = [ 'default_b' ];
export default class AppController extends Controller {
@tracked _prop_A = DEFAULT_A.slice();
@tracked _prop_B = DEFAULT_B.slice();
@MrChocolatine
MrChocolatine / main.js
Last active November 11, 2021 18:10
Abort Promises running in parallel
const controller = new AbortController();
const signal = controller.signal;
let RESOLVED_P;
function doSomethingAsync(pIndex, pDelay) {
if (signal.aborted) {
return Promise.reject(new DOMException('Aborted', 'AbortError'));
}
return new Promise((resolve, reject) => {
@MrChocolatine
MrChocolatine / app-utils-decorators-routes-breadcrumb.js
Created November 11, 2021 09:53
Ember.js – Routes decorator `@breadcrumb`
import { inject as service } from '@ember/service'
import { computed } from '@ember/object'
/**
* Decorator `@breadcrumb()`
*
* Allow to customise the breadcrumb of your application, for a specific Route, with an automatic
* translation based on its `routeName` or other custom parameters.
*
* ## Usage
@MrChocolatine
MrChocolatine / TS - More precise return type method Date#toISOString.d.ts
Last active February 22, 2024 22:06
TypeScript – How to accurately type dates in ISO 8601 format
// In TS, interfaces are "open" and can be extended
interface Date {
/**
* Give a more precise return type to the method `toISOString()`:
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
*/
toISOString(): TDateISO;
}
type TYear = `${number}${number}${number}${number}`;
@MrChocolatine
MrChocolatine / controllers.application\.js
Last active October 23, 2021 10:41
Ember.js – Helper `array-split`
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
export default class ApplicationController extends Controller {
@tracked numberItems = 1;
get myItems() {
return [ 1, 2, 3, 4 ]
}
@MrChocolatine
MrChocolatine / controllers.application\.js
Last active October 23, 2021 10:43
Ember.js – Purpose of decorator `@action`
import Controller from '@ember/controller';
import { action } from '@ember/object';
export default class ApplicationController extends Controller {
prop = 'the prop';
@action
withAction() {
// `@action` binds `this` to the method
alert(this.prop)
@MrChocolatine
MrChocolatine / emberjs-collection-ts-types.d.ts
Last active October 23, 2021 11:19
Ember.js – Collection of TypeScript types
import type EmberApp from '@ember/application';
import type { A as EmberArray } from '@ember/array';
import type { Registry as ControllerRegistry } from '@ember/controller';
import type { RouteModel } from '@ember/routing/router-service';
// --- Glimmer Components
interface IGlimmerConstructorOwner extends EmberApp {}
@MrChocolatine
MrChocolatine / TS – Collection of utility types.d.ts
Last active December 3, 2022 15:02 — forked from ClickerMonkey/types.ts
TypeScript – Collection of utility types
// when T is any|unknown, Y is returned, otherwise N
type IsAnyUnknown<T, Y, N> = unknown extends T ? Y : N;
// when T is never, Y is returned, otherwise N
type IsNever<T, Y = true, N = false> = [T] extends [never] ? Y : N;
// when T is a tuple, Y is returned, otherwise N
// valid tuples = [string], [string, boolean],
// invalid tuples = [], string[], (string | number)[]
@MrChocolatine
MrChocolatine / emberjs-route_hooks_order.js
Last active October 23, 2021 11:03 — forked from danielchappell/route_hooks.js
Ember.js – Order of Route's lifecycle hooks
import Ember from 'ember';
// Ember 1.10
// Order also respected on Ember v3.16.10
export default Ember.Route.extend({
//---fire in order on route enter---