SELECT *
FROM products
LEFT JOIN products_category USING (product_id)
LEFT JOIN categories USING (category_id)
Dispatcher.addListener('HelloPopup', 'beforeShow', onBeforeShow);
Dispatcher.dispatch('HelloPopup', 'beforeShow');
const Harvestable = (Base) => class extends Base {
harvest() { console.log('Harvesting'); }
};
const Waterable = (Base) => class extends Base {
water() { console.log('Watering'); }
};
const Repottable = (Base) => class extends Base {
repot() { console.log('Repotting'); }
};
class Plant { }
class Flower extends Waterable(Repottable(Plant)) { }
class Vegetable extends Waterable(Harvestable(Plant)) { }
class Fruit extends Waterable(Repottable(Harvestable(Plant))) { }
const daffodil = new Plant();
daffodil.harvest(); // undefined
const banana = new Fruit();
banana.harvest(); // Harvesting