@bonsai-components/meta-key
v1.2.1
Published
Make meta key less annoying
Downloads
257
Readme
Meta Key
Intro
Meta keys vary based on the platform the user is on. This package aims to make detection and actions (like printing the meta key as a string) easy.
How to install
npm i @bonsai-components/meta-key
How to use
There are 3 different variants:
metaKeyInBrowser
- handles detection in the browsermetaKeyInNodeProcess
- handles detection in nodemetaKey
- universal detection (the most code delivered but handles universal usage)
All variants work the same way, (metaKeyMap?: MetaKeyMap<T>) => T
. The keys of
MetaKeyMap
are mac
, windows
, and other
. The values of these fields can
be anything; one of the values will be returned depending on the platform
detection.
type VoidFunction = () => void;
const alertMetaKeyMap: MetaKeyMap<VoidFunction> = {
mac: () => console.log('mac'),
windows: () => console.log('windows'),
other: () => console.log('other'),
};
const alertConsole: VoidFunction = metaKey<VoidFunction>(alertMetaKeyMap);
alertConsole();
If no MetaKeyMap
is provided, the default maps to a string representing meta key symbol:
const metaKeyMapDefault: MetaKeyMap<string> = {
mac: '⌘',
windows: '⊞',
other: '◆',
};
const metaKeyAsString: string = metaKey();
Additionally, if you pass a partial of the MetaKeyMap
the missing keys will be
filled in with the default. This is handy when wanting to override one string:
const metaKeyAsString: string = metaKey({ windows: 'ctrl +' });
Browser
import { metaKeyInBrowser } from '@bonsai-components/meta-key';
Node Process
import { metaKeyInNodeProcess } from '@bonsai-components/meta-key';
Universal
import { metaKey } from '@bonsai-components/meta-key';