diff --git a/README.md b/README.md
index e160fda..95d9886 100644
--- a/README.md
+++ b/README.md
@@ -354,397 +354,3239 @@ Will be sorted into appropriate categories in the future.
# ensure Deno is installed
# https://deno.land/manual@v1.29.1/getting_started/installation
-# generate .code-snippets
+# generate .code-snippets and documentation
npm run generate
```
---
-## 🚧 Experimenting with formatting
+
+## Snippets
+
+
+### Assignments
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`c`
+
+ |
+const |
+
+
+ ```javascript
+const $0
+ ```
+
+ |
+
+
+
+
+
+`l`
+
+ |
+let |
+
+
+ ```javascript
+let $0
+ ```
+
+ |
+
+
+
+
+
+`ca`
+
+ |
+const assignment |
+
+
+ ```javascript
+const $1 = $0
+ ```
+
+ |
+
+
+
+
+
+`la`
+
+ |
+let assignment |
+
+
+ ```javascript
+let $1 = $0
+ ```
+
+ |
+
+
+
+
+
+`cas`
+
+ |
+const string assignment |
+
+
+ ```javascript
+const $1 = '$0'
+ ```
+
+ |
+
+
+
+
+
+`car`
+
+ |
+const array assignment |
+
+
+ ```javascript
+const $1 = [$0]
+ ```
+
+ |
+
+
+
+
+
+`cao`
+
+ |
+const object assignment |
+
+
+ ```javascript
+const $1 = { $0 }
+ ```
+
+ |
+
+
+
+
+
+`dob`
+
+ |
+object destructuring |
+
+
+ ```javascript
+const { $0 } = ${1:object}
+ ```
+
+ |
+
+
+
+
+
+`dar`
+
+ |
+array destructuring |
+
+
+ ```javascript
+const [$0] = ${1:array}
+ ```
+
+ |
+
+
+
+### Flow control
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`if`
+
+ |
+if statement |
+
+
+ ```javascript
+if ($1) {
+ $2
+}
+ ```
+
+ |
+
+
+
+
+
+`ifel`
+
+ |
+if/else statement |
+
+
+ ```javascript
+if ($1) {
+ $2
+} else {
+ $3
+}
+ ```
+
+ |
+
+
+
+
+
+`ifei`
+
+ |
+if/else-if statement |
+
+
+ ```javascript
+if ($1) {
+ $2
+} else if ($3) {
+ $4
+}
+ ```
+
+ |
+
+
+
+
+
+`el`
+
+ |
+else statement |
+
+
+ ```javascript
+else {
+ $3
+}
+ ```
+
+ |
+
+
+
+
+
+`ei`
+
+ |
+else if statement |
+
+
+ ```javascript
+else if ($1) {
+ $2
+}
+ ```
+
+ |
+
+
+
+
+
+`ter`
+
+ |
+ternary operator |
+
+
+ ```javascript
+$1 ? $2 : $3
+ ```
+
+ |
+
+
+
+
+
+`tera`
+
+ |
+ternary expression assignment |
+
+
+ ```javascript
+const ${1:name} = $2 ? $3 : $4
+ ```
+
+ |
+
+
+
+
+
+`sw`
+
+ |
+switch |
+
+
+ ```javascript
+switch ($1) {
+ case $2 : $3
+ default: $0
+}
+ ```
+
+ |
+
+
+
+
+
+`cas`
+
+ |
+case |
+
+
+ ```javascript
+case ${1:value}:
+ $0
+ break;
+ ```
+
+ |
+
+
+
+
+
+`tc`
+
+ |
+try/catch |
+
+
+ ```javascript
+try {
+ $1
+} catch (error) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`tcf`
+
+ |
+try/catch/finally |
+
+
+ ```javascript
+try {
+ $1
+} catch (error) {
+ $2
+} finally {
+ $3
+}
+ ```
+
+ |
+
+
+
+
+
+`tf`
+
+ |
+try/finally |
+
+
+ ```javascript
+try {
+ $1
+} finally {
+ $2
+}
+ ```
+
+ |
+
+
+
+### Functions
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`fn`
+
+ |
+function |
+
+
+ ```javascript
+function ${1:name}($2) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`fna`
+
+ |
+async function |
+
+
+ ```javascript
+async function ${1:name}($2) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`nfn`
+
+ |
+named arrow function |
+
+
+ ```javascript
+const ${1:name} = ($2) => {$0}
+ ```
+
+ |
+
+
+
+
+
+`nfna`
+
+ |
+async named arrow function |
+
+
+ ```javascript
+const ${1:name} = async ($2) => {$0}
+ ```
+
+ |
+
+
+
+
+
+`af`
+
+ |
+arrow function |
+
+
+ ```javascript
+($1) => $0
+ ```
+
+ |
+
+
+
+
+
+`afa`
+
+ |
+async arrow function |
+
+
+ ```javascript
+async ($1) => $0
+ ```
+
+ |
+
+
+
+
+
+`afb`
+
+ |
+arrow function with body |
+
+
+ ```javascript
+($1) => {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`afba`
+
+ |
+async arrow function with body |
+
+
+ ```javascript
+async ($1) => {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`efn`
+
+ |
+export function |
+
+
+ ```javascript
+export function ${1:name}($2) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`edfn`
+
+ |
+export default function |
+
+
+ ```javascript
+export default function ${1:name}($2) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`enfn`
+
+ |
+export named arrow function |
+
+
+ ```javascript
+export const ${1:name} = ($2) => {$0}
+ ```
+
+ |
+
+
+
+
+
+`iife`
+
+ |
+immediately-invoked function expression |
+
+
+ ```javascript
+((${1:arguments}) => {
+ $0
+})($2)
+ ```
+
+ |
+
+
+
+### Loops
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`fl`
+
+ |
+for loop |
+
+
+ ```javascript
+for (let ${1:i} = 0, ${2:len} = ${3:iterable}.length; ${1:i} < ${2:len}; ${1:i}++) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`rfl`
+
+ |
+reverse for loop |
+
+
+ ```javascript
+for (let ${1:i} = ${2:iterable}.length - 1; ${1:i} >= 0; ${1:i}--) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`flr`
+
+ |
+for loop (range) |
+
+
+ ```javascript
+for (let ${1:i} = 0; ${1:i} < ${2:5}; ${1:i}++) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`fin`
+
+ |
+for...in loop |
+
+
+ ```javascript
+for (let ${1:key} in ${2:array}) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`fof`
+
+ |
+for...of loop |
+
+
+ ```javascript
+for (let ${1:item} of ${2:items}) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`fofa`
+
+ |
+for await...of loop |
+
+
+ ```javascript
+for await (let ${1:item} of ${2:items}) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`wl`
+
+ |
+while loop |
+
+
+ ```javascript
+while (${1:true}) {
+ $0
+}
+ ```
+
+ |
+
+
+
+### Classes
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`cs`
+
+ |
+class |
+
+
+ ```javascript
+class $1 {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`cse`
+
+ |
+class extends |
+
+
+ ```javascript
+class $1 extends ${2:Base} {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`csc`
+
+ |
+class with constructor |
+
+
+ ```javascript
+class $1 {
+ constructor($2) {
+ $0
+ }
+}
+ ```
+
+ |
+
+
+
+
+
+`csec`
+
+ |
+class extends with constructor |
+
+
+ ```javascript
+class $1 extends ${2:Base} {
+ constructor($3) {
+ $0
+ }
+}
+ ```
+
+ |
+
+
+
+
+
+`ctor`
+
+ |
+class constructor |
+
+
+ ```javascript
+constructor($1) {$0}
+ ```
+
+ |
+
+
+
+
+
+`get`
+
+ |
+getter |
+
+
+ ```javascript
+get ${1:property}() {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`set`
+
+ |
+setter |
+
+
+ ```javascript
+set ${1:property}(${2:value}) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`gs`
+
+ |
+getter and setter |
+
+
+ ```javascript
+get ${1:property}() {
+ $0
+}
+set ${1:property}(${2:value}) {
+
+}
+ ```
+
+ |
+
+
+
+
+
+`met`
+
+ |
+method |
+
+
+ ```javascript
+${1:name}($2) {
+ $0
+}
+ ```
+
+ |
+
+
+
+
+
+`meta`
+
+ |
+async method |
+
+
+ ```javascript
+async ${1:name}($2) {
+ $0
+}
+ ```
+
+ |
+
+
+
+### Promises
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`fet`
+
+ |
+fetch |
+
+
+ ```javascript
+fetch('$1').then(res => res.json())
+ ```
+
+ |
+
+
+
+
+
+`feta`
+
+ |
+fetch assignment |
+
+
+ ```javascript
+const ${2|data,{ data }|} = await fetch('$1').then(res => res.json())
+ ```
+
+ |
+
+
+
+
+
+`pr`
+
+ |
+promise |
+
+
+ ```javascript
+new Promise((resolve, reject) => {
+ $0
+})
+ ```
+
+ |
+
+
+
+
+
+`prs`
+
+ |
+Promise.resolve |
+
+
+ ```javascript
+Promise.resolve($1)
+ ```
+
+ |
+
+
+
+
+
+`prj`
+
+ |
+Promise.reject |
+
+
+ ```javascript
+Promise.reject($1)
+ ```
+
+ |
+
+
+
+
+
+`then`
+
+ |
+promise .then |
+
+
+ ```javascript
+$1.then((${2:value}) => $0)
+ ```
+
+ |
+
+
+
+
+
+`catch`
+
+ |
+promise .catch |
+
+
+ ```javascript
+$1.catch((${2:err}) => $0)
+ ```
+
+ |
+
+
+
+
+
+`thenc`
+
+ |
+promise .then.catch |
+
+
+ ```javascript
+$1.then((${2:value}) => $3).catch((${4:err}) => $5)
+ ```
+
+ |
+
+
+
+
+
+`pra`
+
+ |
+Promise.all |
+
+
+ ```javascript
+Promise.all($1)
+ ```
+
+ |
+
+
+
+
+
+`prsa`
+
+ |
+Promise.allSettled |
+
+
+ ```javascript
+Promise.allSettled($1)
+ ```
+
+ |
+
+
+
+
+
+`pran`
+
+ |
+Promise.any |
+
+
+ ```javascript
+Promise.any($1)
+ ```
+
+ |
+
+
+
+### Modules
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`im`
+
+ |
+import from module |
+
+
+ ```javascript
+import { $2 } from '$1'
+ ```
+
+ |
+
+
+
+
+
+`imf`
+
+ |
+import file |
+
+
+ ```javascript
+import '$1'
+ ```
+
+ |
+
+
+
+
+
+`imp`
+
+ |
+import dynamic |
+
+
+ ```javascript
+import($0)
+ ```
+
+ |
+
+
+
+
+
+`imd`
+
+ |
+import default |
+
+
+ ```javascript
+import $2 from '$1'$3;
+ ```
+
+ |
+
+
+
+
+
+`ima`
+
+ |
+import as |
+
+
+ ```javascript
+import ${2:*} as {3:name} from '$1'
+ ```
+
+ |
+
+
+
+
+
+`ime`
+
+ |
+import meta env |
+
+
+ ```javascript
+import.meta.env.$0
+ ```
+
+ |
+
+
+
+
+
+`ex`
+
+ |
+export |
+
+
+ ```javascript
+export $0
+ ```
+
+ |
+
+
+
+
+
+`exd`
+
+ |
+export default |
+
+
+ ```javascript
+export default $0
+ ```
+
+ |
+
+
+
+
+
+`exf`
+
+ |
+export from |
+
+
+ ```javascript
+export { $2 } from '$1'
+ ```
+
+ |
+
+
+
+
+
+`exa`
+
+ |
+export all from |
+
+
+ ```javascript
+export * from '$1'
+ ```
+
+ |
+
+
+
+
+
+`exo`
+
+ |
+export object |
+
+
+ ```javascript
+export const ${1:name} = { $0 }
+ ```
+
+ |
+
+
+
+### Array methods
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`fe`
+
+ |
+Array.forEach() |
+
+
+ ```javascript
+$1.forEach((${2:item}) => {
+ $0
+})
+ ```
+
+ |
+
+
+
+
+
+`map`
+
+ |
+Array.map() |
+
+
+ ```javascript
+$1.map((${2:item}) => ${3})
+ ```
+
+ |
+
+
+
+
+
+`reduce`
+
+ |
+Array.reduce() |
+
+
+ ```javascript
+$1.reduce((${2:acc}, ${3:curr}) => {
+ $0
+}, ${4:initial})
+ ```
+
+ |
+
+
+
+
+
+`reduce-right`
+
+ |
+Array.reduceRight() |
+
+
+ ```javascript
+$1.reduceRight((${2:acc}, ${3:curr}) => {
+ $0
+}, ${4:initial})
+ ```
+
+ |
+
+
+
+
+
+`filter`
+
+ |
+Array.filter() |
+
+
+ ```javascript
+$1.filter((${2:item}) => ${3})
+ ```
+
+ |
+
+
+
+
+
+`find`
+
+ |
+Array.find() |
+
+
+ ```javascript
+$1.find((${2:item}) => ${3})
+ ```
+
+ |
+
+
+
+
+
+`every`
+
+ |
+Array.every() |
+
+
+ ```javascript
+$1.every((${2:item}) => ${3})
+ ```
+
+ |
+
+
+
+
+
+`some`
+
+ |
+Array.some() |
+
+
+ ```javascript
+$1.some((${2:item}) => ${3})
+ ```
+
+ |
+
+
+
+
+
+`reverse`
+
+ |
+Array.reverse() |
+
+
+ ```javascript
+$1.reverse()
+ ```
+
+ |
+
+
+
+
+
+`map-string`
+
+ |
+Array.map() as string |
+
+
+ ```javascript
+$1.map(String)
+ ```
+
+ |
+
+
+
+
+
+`map-number`
+
+ |
+Array.map() as number |
+
+
+ ```javascript
+$1.map(Number)
+ ```
+
+ |
+
+
+
+
+
+`filter-true`
+
+ |
+Array.filter() truthy |
+
+
+ ```javascript
+$1.filter(Boolean)
+ ```
+
+ |
+
+
+
+### Objects
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`or`
+
+ |
+OR (||) |
+
+
+ ```javascript
+|| $0
+ ```
+
+ |
+
+
+
+
+
+`and`
+
+ |
+AND (&&) |
+
+
+ ```javascript
+&& $0
+ ```
+
+ |
+
+
+
+
+
+`nc`
+
+ |
+nullish coalescing (??) |
+
+
+ ```javascript
+?? $0
+ ```
+
+ |
+
+
+
+
+
+`eq`
+
+ |
+strict equality (===) |
+
+
+ ```javascript
+=== $0
+ ```
+
+ |
+
+
+
+
+
+`ore`
+
+ |
+logical OR expression |
+
+
+ ```javascript
+${1:value} || ${0:value}
+ ```
+
+ |
+
+
+
+
+
+`ande`
+
+ |
+logical AND expression |
+
+
+ ```javascript
+${1:value} && ${0:value}
+ ```
+
+ |
+
+
+
+
+
+`nce`
+
+ |
+nullish coalescing expression (??) |
+
+
+ ```javascript
+${1:item} ?? ${0:default}
+ ```
+
+ |
+
+
+
+
+
+`eqe`
+
+ |
+strict equality expression |
+
+
+ ```javascript
+${1:value} === ${2:value}
+ ```
+
+ |
+
+
+
+
+
+`ora`
+
+ |
+logical OR assignment (||=) |
+
+
+ ```javascript
+${1:name} ||= ${0:default}
+ ```
+
+ |
+
+
+
+
+
+`nca`
+
+ |
+nullish coalescing assignment (??=) |
+
+
+ ```javascript
+${1:name} ??= ${0:default}
+ ```
+
+ |
+
+
+
+
+
+`inc`
+
+ |
+addition assignment |
+
+
+ ```javascript
+$1 += ${0:1}
+ ```
+
+ |
+
+
+
+
+
+`sub`
+
+ |
+subtraction assignment |
+
+
+ ```javascript
+$1 -= ${0:1}
+ ```
+
+ |
+
+
+
+
+
+`mul`
+
+ |
+multiplication assignment |
+
+
+ ```javascript
+$1 *= ${0:1}
+ ```
+
+ |
+
+
+
+
+
+`div`
+
+ |
+division assignment |
+
+
+ ```javascript
+$1 /= ${0:1}
+ ```
+
+ |
+
+
+
+
+
+`ol`
+
+ |
+object literal |
+
+
+ ```javascript
+{ $1: $0 }
+ ```
+
+ |
+
+
+
+
+
+`al`
+
+ |
+array literal |
+
+
+ ```javascript
+[$0]
+ ```
+
+ |
+
+
+
+
+
+`tl`
+
+ |
+template literal |
+
+
+ ```javascript
+`$0`
+ ```
+
+ |
+
+
+
+
+
+`tlo`
+
+ |
+template literal operation |
+
+
+ ```javascript
+${$1}$0
+ ```
+
+ |
+
+
+
+
+
+`tle`
+
+ |
+template literal expression |
+
+
+ ```javascript
+`$1${$2}$3`
+ ```
+
+ |
+
+
+
+### Console
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`cl`
+
+ |
+console.log |
+
+
+ ```javascript
+console.log($0)
+ ```
+
+ |
+
+
+
+
+
+`ci`
+
+ |
+console.info |
+
+
+ ```javascript
+console.info($1)
+ ```
+
+ |
+
+
+
+
+
+`cdi`
+
+ |
+console.dir |
+
+
+ ```javascript
+console.dir($1)
+ ```
+
+ |
+
+
+
+
+
+`ce`
+
+ |
+console.error |
+
+
+ ```javascript
+console.error($1)
+ ```
+
+ |
+
+
+
+
+
+`cw`
+
+ |
+console.warn |
+
+
+ ```javascript
+console.warn($1)
+ ```
+
+ |
+
+
+
+
+
+`ct`
+
+ |
+console.time |
+
+
+ ```javascript
+console.time('$1')
+$0
+console.timeEnd('$1')
+ ```
+
+ |
+
+
+
+
+
+`ctb`
+
+ |
+console.table |
+
+
+ ```javascript
+console.table($1)
+ ```
+
+ |
+
+
+
+
+
+`clr`
+
+ |
+console.clear |
+
+
+ ```javascript
+console.clear()
+ ```
+
+ |
+
+
+
+
+
+`clm`
+
+ |
+console.log message |
+
+
+ ```javascript
+console.log('$0')
+ ```
+
+ |
+
+
+
+
+
+`clo`
+
+ |
+console.log object |
+
+
+ ```javascript
+console.log({ $0 })
+ ```
+
+ |
+
+
+
+
+
+`clc`
+
+ |
+console.log clipboard |
+
+
+ ```javascript
+console.log({ $CLIPBOARD })
+ ```
+
+ |
+
+
+
+
+
+`cll`
+
+ |
+console.log (labeled) |
+
+
+ ```javascript
+console.log('$1 ->', $1$2)
+ ```
+
+ |
+
+
+
+
+
+`cel`
+
+ |
+console.error (labeled) |
+
+
+ ```javascript
+console.error('$1 ->', $1$2)
+ ```
+
+ |
+
+
+
+
+
+`cwl`
+
+ |
+console.warn (labeled) |
+
+
+ ```javascript
+console.warn('$1 ->', ${2:$1})
+ ```
+
+ |
+
+
+
+### Timers
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`qs`
+
+ |
+query selector |
+
+
+ ```javascript
+${1:document}.querySelector('$2')
+ ```
+
+ |
+
+
+
+
+
+`qsa`
+
+ |
+query selector all |
+
+
+ ```javascript
+${1:document}.querySelectorAll('$2')
+ ```
+
+ |
+
+
+
+
+
+`qsaa`
+
+ |
+query selector all as array |
+
+
+ ```javascript
+[...${1:document}.querySelectorAll('$2')]
+ ```
+
+ |
+
+
+
+
+
+`ael`
+
+ |
+event listener |
+
+
+ ```javascript
+${1:document}.addEventListener('${2:click}', (e$3) => $0)
+ ```
+
+ |
+
+
+
+
+
+`qsae`
+
+ |
+query selector with event listener |
+
+
+ ```javascript
+${1:document}.querySelector('$2')?.addEventListener('${3:click}', (e$4) => $0)
+ ```
+
+ |
+
+
+
+
+
+`gid`
+
+ |
+get element by id |
+
+
+ ```javascript
+${1:document}.getElementById('$2')
+ ```
+
+ |
+
+
+
+
+
+`on`
+
+ |
+event handler |
+
+
+ ```javascript
+${1:emitter}.on('${2:event}', (${3:arguments}) => {
+ $0
+})
+ ```
+
+ |
+
+
+
+### Dates
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`desc`
+
+ |
+describe |
+
+
+ ```javascript
+describe('${1:description}', () => {
+ $0
+})
+ ```
+
+ |
+
+
+
+
+
+`cont`
+
+ |
+context |
+
+
+ ```javascript
+context('${1:description}', () => {
+ $0
+})
+ ```
+
+ |
+
+
+
+
+
+`it`
+
+ |
+test (synchronous) |
+
+
+ ```javascript
+it('${1:description}', () => {
+ $0
+})
+ ```
+
+ |
+
+
- Prefix | Description | Body |
+
+
+`ita`
+
+ |
+test (asynchronous) |
+
+
+ ```javascript
+it('${1:description}', async () => {
+ $0
+})
+ ```
+
+ |
+
+
+
+`itc`
+
+ |
+test (callback) |
+
+
+ ```javascript
+it('${1:description}', (done) => {
+ $0
+ done()
+})
+ ```
+
+ |
+
-
+ |
- `c`
+`bf`
- |
-
- const
- |
-
+ |
+before test suite |
+
```javascript
- const $0
+before(() => {
+ $0
+})
```
- |
+
-
+ |
- `l`
+`bfe`
- |
- let |
-
+ |
+before each test |
+
```javascript
- let $0
+beforeEach(() => {
+ $0
+})
```
- |
+
-
+ |
- `ca`
+`aft`
- |
- const assignment |
-
+ |
+after test suite |
+
```javascript
- const $1 = $0
+after(() => {
+ $0
+})
```
- |
+
-
+ |
- `la`
+`afe`
- |
- let assignment |
-
+ |
+after each test |
+
```javascript
- let $1 = $0
+afterEach(() => {
+ $0
+})
```
- |
+
+
+
+
+### Types
+
+
+
+
+Prefix |
+Name |
+Body |
-
+ |
- `cas`
+`aia`
- |
- const string assignment |
-
+ |
+is array |
+
```javascript
- const $1 = '$0'
+Array.isArray($0)
```
- |
+
+
+
+
+`tof`
+
+ |
+typeof |
+
+
+ ```javascript
+typeof ${1:value} === '${2|bigint,boolean,function,number,object,symbol,undefined|}'
+ ```
+
+ |
+
-
+ |
- `car`
+`iof`
- |
- const array assignment |
-
+ |
+instanceof |
+
```javascript
- const $1 = [$0]
+${1:object} instanceof ${0:Class}
```
- |
+
-
+ |
- `cao`
+`isnil`
- |
- const object assignment |
-
+ |
+is nil |
+
```javascript
- const $1 = { $0 }
+${1:value} == null
```
- |
+
-
+ |
- `dob`
+`nnil`
- |
- object destructuring |
-
+ |
+is not nil |
+
```javascript
- const { $0 } = ${1:object}
+${1:value} != null
```
- |
+
-
+ |
- `dar`
+`isnan`
- |
- array destructuring |
-
+ |
+is NaN |
+
```javascript
- const [$0] = ${1:array}
+isNan($0)
```
- |
+
+
+
+
+`nnan`
+ |
+is not NaN |
+
+
+ ```javascript
+!isNan($0)
+ ```
+
+ |
+
+### Misc
+
+
+
+
+Prefix |
+Name |
+Body |
+
+
+
+
+
+`uniq`
+
+ |
+array of unique values |
+
+
+ ```javascript
+[...new Set(${0:array})]
+ ```
+
+ |
+
+
- Prefix | Description | Body |
+
+
+`pi`
+
+ |
+parse int |
+
+
+ ```javascript
+parseInt(${1:value}, ${2|10,2,8,16|})
+ ```
+
+ |
+
+
+
+
+
+`pf`
+
+ |
+parse float |
+
+
+ ```javascript
+parseFloat(${1:value})
+ ```
+
+ |
+
+
+
+`am`
+
+ |
+array merge |
+
+
+ ```javascript
+[...${1:arr}$2]
+ ```
+
+ |
+
-
+ |
- `if`
+`om`
- |
-
- if statement
- |
-
+ |
+object merge |
+
```javascript
- if ($1) {
- $2
- }
+{ ...${1:object}$2 }
```
- |
+
-
+ |
- `ifel`
+`aat`
- |
- if/else statement |
-
+ |
+array.at |
+
```javascript
- if ($1) {
- $2
- } else {
- $3
- }
+${1:items}.at(${2:0})
```
- |
+
-
+ |
- `ifei`
+`seq`
- |
- if/else-if statement |
-
+ |
+sequence of 0..n |
+
```javascript
- if ($1) {
- $2
- } else if ($3) {
- $4
- }
+[...Array(${1:length}).keys()]
```
- |
+
+
+
+
+
+## TypeScript specific
+Only applied to .ts and .tsx files
+
+### Declarations
+
+