{
    "register": {
        "prefix": "register",
        "scope": "javascript,javascriptreact,typescript",
        "body": [
            "register"
        ]
    },
    "enablePush": {
        "prefix": "enablePush",
        "scope": "javascript,javascriptreact,typescript",
        "body": [
            "enablePush"
        ]
    },
    "Service Worker Add Event Listener": {
        "prefix": "addEventListener",
        "scope": "javascript,javascriptreact,typescript",
        "body": [
            "/**",
            "* Listen for incoming Push events",
            "*/",
            "addEventListener('push', (event) => {",
                "\tvar data = {};",
                "\tconsole.log(${1:'[Service Worker] Push Received.'});",
                "\tconsole.log(${2:`[Service Worker] Push had this data:} \"${event.data.text()}\"`);\n",
                "\tif (!(self.Notification && self.Notification.permission === 'granted'))",
                "\t\treturn;\n",
                "\tif (event.data)",
                "\t\tdata = event.data.json();\n",
                "\t// Customize the UI for the message box",
                "\tvar title = data.title || ${3:\"Web Push Notification\"};",
                "\tvar message = data.message || ${4:\"New Push Notification Received\"};",
                "\tvar icon = ${5:\"images/notification-icon.png\"};",
                "\tvar badge = ${6:'images/notification-badge.png'};",
                "\tvar options = {",
                    "\t\tbody: message,",
                    "\t\ticon: icon,",
                    "\t\tbadge: badge",
                "\t};\n",
                "\tevent.waitUntil(self.registration.showNotification(title,options));\n",
            "});"
        ]
    }
}