croswil_lib
v5.0.39
Published
Croswil SQLite and Utils Library for project Node js
Downloads
60
Readme
croswil_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 'croswil' e una classe per l'invio di Mail.
(C'è tutta la logica di tlite)
L'installazione:
npm i croswil_lib
la libreria include l'installazione di alcuni moduli:
- better-sqlite (con fts5)
all'interno della libreria ci sono diversi moduli e funzioni.
database
const {database} = require("croswil_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 databaseres=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 comandodatabase.closeall()
: chiude tutte le istanze aperte di database.
Sono state aggiunte diverse funzioni all'oggetto db
db.run(sql,pars)
: anzichè utilizzaredb.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 didb.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 conalsodelete=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 previstodb.export(table,mode)
: esporta una tabella in una struttura per JSONdb.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('croswil_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('croswil_lib');
// esempio B.creaCartella('alfa/beta/gamma/)
// oppure
const {random,clamp,shuffle,creaCartella}=require('croswil_lib')
Post
Usa node-fetch
per rendere disponibili le funzioni per l'accesso ai servizi 'croswil' , e per una
lista di utilità :
const {Post}=require('croswil_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 croswil
post.fetchtxt('https:///www.croswil.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!
dbutils (agg. 17/09/2024)
Estensione di database.js Elenco delle funzioni principali:
insertorupdate(db, table, dati, tables, forceinsert)
tselect = (table, exclude, tables = 'tables')
verificatabelle(db, tabs, logga = true)
checkdb(dbname, struttura, tables = "tables")
git (agg. 17/09/2024)
Gestione commandi git localmente. C'è una classe con una serie di moduli in particolare 10 moduli.