Skip to content

Instantly share code, notes, and snippets.

@tricki
tricki / StencilAsync.ts
Last active August 1, 2022 19:46
Stencil Async Helper (Promise + RXJS/Observables)
import { ComponentInterface, forceUpdate, getRenderingRef } from '@stencil/core';
import type { Observable, Subscription } from 'rxjs';
import { ComponentRegistration, ObservableRegistration } from "./types";
export function async<T>(obj: Observable<T> | Promise<T>): T | undefined {
return getAsyncValue(obj);
}
export interface ComponentRegistration<T = any> {
promises: PromiseMap;
@ciaranmcnulty
ciaranmcnulty / notes.md
Last active March 25, 2024 06:36
Notes on using Docker on ARM Macs (November 2021)

Docker for Mac

On M1 machines, Docker for Mac is running a lightweight linux ARM VM, then running containers within that, so containers are essentially running natively. Don't be fooled by the fact the UI or binary CLI tools (e.g. docker) might require Rosetta.

Within that VM is an emulation layer called QEmu. This can be used by docker to run Intel containers. This does not use Rosetta at all, and has a roughly 5-6X performance penalty. (If you just upgraded your CPU this may result in a similar performance to your old machine!)

Pulling and running with Docker

Many images in public registries are multi-architecture. For instance at the time of writing on Docker Hub the php:8.0-cli image has the following digests:

@sindresorhus
sindresorhus / esm-package.md
Last active May 6, 2024 13:26
Pure ESM package

Pure ESM package

The package that linked you here is now pure ESM. It cannot be require()'d from CommonJS.

This means you have the following choices:

  1. Use ESM yourself. (preferred)
    Use import foo from 'foo' instead of const foo = require('foo') to import the package. You also need to put "type": "module" in your package.json and more. Follow the below guide.
  2. If the package is used in an async context, you could use await import(…) from CommonJS instead of require(…).
  3. Stay on the existing version of the package until you can move to ESM.