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 🙏

© 2025 – Pkg Stats / Ryan Hefner

bk-lib-typescript

v2.0.0-d

Published

Progetto di classi comuni da importare nei vari progetti Ionic, nodejs, typescript.

Readme

Progetto di classi comuni da importare nei vari progetti Ionic, nodejs, typescript. Da valutare la struttura del progetto per risolvere i problemi di importazione di cui si parla nel seguito.

Per l'importazione in progetto ionic si possono utilizzare le dipendenze, ma funziona solo localmente. Ancora da vedere come gestirlo a livello di node_modules (con sorgente, sarebbe possibile trasformandolo nella cartella dist). Si vorrebbe però poter vedere e modificare in locale il progetto sorgente in fase di test. Richiesto anche in SO come aggiungere la cartella al webpack ma non si è ottenuta risposta.

Per l'importazione in progetto nodejs non hanno funzionato le dipendenze. Si è utilizzato con successo un import con il percorso relativo, ad esempio:

import { StringUtils } from "../../LIBRARY/LIB - TYPESCRIPT/typescript/lib/classes/utils/string-utils";

  • Lanciando l’esecuzione con “node '.\out\NODEJS\CST - BENZI - MAC - B.R.F TRANSFER\main.js'” in locale funziona (perché in out il fatto che ci sia una cartella esterna fa creare delle sottodirectory).
  • Testato anche l'avvio automatico del programma con F5 in debug
  • Da testare eseguibile: pkg "out/NODEJS/CST - BENZI - MAC - B.R.F TRANSFER/main.js" -o "build/CST - BENZI - MAC - B.R.F TRANSFER.exe"
  • Testata con successo anche la creazione e l’avvio del servizio.

Questo sistema ha il problema che l’intellisense non "vede" le classi, si deve conoscere il percorso per fare l’import o in seguito è possibile che dopo qualche utilizzo funzioni.

Lancio pacchetto npm

Lanciamo ufficialmente il pacchetto su npm, chiamandolo bk-lib-typescript; Ho pensato che fosse carino lanciarlo con la 2.0.0

Ho cambiato una serie di cose che impedivano al pacchetto di compilare inzialmente, dovuto piu che alro al fatto che seppur il type del return diceva string, si gestivano gli errori facendo return null, se avessi sostituito il tipo di ritorno con string | null la cosa piu probabile e che sarebbe saltato tutto con "might be null", hopo preferito gestirli con un trycatch ed il throw error.

Ho poi spostato le dipendenze dal root a src, per buona prassi di TS

Una volta riuscito a compilare ho pubblicato il pacchetto su npm semplicemente con npm-publish, ma mancavano gli imports, sono cosi tornato a rivedermi il progetto, ho fatto vari cambiamenti, alla fine ho scoperto per puro caso il punto 2, botta di fondoschiena notevole, ma si sa, la fortuna aiuta gli audaci

Il problema principale era legato a due aspetti:

  1. Mancava una dipendenza TypeScript fondamentale nel progetto, che causava errori di compilazione e confusione.
  2. La configurazione del modulo non era impostata su ESNext, il che impediva al progetto di funzionare correttamente con i moduli moderni.

Modifiche Recenti

Versione 2.0.0a

  • Aggiunti nuovi metodi nella classe DateUtils:
    • isTodayDate: Verifica se una data corrisponde alla data odierna.
    • dateFromTimeSpan: Converte un TimeSpan in una data.
    • dateToTimeSpan: Converte una data in un TimeSpan.
    • roundDate: Arrotonda una data al minuto più vicino in base a uno step specificato.
  • Refactoring del metodo dateFromDatetimeString per migliorare leggibilità e struttura del codice.
  • Tradotti i messaggi di errore in italiano per coerenza con il resto del progetto.
  • Aggiunto uno script update nel package.json che:
    • Esegue il linter per correggere eventuali problemi di stile.
    • Pubblica il pacchetto su npm.

Versione 2.0.0

  • Sostituiti i riferimenti a Utils con TypeUtils nella classe StringUtils.
  • Rimossi i riferimenti a Field e MexUtils in StringUtils, utilizzando tipi generici any.
  • Risolti problemi di nullabilità per minInd e maxInd nei metodi di StringUtils.
  • Reintrodotto Utils.safeParse per la logica di parsing in StringUtils.
  • Aggiornata la classe TypeUtils per garantire la compatibilità con le modifiche più recenti.

Versione 1.2.9

  • Creata la classe ConvertUtils come utilità per le conversioni. Aggiunto il metodo intToBinaryUnsigned per la conversione binaria senza segno.

Versione 1.2.8

  • Aggiunto il campo CustNote1 a MEXVIR_OrderList.

Versione 1.2.7

  • Migliorato DateUtils.dateFromDatetimeString per accettare il formato yyyy-mm-dd hh:mm:ss.

Versione 1.2.6

  • Aggiunto il metodo asBooleanWithDefault in TypeUtils.
  • Aggiunto il metodo dateFromDatetimeString in DateUtils.

Versione 1.2.5

  • Introdotto il metodo cloneAsJson in Utils.

Versione 1.2.4

  • Creata la classe DateUtils con metodi di utilità spostati da Utils.
  • Aggiunta la gestione dei separatori nel formato data per datetime.

Versione 1.2.3

  • Aggiunta la funzione di utilità Utils.wait.

Versione 1.2.2

  • Aggiunte funzioni di utilità e campi per le viste degli ordini.
  • Creata la classe ArrayUtils con metodi come getOnlyOrNull.
  • Aggiunta la funzione safeSubstring con un limite massimo di caratteri.

Versione 1.2.1

  • Ristrutturato il progetto rimuovendo la cartella classes.
  • Importate classi ed enumerazioni del database.

Versione 1.1.1

  • Versione iniziale del progetto, migrata dal vecchio progetto LIB - IONIC.