{ // so we can swap it out one day private orders = inject(OrderService); private ordersV2 = inject(OrderServiceV2); shared/ load() { if (flags.newCheckout2023) { return this.ordersV2.load(); } return this.orders.load(); order-wrapper.service.ts feature-flags.ts // newCheckout2023 } }
{ // so we can swap it out one day private orders = inject(OrderService); private ordersV2 = inject(OrderServiceV2); shared/ load() { if (flags.newCheckout2023) { return this.ordersV2.load(); } return this.orders.load(); order-wrapper.service.ts feature-flags.ts // newCheckout2023 } } The box gets a little heavier each time.
layout = input<'table' | 'grid' | 'cards'>('table'); sortable = input(true); filterable = input(true); pageSize = input(25); density = input<'compact' | 'comfortable'>('comfortable'); config = input<DataViewConfig>(DEFAULT_CONFIG); dataSource = input<DataSource<Row>>(new DefaultDataSource()); // ... five more inputs // in case we ever go multi-tenant tenantId = input<string>(); An option nobody uses still costs something every time it's read.
✓ Added FormSaveFacade ✓ Introduced a SaveFormRequested event ✓ Defined SaveStrategy + DefaultSaveStrategy ✓ Added a saveForm slice to the store ✓ Wrote adapters for three future storage backends
✓ Added FormSaveFacade ✓ Introduced a SaveFormRequested event ✓ Defined SaveStrategy + DefaultSaveStrategy ✓ Added a saveForm slice to the store ✓ Wrote adapters for three future storage backends ✓ Added a plugin hook for custom save behaviour
✓ Added FormSaveFacade ✓ Introduced a SaveFormRequested event ✓ Defined SaveStrategy + DefaultSaveStrategy ✓ Added a saveForm slice to the store ✓ Wrote adapters for three future storage backends ✓ Added a plugin hook for custom save behaviour ...
✓ Added FormSaveFacade ✓ Introduced a SaveFormRequested event ✓ Defined SaveStrategy + DefaultSaveStrategy ✓ Added a saveForm slice to the store ✓ Wrote adapters for three future storage backends ✓ Added a plugin hook for custom save behaviour ... ?