This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Load fonts | |
| // | |
| // The technique is a combination of using fontfaceobserver and storing data-uri | |
| // encoded fonts in the localstorage for perfect font loading experience. | |
| // | |
| // FontFaceObserver eliminates any visible flicker (FOIT) during the initial load, | |
| // by simply swtiching from fallback to primary typeface when fonts are loaded. | |
| // Permanently caching fonts as a CSS file in localstorage completely eliminates FOUT on subsequent visits. | |
| // | |
| // https://www.smashingmagazine.com/2014/09/improving-smashing-magazine-performance-case-study/#webfonts |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import winston, { format, createLogger, transports } from 'winston'; | |
| import DailyRotateFile from 'winston-daily-rotate-file'; | |
| const { combine, timestamp, label, printf } = format; | |
| const formatConsoleMessage = printf((info) => { | |
| const { timestamp, label, level, message } = info; | |
| return `${timestamp} ${(level + ':').padEnd(16)} [${label}] ${message}`; | |
| }); | |
| const logger = createLogger({ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 0485537b4407d79d0994a030a206b52de9a29573b0425a674c5488cb445c7a99772da978f4d8925a61fb48958460d484b165b0f38d46487b1495a064731502d7e9;BeauAgst |