npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@500historias/sarlib

v2.0.4

Published

library for connecting an application to the SAR

Downloads

108

Readme

SAR Lib - Libreria para manejar todas las peticiones a la API del SAR

Esta es una librería para manejar peticiones a la API del SAR. Esta clase se puede utilizar para obtener información del usuario y para terminar un reto.

Demo

Puedes ver un demo de un juego usando la librería aquí.

Requisitos

Esta librería tiene las siguientes dependencias:

  • Toastify-js

Uso

Importar la librería

Para utilizar la librería, primero debes importar la libreria en tu proyecto. Puedes hacerlo con el siguiente código:

Usando el CDN de Unpkg:

    <script src="https://unpkg.com/@500historias/sarlib@latest"></script>

Importandolo en Node.js:

    // commonjs
    const sarlib = require('@500historias/sarlib');

    // ESM
    import sarlib from '@500historias/sarlib';

Inicializar la librería

Para inicializar la librería, debes usar el metodo init() de la instancia SarLib. El metodo toma como argumento un objeto de configuración con las siguientes propiedades:

  • uuid: Identificador único de la solicitud de autenticación.
  • secretKey: Clave secreta proporcionada por SAR.
  • url: URL de la API de SAR (opcional).

Como tercer parametro esta el url (opcional). Este URL es para conectar con el API de SAR en caso de querer apuntar a otro destino que no sea el que es por defecto.

Este método toma como argumento una función de retorno que se ejecutará después de que se complete la inicialización. La función de retorno recibirá el objeto del usuario como argumento.

    sarlib.init({'uuid', 'secretKey'}, (user) => {
        console.log(user);
    });

Recibiendo parametros de la URL

Al momento de inicializar sarlib, automaticamente se va a ejecutar el metodo parseQueryParams(), el cual va a obtener los parametros de la URL y los va a guardar.

Para obtener los parametros de la URL, puedes usar el metodo getQueryParam('queryParameter').

    const params = sarlib.getQueryParam('userId');

Test Mode

Para casos de desarrollo, es probable que necesites datos de prueba, para estos casos sarlib automaticamente va a detectar el queryParameter 'testMode'. En caso de ser 'true', la libreria va a ser inicializada en modo de pruebas.

    'https://{url-de-tu-app}/?userId=9999&testMode=true'

Entendiendo mejor los parametros de la URL

Los parametros que van a ser mandados a tu aplicación van a provenir automaticamente desde la plataforma del SAR. Estos parametros son los siguientes:

  • userId (obligatorio): El id del usuario que está jugando.
  • storyId: El id de la historia que está relacionada al reto, en caso de haber.
  • readEnded: Tiempo en el que el usuario terminó de leer la historia.
  • readInit: Tiempo en el que el usuario empezó a leer la historia.
  • testMode: Indica si la libreria debe ser inicializada en modo de pruebas.

Obtener información del usuario

El callback de la funcion init() retorna los datos del usuario. Sin embargo puedes hacer la peticion nuevamente con el método getUser(). Este método devuelve una promesa que se resuelve con el objeto del usuario.

sarlib.getUser()
  .then((user) => {
    console.log(user);
  })
  .catch((error) => {
    console.log(error);
  });

Terminar un reto

Puedes terminar un reto llamando al método finishChallenge(). Este método toma un argumento booleano que indica si el reto fue exitoso o no.

sarlib.finishChallenge(true)
  .then(() => {
    console.log('Reto terminado exitosamente');
  })
  .catch((error) => {
    console.log(error);
  });

Terminar un paso en un reto con pasos

Puedes terminar un paso en un reto con pasos llamando al método addStep(). Este método devuelve una promesa que se resuelve con un objeto con una propiedad success que indica si el paso fue exitoso o no.

sarlib.addStep()
  .then((response) => {
      console.log('Paso terminado exitosamente');
  })
  .catch((error) => {
    console.log(error);
  });

Créditos

Este proyecto es una iniciativa de 500Historias con la ayuda de Accentio Studios.

500Historias es un programa de transformación educativa que busca descubrir e impulsar nuevos talentos de la literatura, así como desarrollar habilidades como la creatividad, el pensamiento crítico y la colaboración en los jóvenes participantes.

Accentio Studios es una empresa de desarrollo de software que ofrece soluciones innovadoras y de calidad para diversos sectores.

Esta documentación fue generada usando GPT 3.5