capacitor-sqlcipher-handler

Plugin Capacitor para hacer operaciones CRUD en una base encriptada de Sqlite

Install

import { Injectable } from '@angular/core';
import { SqlcipherHandler } from 'capacitor-sqlcipher-handler';
import { Platform } from '@ionic/angular';
import { environment } from '../../environments/environment';

@Injectable({
  providedIn: 'root'
})
export class SqlcipherHandlerService {

  constructor(private platform: Platform) {
                //this.open()
  }

        public async open(secret: string){
                return await SqlcipherHandler.openDb({ dbName: environment.dbName, password: secret });
        }

        public async isOpen() {
                let res = await SqlcipherHandler.dbStatus();
                if (res.response.status=="opened"){
                        return true;
                }else{
                        return false;
                }
        }

        public async execute(query: string) {
                let res = await SqlcipherHandler.execute({query: query});
                return res;
        }

        public async select(query: string) {
                let res = await SqlcipherHandler.select({query: query});
                res.response.data = JSON.parse(res.response.data  as string)
                return res;
        }
}
import { environment } from '../../environments/environment';
import { SqlcipherHandlerService } from '../services/sqlcipher-handler.service';
import { Filesystem, Directory, Encoding } from '@capacitor/filesystem';

@Component({
  selector: 'app-history',
  templateUrl: './history.page.html',
  styleUrls: ['./history.page.scss'],
})
export class HistoryPage implements OnInit {

  constructor(
    private router: Router,
    private db: SqlcipherHandlerService
  ) { } 

  async appIsAlreadyInstalled() {
    await this.db.open(environment.dbName);
    let dbIsOpen = await this.db.isOpen();
    if (dbIsOpen){
      this.db.execute("create table users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, description TEXT)")                                                                                                    
      this.db.execute("insert into users (name, description) values ('Juan', 'CEO')")
      let out = await this.db.select("select * from users")
      console.log(JSON.stringify(out))

    }   
  }

  ngOnInit() {
    this.appIsAlreadyInstalled();
  }

}