@garbarino/gb-jscommons
Version:
A package of common functions used in our JavaScript applications.
81 lines (58 loc) • 2 kB
Markdown
# gb-jscommons
Módulos comunes a ser usados en las aplicaciones JS / NODE.
## Instalación
`npm install @garbarino/gb-jscommons --save`
## Uso
### ES6 modules
Import and be happy
#### Push notifications
```js
import {isCompatible, subscribeUserToPush, sendSubscriptionToBackEnd} from '@garbarino/gb-jscommons/dist/push-notifications';
```
```js
if (isCompatible()) {
subscribeUserToPush().then(
(subscription) => {
sendSubscriptionToBackEnd(subscription);
}
);
}
```
### ES5 👴🏻
Linkear los archivos de `/dist/es5`
- `common.js`
- Cada una de las librerías que se quiera usar. Ej: `push-notifications.js`
Usar la variable global `gbJsCommons`.
#### Push notifications
```js
gbJsCommons["push-notifications"].subscribeUserToPush()
.then(function(subscription) {
gbJsCommons["push-notifications"].sendSubscriptionToBackEnd(subscription)
.then(function(response) {
// handle success
});
})
.catch(function(error){
// handle error
});
```
## Módulos
### Push notifications
#### isCompatible
Devuelve `true` si el dispositivo tiene soporte. `false` si no.
#### canAskForPermission
Devuelve `true` si el dispositivo tiene soporte y el usuario no denegó el permiso.
#### subscribeUserToPush
Chequea que el dispositivo sea compatible y devuelve una promesa que resuelve con la [pushSubscription](https://developer.mozilla.org/es/docs/Web/API/PushSubscription)
#### getSubscription
Devuelve una promesa que resuelve con la suscripción a las push o `null` si no está suscripto.
Útil para no volver a ofrecer la suscripción si ya está registrado.
#### sendSubscriptionToBackEnd
Recibe la subscription del paso anterior y la envía al servidor. Otra promesa que resuelve o dispara un error según el resultado de la pegada.
## Cómo publicar una nueva versión
1. Login en npm (cuenta con acceso a la organización).
1. `npm run build-prod`.
1. Pushear cambios.
1. `npm version <major|minor|patch>`.
1. Pushear update de versión.
1. `npm publish`.