Clone your fork :
git clone [email protected]:YOU/FORK
# https://www.freedesktop.org/software/systemd/man/systemd.unit.html | |
[Unit] | |
Description=My App | |
After=network.target | |
# https://www.freedesktop.org/software/systemd/man/systemd.exec.html | |
[Service] | |
Type=simple | |
# https://www.freedesktop.org/software/systemd/man/systemd.exec.html#WorkingDirectory= | |
WorkingDirectory=-/srv/app/ |
// Make sure you have json-summary as a coverage reporter in your jest config. | |
// coverageReporters: ['json-summary', 'text', 'lcov'] | |
import { readFileSync, mkdirSync, writeFileSync } from 'fs' | |
import { join } from 'path' | |
import { get } from 'https' | |
import { ok } from 'assert' | |
Promise.resolve().then(async () => { | |
const outputDir = join(process.cwd(), 'badges') |
/** | |
* Gives a class constructor the possibility to be invoked | |
* with or without the `new` keyword, like built-in constructors. | |
* | |
* @param class_ class whose constructor will be proxified. | |
* @param constructorName if we need an accurate `constructor.name` property. | |
*/ | |
export function makeNewOptional<C extends new (...args: any[]) => any>(class_: C, constructorName?: string) { | |
type NoNew<T extends C> = (...args: ConstructorParameters<T>) => InstanceType<T> |
import * as path from 'path' | |
import ts from 'typescript' | |
function build( | |
override: { | |
compilerOptions?: ts.CompilerOptions | |
include?: string[] | |
exclude?: string[] | |
files?: string[] | |
extends?: string |
{ | |
"$id": "https://lerna.js.org/", | |
"type": "object", | |
"properties": { | |
"version": { | |
"$id": "/properties/version", | |
"type": "string", | |
"description": "The current version of the repository.", | |
"examples": [ | |
"1.1.3" |
Clone your fork :
git clone [email protected]:YOU/FORK
/** | |
* Clamp number between min and max | |
*/ | |
@function clamp($value, $min, $max) { | |
@return if($value > $max, $max, if($value < $min, $min, $value)); | |
} | |
/** | |
* Get a list from all possible abbreviations of a string | |
* Ex : abbr(yolo) => (y, yo, yol, yolo) |
// pipe's operator function maps an Observable<T> to an Observable<R> | |
// lift's operator function maps an Observer<R> to an Observer<T> | |
// | |
// This is just another way to represent the idea of either: | |
// building an Observable chain down from the source to the sink | |
// or building an Observer chain up from the sink to the source | |
// | |
// Pipe Implementation | |
// |
// High availability apps require that no distinction be made between local and remote services. | |
// Attached resources should be accessed by environment variables, | |
// and in doing so allow you to swap out one attached resource for another. | |
// Let's setup a reverse proxy that directs image path requests and routes them through a defined server URL. | |
// By doing so, we decouple server requests for images which allows for easy switching | |
// from locally served image assets to a CDN by simply updating an environment variable. | |
import * as express from 'express' | |
import * as proxy from 'express-http-proxy' |
/** | |
* Defines a getter on a specified object that will be created upon first use. | |
* | |
* https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/XPCOMUtils.jsm#defineLazyGetter() | |
* https://dxr.mozilla.org/mozilla-central/source/js/xpconnect/loader/XPCOMUtils.jsm#120 | |
*/ | |
function defineMemoizedGetter(object: any, prop: string, fn: Function) { | |
let redefining = false | |
Object.defineProperty(object, prop, { |