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

@atrysglobal/babel-ripper

v1.0.9

Published

Interface and strict typing toolkit for accessing the BABEL unified translation service.

Downloads

58

Readme

"Package logo"

Configuración

Debe proporcionar una Dirección de API y una API Key válidas para acceder a las funcionalidades de BABEL. Esta llave se especifica en la instanciación concreta de la clase BabelProxyService.

const babel = new BabelProxyService({
  apiAddress: 'MY-API-ADDRESS', //Babel API Address
  apiKey: 'MY-API-KEY', //Secret API Key
  defaultLocale: 'es_ES', //Lenguaje de traducciones por defecto
});

IMPORTANTE: Prefiera variables de entorno y/u otros medios seguros para manejar datos sensibles en la configuración de su cliente BabelProxyService.

IMPORTANTE: El parámetro apiAddress se especifica a través del constructor de clase o en su defecto la variable de entorno BABEL_SERVICE. Si babel-ripper no detecta la dirección de API en el constructor o en la variable de entorno, el servicio gatillará una excepción de instanciación.

IMPORTANTE: Puede además configurar el valor de la propiedad clientTimeout para modificar los tiempos de espera de respuesta antes de forzar una excepción en tiempo de ejecución.

Implementaciones

Existen varias formas de implementación de la librería según sea su caso de uso:

Traducciones desde una lista

Necesita obtener la traducción desde una lista de referencias:

//Ref 1
const dateNameTarget = {
  target: 'references.header.dateNameLabel',
};

//Ref 2
const formNameTarget = {
  target: 'references.nameLabel',
};

//Loading translations
const [dateName, formName] = await babel.loadTranslations([
  dateNameTarget,
  formNameTarget,
]);

console.log(dateName.message); //"Fecha estimada"
console.log(formNameTarget.message); //"Nombre completo"

Traducciones desde diccionario

Necesita obtener traducciones desde un diccionario de referencias:

  • Para facilitar la tarea de mapeo de traducciones en grandes volúmenes utilice clase helper BabelRipper
//Ref dictionary
const dictionary = {
  dateName: 'references.header.dateNameLabel',
  folioName: 'references.header.folioNameLabel',
  formName: 'references.nameLabel',
};

//Loading translations
const translations = await babel.loadTranslationsFromObject(dictionary);

//BabelRipper plugin
const rip = new BabelRipper(translations);

console.log(rip.get(dictionary.dateName));
//"Fecha estimada"

console.log(rip.get(dictionary.formName));
//"Nombre completo"

Traducciones desde diccionario (proceso simplificado)

//Ref dictionary
const dictionary = {
  dateName: 'references.header.dateNameLabel',
  folioName: 'references.header.folioNameLabel',
  formName: 'references.nameLabel',
};

//Loading translations (includes pre-loaded Ripper)
const rip = await babel.loadGuttedTranslations(dictionary);

console.log(rip.get(dictionary.dateName));
//"Fecha estimada"

console.log(rip.get(dictionary.formName));
//"Nombre completo"

Traducciones de mensajes de API

Necesita recibir la traducción de un mensaje de traducción para respuesta estándar HTTP de su API. por ejemplo:

//...

if (!userName) {
  const message = await babel.loadMessage({
    target: 'standardErrors.STANDARD.BAD_REQUEST',
  });

  // Will return:
  //   {
  //     id: 'standardErrors.STANDARD.BAD_REQUEST',
  //     message: 'Bad Request',
  //     httpCode: 400,
  //   }

  return message;
}

License

Este proyecto se encuentra bajo la licencia GNU General Public License. Puede consultar más detalles aquí.

Changelog

Puede consultar el historial de cambios aquí.

NPM Package

Puede encontrar la distribución oficial de NPM de este proyecto aquí.