5.0.18 • Published 8 days ago

liburno_lib v5.0.18

Weekly downloads
4
License
ISC
Repository
github
Last release
8 days ago

liburno_lib

Questa libreria mette a disposizione un set di funzioni per facilitare la realizzazione di progetti CLI:

Mette a disposizione una classe Database (basata su better-sqlite3), alcune funzioni di servizio, per la gestione di stringhe, una classe 'Post' per comunicare con servizi BackEnd 'Liburno' e una classe per l'invio di Mail.

L'installazione:

npm i liburno_lib

la libreria include l'installazione di alcuni moduli:

  • better-sqlite (con fts5)
  • request
  • nodemailer

all'interno della libreria ci sono diversi moduli e funzioni.

database

const {database} = require("liburno_lib")
var db=database.db('nome.db')
...
db.chiudi()  // chiude anche le eventuali transazioni aperte

Questo è un wrapper di della classe database di better-sqllite. Ha le seguenti funzioni:

  • db=database.db(nomefile): apre e torna un oggetto database
  • res=database.cleansql(sql): pulisce uno statement sql di spazi e commenti. sono accettati anche // come inizio di commento.
  • res=database.splitsql(sql): divide i comandi sq in un vettore 'pulito' in cui a ogni riga corrispone un solo comando

  • database.closeall(): chiude tutte le istanze aperte di database.

Sono state aggiunte diverse funzioni all'oggetto db

  • db.run(sql,pars): anzichè utilizzare db.prepare(sql).run(pars) si può utilizzare questo metodo che permette di inserire diversi comandi sql, separati con ;. Da utilizzarsi in particolare per la creazione del database.
  • db.begin(), db.commit(): inizia e termina una transazione. viene tenuto uno stack delle transazioni.

  • db.chiudi(): da utilizzare al posto di db.close: tiene traccia delle transazioni e mappa il database come chiuso.

  • db.esisteTabella(tb),db.esisteCampo(tb,campo), ispeziona la struttura per determinare se una tabella o un campo sono presenti.

  • db.schema(table,alsodelete): ritorna i comandi sql per la creazione dell'intero database (table=null), ed eventualmente i comandi per la cancellazione con alsodelete=true

  • db.tabledef (tb): comando semplificato per la creazione di una tabella. ritorna l'sql specifico, in particolare per tutti i comandi di creazione FTs5 quando previsto

  • db.export(table,mode): esporta una tabella in una struttura per JSON

  • db.import(table,data): importa e sovrascrive la tabella esportata. Inoltre controlla di inserire solo i campi che corrispondono all'esportazione lasciando invariati gli altri.

  • altri: vi sono altre funzioni interessanti per la generazione automatica di comandi SQL su una tabella: db.tabelle(),db.campi(tabella,modo),db.strinsert(table),db.strdelete(table),db.strvirtual(table,search) per la costruzione di una ricerca FTS5, db.strselect(table,orderder=false)

init

const {init}=require('liburno_lib');
const const { Reset, Bold, Reverse, Red, Green, Yellow, Blue, Magenta, Cyan, White } = init(); // ritorna una serie di varibili per colorare la console.
console.log(Red,'rosso',Yellow,Bold,'yellow',Reset,'back');

Init ha la funzione di richiamare una serie di prototipi sulle classi String, Number e Date che ne estendono la funzionalità.

L'intellisense di code, permette di visualizzarle e usarle.

B

Contiene una serie di funzioni globali di servizio, accedibili anche direttamente.

const {B}=require('liburno_lib');
// esempio B.creaCartella('alfa/beta/gamma/) 
// oppure
const {random,clamp,shuffle,creaCartella}=require('liburno_lib')

Post

Usa node-fetch per rendere disponibili le funzioni per l'accesso ai servizi 'liburno' , e per una lista di utilità :

const {Post}=require('liburno_lib')
const post=new Post(baseurl,utente) // i parametri baseURL e utente sono opzionali

post.post('modulo/funzione', { data}).then(res=>{ console.log(res)}) // accede a un servizio liburno
post.fetchtxt('https:///www.liburno.com').then(d=> console.log(d));           // get dell'indirizzo in formato testo
post.fetchfile(indirizzo,fileout)                        // scarica un file
post.fetchjson(indirizzo).then(d=> console.log(d));      // parsa un indirizzo json
post.fetchbuffer(indirizzo).then (buffer => {  })        // parsa un indirizzo in formato binario, ottimo con sharp!

Mail

Questa utility usa 'nodemailer' per creare una classe mail e spedire una email.

const fs=require('fs')
const {Mail}=require('liburno_lib');
const mail=new mail(email,password);
// utilities
const fileconf=".mailconfig.json"; // file configurazione nascosto
fs.writeFileSync(fileconf,JSON.stringify(mail.config,null,2)) // struttura di un file di configurazione
    
... // oppure
const mail=new mail();
mail.configFile(fileconf)    // imposta un file di configurazione per il trasporto

... // per inviare

mail.send(to, subject, text)
    .then((info)=>{
        console.log(info.messageId);
    })
    .catch(e=>{
        console.log("Error",e);
    })
5.0.17

8 days ago

5.0.18

8 days ago

5.0.16

1 month ago

5.0.14

3 months ago

5.0.15

3 months ago

5.0.13

3 months ago

5.0.12

3 months ago

5.0.9

3 months ago

5.0.8

3 months ago

5.0.7

3 months ago

5.0.6

3 months ago

5.0.5

3 months ago

5.0.10

3 months ago

5.0.11

3 months ago

5.0.4

3 months ago

5.0.3

4 months ago

5.0.2

4 months ago

4.0.14

8 months ago

4.0.13

9 months ago

4.0.12

9 months ago

4.0.10

9 months ago

4.0.11

9 months ago

4.0.9

9 months ago

4.0.8

9 months ago

4.0.5

9 months ago

4.0.4

10 months ago

4.0.7

9 months ago

4.0.6

9 months ago

4.0.1

1 year ago

4.0.3

10 months ago

4.0.2

12 months ago

3.0.21

1 year ago

3.0.25

1 year ago

3.0.20

1 year ago

3.0.18

1 year ago

3.0.19

1 year ago

3.0.17

1 year ago

3.0.13

2 years ago

3.0.16

1 year ago

3.0.14

1 year ago

3.0.15

1 year ago

3.0.12

2 years ago

3.0.4

2 years ago

3.0.3

2 years ago

3.0.10

2 years ago

3.0.2

2 years ago

3.0.11

2 years ago

3.0.1

2 years ago

3.0.8

2 years ago

3.0.7

2 years ago

3.0.6

2 years ago

3.0.5

2 years ago

3.0.9

2 years ago

2.0.51

2 years ago

2.0.52

2 years ago

2.0.50

2 years ago

2.0.49

2 years ago

2.0.48

2 years ago

2.0.46

2 years ago

2.0.47

2 years ago

2.0.44

2 years ago

2.0.45

2 years ago

2.0.42

2 years ago

2.0.43

2 years ago

2.0.41

2 years ago

2.0.40

3 years ago

2.0.39

3 years ago

2.0.38

3 years ago

2.0.37

3 years ago

2.0.36

3 years ago

2.0.35

3 years ago

2.0.34

3 years ago

2.0.33

3 years ago

2.0.32

3 years ago

2.0.31

4 years ago

2.0.29

4 years ago

2.0.30

4 years ago

2.0.28

4 years ago

2.0.27

4 years ago

2.0.26

4 years ago

2.0.25

4 years ago

2.0.24

4 years ago

2.0.23

4 years ago

2.0.22

4 years ago

2.0.21

4 years ago

2.0.20

4 years ago

2.0.19

4 years ago

2.0.18

4 years ago

2.0.17

4 years ago

2.0.15

4 years ago

2.0.16

4 years ago

2.0.14

4 years ago

2.0.13

4 years ago

2.0.12

4 years ago

2.0.10

4 years ago

2.0.9

4 years ago

2.0.8

4 years ago

2.0.7

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.6

4 years ago

2.0.0

4 years ago

1.1.1

4 years ago