croswil_lib
v5.1.2
Published
Croswil SQLite and Utils Library for project Node js
Readme
Croswil_lib
Questa libreria mette a disposizione un set di funzioni per facilitare la realizzazione di progetti CLI.
C'e 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_libla 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 aperteQuesto è 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=truedb.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.
