Skip to content

Instantly share code, notes, and snippets.

Avatar

hiepxanh hiepxanh

View GitHub Profile
@hiepxanh
hiepxanh / gist:9bb1d4845e48826c55c69bd52d75ad6f
Created October 27, 2022 02:26
nestjs-custom-cache.interceptor.ts
View gist:9bb1d4845e48826c55c69bd52d75ad6f
import {
Injectable,
NestInterceptor,
ExecutionContext,
CallHandler,
} from "@nestjs/common";
import { CACHE_MANAGER, Inject } from "@nestjs/common";
import { Cache } from "cache-manager";
import {
from,
@hiepxanh
hiepxanh / datepicker-lazy.ts
Created May 23, 2022 10:26
angular 14 standalone lazyload angular material datepicker
View datepicker-lazy.ts
@ViewChild('datepickerTemplate', { read: ViewContainerRef }) datepickerTemplate!: ViewContainerRef;
constructor(private fb: FormBuilder) {}
async loadComponent() {
const { DatepickerAtom } = await import('../../atoms/datepicker/datepicker.atom');
const componentRef = this.datepickerTemplate.createComponent(DatepickerAtom);
const dobControl = this.optionalForm.get('dob');
if (dobControl) {
componentRef.instance.dob = dobControl;
}
@hiepxanh
hiepxanh / .ts
Created March 7, 2022 02:04
typescript groupBy and more support function on object for javascript
View .ts
declare global {
interface Array<T> {
groupBy(keyField: string): object;
arrayToObject(keyField: string): object;
unique(id: string): T[];
addMoreItemProperty(idKey: string, idValue: string | number, updateData: any): T[];
mergeArrayByProperty(idKey: string, otherArray: T[]): T[];
sortByKey(order?: 'asc' | 'desc', keyName?: string): T[];
}
View gist:197cf86a67cf45394f2eaee744c98f67
# https://github.com/SocialEngine/docker-nginx-spa
# http://www.cicoria.com/forcing-tls-https-on-azure-web-apps-for-linux/
# https://github.com/GaryB432/angular-pwa/blob/master/nginx.conf
charset utf-8;
tcp_nopush on;
tcp_nodelay off;
client_header_timeout 10s;
View gist:63ef84fa01206db711b43e91f182b95d
dokku report reader-web
-----> uname: Linux awread-server 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
-----> memory:
total used free shared buff/cache available
Mem: 1995 395 1021 17 579 1456
Swap: 0 0 0
-----> docker version:
Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
@hiepxanh
hiepxanh / cloudSettings
Last active January 19, 2021 13:32
Sync Hiep MOON
View cloudSettings
{"lastUpload":"2021-01-19T13:31:01.238Z","extensionVersion":"v3.4.3"}
View gist:f6ff05cf6c549be078f2e2ec6a7fbebe
<div class="popup-sub-advance" [formGroup]="subAdvanceForm">
<div class="popup-title">
Bookable Bussiness
<div class="popup-content">
In order to use <span class="text-bold">Book Bussiness</span>, you agree to pay the <span
class="text-bold">monthly</span> subscription fee of:
<div class="popup-price">
@hiepxanh
hiepxanh / example width
Created June 28, 2020 10:40
EPSON RECEIPT PRINTER XML EXAMPLE
View example width
<epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
<page>
<feed line="1"/>
<line x1="0" y1="30" x2="575" y2="30" style="thin"/>
<text>Single: Thin&#10;</text>
<feed line="1"/>
<line x1="0" y1="90" x2="575" y2="90" style="medium"/>
<text>Single: Medium&#10;</text>
<feed line="1"/>
<line x1="0" y1="150" x2="575" y2="150" style="thick"/>
View gist:25578459423f5ac40d2a3e6ef8ea2e8f
<epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
<text>Hello world &#10;</text>
<text>Hello&#10;</text>
<text>Hello&#10;</text>
<text>Hello&#10;</text>
<feed line="3"/>
<feed line="3"/>
<cut type="feed"/>
</epos-print>
@hiepxanh
hiepxanh / fix-autofill-chrome.ts
Created August 6, 2019 07:08
Fix Auto Fill Chrome with Angular 8 and Ionic 4
View fix-autofill-chrome.ts
// <ion-input (change)="fixAutoFill($event, 'password')" #passwordInput autocomplete="off" formControlName="password" type="password"></ion-input>
// <ion-input (change)="fixAutoFill($event, 'username')" #usernameInput autocomplete="off" type="text" formControlName="username"></ion-input>
fixAutoFill(event, type) {
const value = event.target.value;
if (type === 'username') {
this.loginForm.patchValue({
username: value
}, {emitEvent: true, onlySelf: false});