Skip to content

Instantly share code, notes, and snippets.

View omardoma's full-sized avatar

Omar Doma omardoma

View GitHub Profile
@omardoma
omardoma / index.ts
Last active April 30, 2020 15:52
Node.js Server Startup.ts
import './src/config';
// Important: Don't place any imports above the config import as they use environment variables that needs to be loaded first
import { startServer, closeServer } from './src/server';
async function gracefulShutdown(signal: string): Promise<void> {
console.log(signal);
console.log('Gracefully stopping... (press Ctrl+C again to force)');
try {
await closeServer();
@omardoma
omardoma / accordion.component.html
Created February 27, 2020 02:09
Ionic 4+ Accordion
<ng-template #panelHeaderTemplate let-panel>
<ion-item lines="none">
<ion-label>{{ panel.title }}</ion-label>
<ion-icon slot="end" name="arrow-{{ panel.isOpen ? 'up' : 'down' }}"></ion-icon>
</ion-item>
</ng-template>
<ng-container *ngFor="let panel of panels">
<ion-card id="{{ panel.id }}-header" role="tab" button detail="false" [disabled]="panel.disabled"
(click)="toggle(panel.id)">
@omardoma
omardoma / UploadItem.ts
Last active October 18, 2020 19:30
Angular 2+ RxJS Uploads Queue
import { HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
export interface UploadItem {
id: string;
start$: Observable<boolean>;
progress$: Observable<number>;
response$: Observable<any>;
error$: Observable<HttpErrorResponse>;