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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cbm-common/print-settings-repository

v0.0.1

Published

Esta librería proporciona un cliente HTTP ligero para consumir los endpoints relacionados con la configuración de impresión (print settings) del backend. Está pensada para integrarse en aplicaciones Angular y ofrece un servicio con operaciones CRUD y list

Readme

Print Settings Repository

Esta librería proporciona un cliente HTTP ligero para consumir los endpoints relacionados con la configuración de impresión (print settings) del backend. Está pensada para integrarse en aplicaciones Angular y ofrece un servicio con operaciones CRUD y listados.

Contenido

  • CbmPrintSettingsModule — token de configuración para inyectar baseUrl.
  • CbmPrintSettingsService — servicio principal que expone los métodos para listar, crear, actualizar y eliminar configuraciones de impresión.
  • print-settings.model.ts — tipos/contratos usados por el servicio (parámetros y respuestas).

Requisitos

  • Angular 20.x
  • HttpClientModule en la aplicación que consume la librería

Instalación y uso básico

  1. Construir la librería (desde el workspace raíz):
ng build print-settings-repository
  1. Publicar (opcional):
cd dist/print-settings-repository
npm publish

Configuración (inyección de baseUrl)

La librería expone un token de configuración (PRINT_SETTINGS_MODULE_CONFIG) y una función forRoot que devuelve un proveedor para inyectar la configuración. En tu AppModule registra el proveedor en el array providers:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CbmPrintSettingsModule } from 'print-settings-repository';

@NgModule({
  imports: [BrowserModule],
  providers: [
    CbmPrintSettingsModule.forRoot({ baseUrl: 'https://api.example.com/print-settings' })
  ],
})
export class AppModule {}

Nota: la librería está diseñada para que la URL base sea inyectada mediante el token de configuración. El servicio CbmPrintSettingsService usa HttpClient y construye las rutas a partir de baseUrl.

API pública del servicio

Importar el servicio desde la librería y usarlo en componentes o servicios de la aplicación:

import { Component, OnInit } from '@angular/core';
import { CbmPrintSettingsService } from 'print-settings-repository';

@Component({ /* ... */ })
export class ExampleComponent implements OnInit {
  constructor(private readonly printSettings: CbmPrintSettingsService) {}

  ngOnInit() {
    // listar
    this.printSettings.list({ page: 1, per_page: 20 }).subscribe(res => console.log(res));
  }

  create() {
    this.printSettings.save({ /* body conforme a SaveBody */ }).subscribe();
  }

  update(id: string) {
    this.printSettings.update(id, { /* update body */ }).subscribe();
  }

  remove(id: string) {
    this.printSettings.delete(id).subscribe();
  }
}

Resumen de métodos disponibles en CbmPrintSettingsService (según print-settings.service.ts):

  • list(params: ListParams): Observable<ListResponse> — obtiene listado paginado.
  • save(body: SaveBody): Observable<ConfirmResponse> — crea una nueva configuración.
  • update(id: string, body: UpdateBody): Observable<ConfirmResponse> — actualiza registro por id.
  • delete(id: string): Observable<ConfirmResponse> — elimina registro por id.

Modelos y tipos

  • Consulta projects/print-settings-repository/src/lib/print-settings.model.ts para ver las interfaces exactas (ListParams, ListResponse, SaveBody, UpdateBody, ConfirmResponse) que espera y devuelve la API.

Notas de integración

  • Asegúrate de que HttpClientModule esté importado en el AppModule (o en el módulo que use CbmPrintSettingsService).
  • La librería proporciona el servicio con providedIn: 'root', por lo que no es necesario añadirlo manualmente a providers.
  • Si tu aplicación requiere interceptores o un servicio HTTP personalizado para manejo de cabeceras/autenticación, registra esos interceptores a nivel de la aplicación (no dentro de la librería) o solicita que la librería los exponga explícitamente si prefieres centralizarlos.

Construir y probar

  • Compilar la librería:
ng build print-settings-repository
  • Ejecutar tests unitarios del workspace:
ng test

Preguntas frecuentes / problemas comunes

  • ¿Dónde configuro la URL base? — Usa CbmPrintSettingsModule.forRoot({ baseUrl: '...' }) en providers del AppModule.
  • ¿Por qué forRoot devuelve un proveedor y no ModuleWithProviders? — Este paquete sigue el patrón de inyección por token; registra la configuración como proveedor para que el servicio la inyecte mediante el token PRINT_SETTINGS_MODULE_CONFIG.

Contribuciones y mantenimiento

  • Para contribuir, abre un PR en el repositorio del monorepo. Sigue las mismas convenciones del resto de paquetes del workspace (lint, tests, formato).

Más información

  • Revisa los archivos fuente en projects/print-settings-repository/src/lib para comprender los modelos y comportamiento concreto.

Documentación actualizada y localizada al español.