Skip to content

Instantly share code, notes, and snippets.

@waelio
waelio / magic-maker.js
Created March 24, 2021 22:44
Generate REST Vue - Vuex model
const { snakeToCamel, camelToSnake } = require ("waelio-utils");
function regModule (mod ) {
if(!mod) return null
const modelName = mod.name
const UPPER = modelName.toUpperCase()
const SNAKE = camelToSnake(modelName)
const UPPER_SNAKE = SNAKE.toUpperCase()
const CAMEL = modelName.charAt(0).toUpperCase() + modelName.slice(1)
const isNameSpaced = mod.namespaced || false
try {
@waelio
waelio / images.class.js
Created June 1, 2021 20:30
Get Image content from aws s3 bucket. **very expensive: cpu/ram/response time**
/* eslint-disable no-unused-vars */
const AWS = require('aws-sdk');
const client = new AWS.S3({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
apiVersion: '2006-03-01',
});
exports.Images = class Images {
constructor(options, app) {
this.options = options || {};
@waelio
waelio / pwa.ts
Created June 20, 2021 17:00
Push Notifications
/* eslint-disable import/no-duplicates */
/* eslint-disable no-console */
const publicVapidKey = import.meta.env.VITE_VID_PUBLIC
const isClient = (): boolean => Boolean(typeof window !== 'undefined' && 'serviceWorker' in navigator)
const unSubscribe = async() => {
if (isClient) {
const reg = await navigator.serviceWorker.register('worker.js', { scope: '/' })
const subscription = await reg.pushManager.getSubscription()