Pouchdb и Cordova-sqlcipher-адаптер на ionic: это возможно?

Я хотел бы знать, возможна ли следующая конфигурация для гибридного приложения, использующего ионную (угловую) структуру:

Это должно работать, если мы используем cordova-sqlite-plugin с помощью адаптера pouch db, https://github.com/pouchdb-community/pouchdb-adapter-cordova-sqlite, но не с зашифрованным.

Проблема, с которой я сталкиваюсь, заключается в том, что машинопись не переносится. Я не знаю, как настроить среду и определить базу данных sqlite-cipher с ключом.

Вот несколько примеров машинописного кода:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import PouchDB from 'pouchdb';

import cordovaSqlitePlugin from 'pouchdb-adapter-cordova-sqlite';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})

export class HomePage {


  constructor(public navCtrl: NavController) {
    this.setUpPouch();
  }

  setUpPouch(){
    PouchDB.plugin(cordovaSqlitePlugin);
    let db = new PouchDB('dummypouch.db', { adapter: 'cordova-sqlite', key:"dummy_key"});
  }

}

Я хотел бы знать, есть ли способ передать ключ к адаптеру PouchDB, не нарушая транспиляцию.

Строка, которая приводит к сбою транспиляции:

let db = new PouchDB('dummypouch.db', { adapter: 'cordova-sqlite', key:"dummy_key"});

Печатная машинопись потерпела неудачу с этим сообщением:

[12:35:30]  typescript: src/pages/home/home.ts, line: 21 
            Argument of type '{ adapter: string; key: string; }' is not assignable to parameter of type 
            'DatabaseConfiguration'. Object literal may only specify known properties, and 'key' does not exist in type 
            'DatabaseConfiguration'. 


      L20:    PouchDB.plugin(cordovaSqlitePlugin);
      L21:    let db = new PouchDB('dummypouch.db', { adapter: 'cordova-sqlite', key:"dummy_key"});

Error: Failed to transpile program
    at new BuildError (/Users/santi/dummy_project/dummy_push_test/node_modules/@ionic/app-scripts/dist/util/errors.js:16:28)
    at /Users/santi/dummy_project/dummy_push_test/node_modules/@ionic/app-scripts/dist/transpile.js:159:20
    at new Promise (<anonymous>)
    at transpileWorker (/Users/santi/dummy_project/dummy_push_test/node_modules/@ionic/app-scripts/dist/transpile.js:107:12)
    at Object.transpile (/Users/santi/dummy_project/dummy_push_test/node_modules/@ionic/app-scripts/dist/transpile.js:64:12)
    at /Users/santi/dummy_project/dummy_push_test/node_modules/@ionic/app-scripts/dist/build.js:109:82
[12:35:30]  copy finished in 2.47 s 

1 ответ

Я отвечаю на свой вопрос для справки. Да, это возможно, если мы не используем модуль @ types / pouchdb, который добавляет типы в машинописный текст.

В случае, если они у нас есть, мы должны удалить их и исправить все, чтобы работать, не вводя связанные переменные:

npm uninstall --save @types/pouchdb

Другой вариант, я полагаю, состоит в том, чтобы написать правильные типы и включить их в проект... Я не делал этого, поэтому я не уверен.

Другие вопросы по тегам