{"format":1,"manifest":{"name":"javascript-snippets","publisher":"vyloxi","version":"1.1.0","displayName":"JavaScript Snippets","description":"Everyday ES6+ snippets: functions, promises, modules, array methods, DOM and testing.","engines":{"ferrum":"^0.1.0"},"categories":["Snippets"],"icon":"icon.png","repository":"https://github.com/voukengdongmofrankysteve/ferrum-market","license":"MIT","contributes":{"snippets":[{"language":"JavaScript","path":"snippets/javascript.json"}]}},"files":{"icon.png":{"encoding":"base64","content":"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"},"snippets/javascript.json":{"encoding":"utf8","content":"{\n  \"Arrow function\": {\n    \"prefix\": \"af\",\n    \"body\": [\n      \"const ${1:name} = (${2:args}) => {\",\n      \"\\t$0\",\n      \"};\"\n    ],\n    \"description\": \"An arrow function\"\n  },\n  \"Async function\": {\n    \"prefix\": \"asf\",\n    \"body\": [\n      \"async function ${1:name}(${2:args}) {\",\n      \"\\t$0\",\n      \"}\"\n    ],\n    \"description\": \"An async function\"\n  },\n  \"Import\": {\n    \"prefix\": \"imp\",\n    \"body\": [\n      \"import ${1:name} from '${2:module}';\"\n    ],\n    \"description\": \"import ... from\"\n  },\n  \"Import named\": {\n    \"prefix\": \"imn\",\n    \"body\": [\n      \"import { ${1:name} } from '${2:module}';\"\n    ],\n    \"description\": \"import { } from\"\n  },\n  \"Export default\": {\n    \"prefix\": \"exd\",\n    \"body\": [\n      \"export default ${1:name};\"\n    ],\n    \"description\": \"export default\"\n  },\n  \"Console log\": {\n    \"prefix\": \"cl\",\n    \"body\": [\n      \"console.log(${1:value});\"\n    ],\n    \"description\": \"console.log\"\n  },\n  \"Console log labelled\": {\n    \"prefix\": \"cll\",\n    \"body\": [\n      \"console.log('${1:label}:', ${1:label});\"\n    ],\n    \"description\": \"console.log with a label\"\n  },\n  \"Try catch\": {\n    \"prefix\": \"tc\",\n    \"body\": [\n      \"try {\",\n      \"\\t$1\",\n      \"} catch (${2:error}) {\",\n      \"\\t$0\",\n      \"}\"\n    ],\n    \"description\": \"try / catch\"\n  },\n  \"Promise\": {\n    \"prefix\": \"prom\",\n    \"body\": [\n      \"new Promise((resolve, reject) => {\",\n      \"\\t$0\",\n      \"});\"\n    ],\n    \"description\": \"new Promise\"\n  },\n  \"Fetch JSON\": {\n    \"prefix\": \"fj\",\n    \"body\": [\n      \"const ${1:res} = await fetch(${2:url});\",\n      \"if (!${1:res}.ok) throw new Error(`HTTP \\\\${${1:res}.status}`);\",\n      \"const ${3:data} = await ${1:res}.json();\"\n    ],\n    \"description\": \"fetch and parse JSON\"\n  },\n  \"For of\": {\n    \"prefix\": \"fo\",\n    \"body\": [\n      \"for (const ${1:item} of ${2:items}) {\",\n      \"\\t$0\",\n      \"}\"\n    ],\n    \"description\": \"for...of\"\n  },\n  \"For in\": {\n    \"prefix\": \"fi\",\n    \"body\": [\n      \"for (const ${1:key} in ${2:object}) {\",\n      \"\\t$0\",\n      \"}\"\n    ],\n    \"description\": \"for...in\"\n  },\n  \"Map\": {\n    \"prefix\": \"map\",\n    \"body\": [\n      \"${1:items}.map((${2:item}) => $0)\"\n    ],\n    \"description\": \"Array.map\"\n  },\n  \"Filter\": {\n    \"prefix\": \"fil\",\n    \"body\": [\n      \"${1:items}.filter((${2:item}) => $0)\"\n    ],\n    \"description\": \"Array.filter\"\n  },\n  \"Reduce\": {\n    \"prefix\": \"red\",\n    \"body\": [\n      \"${1:items}.reduce((${2:acc}, ${3:item}) => $0, ${4:0})\"\n    ],\n    \"description\": \"Array.reduce\"\n  },\n  \"Destructure\": {\n    \"prefix\": \"ds\",\n    \"body\": [\n      \"const { ${1:a}, ${2:b} } = ${3:object};\"\n    ],\n    \"description\": \"Object destructuring\"\n  },\n  \"Class\": {\n    \"prefix\": \"cls\",\n    \"body\": [\n      \"class ${1:Name} {\",\n      \"\\tconstructor(${2:args}) {\",\n      \"\\t\\t$0\",\n      \"\\t}\",\n      \"}\"\n    ],\n    \"description\": \"A class\"\n  },\n  \"Set timeout\": {\n    \"prefix\": \"st\",\n    \"body\": [\n      \"setTimeout(() => {\",\n      \"\\t$0\",\n      \"}, ${1:1000});\"\n    ],\n    \"description\": \"setTimeout\"\n  },\n  \"Add event listener\": {\n    \"prefix\": \"ael\",\n    \"body\": [\n      \"${1:element}.addEventListener('${2:click}', (${3:e}) => {\",\n      \"\\t$0\",\n      \"});\"\n    ],\n    \"description\": \"addEventListener\"\n  },\n  \"Query selector\": {\n    \"prefix\": \"qs\",\n    \"body\": [\n      \"document.querySelector('${1:.selector}')\"\n    ],\n    \"description\": \"querySelector\"\n  },\n  \"Describe and test\": {\n    \"prefix\": \"dt\",\n    \"body\": [\n      \"describe('${1:subject}', () => {\",\n      \"\\tit('${2:works}', () => {\",\n      \"\\t\\t$0\",\n      \"\\t});\",\n      \"});\"\n    ],\n    \"description\": \"A test group\"\n  },\n  \"Expect\": {\n    \"prefix\": \"ex\",\n    \"body\": [\n      \"expect(${1:value}).${2:toBe}(${3:expected});\"\n    ],\n    \"description\": \"expect\"\n  },\n  \"IIFE\": {\n    \"prefix\": \"iife\",\n    \"body\": [\n      \"(() => {\",\n      \"\\t$0\",\n      \"})();\"\n    ],\n    \"description\": \"Immediately invoked function\"\n  },\n  \"Debounce\": {\n    \"prefix\": \"deb\",\n    \"body\": [\n      \"function debounce(fn, ms = ${1:200}) {\",\n      \"\\tlet t;\",\n      \"\\treturn (...args) => {\",\n      \"\\t\\tclearTimeout(t);\",\n      \"\\t\\tt = setTimeout(() => fn(...args), ms);\",\n      \"\\t};\",\n      \"}\"\n    ],\n    \"description\": \"A debounce helper\"\n  }\n}\n"},"README.md":{"encoding":"utf8","content":"# JavaScript Snippets\n\nEveryday ES6+ snippets: functions, promises, modules, array methods, DOM and testing.\n\nType a prefix and press Tab. 24 snippets.\n\n| Language | Prefix | What it inserts |\n| --- | --- | --- |\n| JavaScript | `af` | An arrow function |\n| JavaScript | `asf` | An async function |\n| JavaScript | `imp` | import ... from |\n| JavaScript | `imn` | import { } from |\n| JavaScript | `exd` | export default |\n| JavaScript | `cl` | console.log |\n| JavaScript | `cll` | console.log with a label |\n| JavaScript | `tc` | try / catch |\n| JavaScript | `prom` | new Promise |\n| JavaScript | `fj` | fetch and parse JSON |\n| JavaScript | `fo` | for...of |\n| JavaScript | `fi` | for...in |\n| JavaScript | `map` | Array.map |\n| JavaScript | `fil` | Array.filter |\n| JavaScript | `red` | Array.reduce |\n| JavaScript | `ds` | Object destructuring |\n| JavaScript | `cls` | A class |\n| JavaScript | `st` | setTimeout |\n| JavaScript | `ael` | addEventListener |\n| JavaScript | `qs` | querySelector |\n| JavaScript | `dt` | A test group |\n| JavaScript | `ex` | expect |\n| JavaScript | `iife` | Immediately invoked function |\n| JavaScript | `deb` | A debounce helper |\n\nThis extension runs no code and asks for no permissions.\n"}}}