Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import RxDB from 'rxdb/plugins/core';
RxDB.plugin(require('pouchdb-adapter-idb'));
import RxDBReplicationGraphQL from 'rxdb/plugins/replication-graphql';
RxDB.plugin(RxDBReplicationGraphQL);
// TODO import these only in non-production build
import RxDBSchemaCheckModule from 'rxdb/plugins/schema-check';
RxDB.plugin(RxDBSchemaCheckModule);
import RxDBErrorMessagesModule from 'rxdb/plugins/error-messages';
RxDB.plugin(RxDBErrorMessagesModule);
import RxDBValidateModule from 'rxdb/plugins/validate';
RxDB.plugin(RxDBValidateModule);
import {
GRAPHQL_PORT,
GRAPHQL_PATH,
GRAPHQL_SUBSCRIPTION_PORT,
GRAPHQL_SUBSCRIPTION_PATH
} from '../shared';
const insertButton = document.querySelector('#insert-button');
const heroesList = document.querySelector('#heroes-list');
const leaderIcon = document.querySelector('#leader-icon');
const heroSchema = {
version: 0,
type: 'object',
properties: {
import './style.css';
import {
SubscriptionClient
} from 'subscriptions-transport-ws';
import RxDB from 'rxdb/plugins/core';
RxDB.plugin(require('pouchdb-adapter-idb'));
import RxDBReplicationGraphQL from 'rxdb/plugins/replication-graphql';
RxDB.plugin(RxDBReplicationGraphQL);
// TODO import these only in non-production build
import RxDBSchemaCheckModule from 'rxdb/plugins/schema-check';
RxDB.plugin(RxDBSchemaCheckModule);
import RxDBErrorMessagesModule from 'rxdb/plugins/error-messages';
RxDB.plugin(RxDBErrorMessagesModule);
import RxDBValidateModule from 'rxdb/plugins/validate';
RxDB.plugin(RxDBValidateModule);
import {
GRAPHQL_PORT,
GRAPHQL_PATH,
GRAPHQL_SUBSCRIPTION_PORT,
async function loadRxDBPlugins(): Promise {
RxDB.plugin(RxDBLeaderElectionModule);
RxDB.plugin(RxDBReplicationModule);
// http-adapter is always needed for replication with the node-server
RxDB.plugin(PouchdbAdapterHttp);
/**
* indexed-db adapter
*/
RxDB.plugin(PouchdbAdapterIdb);
/**
* to reduce the build-size,
* we use some modules in dev-mode only
*/
if (isDevMode()) {
await Promise.all([
// schema-checks should be used in dev-mode only
// batteries-included
// import RxDB from 'rxdb';
/**
* custom build
*/
import RxDB from 'rxdb/plugins/core';
// import modules
import RxDBSchemaCheckModule from 'rxdb/plugins/schema-check';
import RxDBErrorMessagesModule from 'rxdb/plugins/error-messages';
if (process.env.NODE_ENV === 'development') {
// in dev-mode we show full error-messages
RxDB.plugin(RxDBErrorMessagesModule);
// schema-checks should be used in dev-mode only
RxDB.plugin(RxDBSchemaCheckModule);
}
import RxDBValidateModule from 'rxdb/plugins/validate';
RxDB.plugin(RxDBValidateModule);
import RxDBLeaderElectionModule from 'rxdb/plugins/leader-election';
RxDB.plugin(RxDBLeaderElectionModule);
import RxDBReplicationModule from 'rxdb/plugins/replication';
RxDB.plugin(RxDBReplicationModule);
// always needed for replication with the node-server
import * as PouchdbAdapterHttp from 'pouchdb-adapter-http';
RxDB.plugin(PouchdbAdapterHttp);
import RxDBValidateModule from 'rxdb/plugins/validate';
RxDB.plugin(RxDBValidateModule);
import RxDBLeaderElectionModule from 'rxdb/plugins/leader-election';
RxDB.plugin(RxDBLeaderElectionModule);
import RxDBReplicationModule from 'rxdb/plugins/replication';
RxDB.plugin(RxDBReplicationModule);
// always needed for replication with the node-server
import * as PouchdbAdapterHttp from 'pouchdb-adapter-http';
RxDB.plugin(PouchdbAdapterHttp);
import * as PouchdbAdapterIdb from 'pouchdb-adapter-idb';
RxDB.plugin(PouchdbAdapterIdb);
const useAdapter = 'idb';
let collections = [
{
name: 'hero',
schema: heroSchema,
methods: {
hpPercent(this: RxHeroDocument): number {
return this.hp / this.maxHP * 100;
}
},
sync: true
}
];
import RxDB from 'rxdb/plugins/core';
// import modules
import RxDBSchemaCheckModule from 'rxdb/plugins/schema-check';
import RxDBErrorMessagesModule from 'rxdb/plugins/error-messages';
if (process.env.NODE_ENV === 'development') {
// in dev-mode we show full error-messages
RxDB.plugin(RxDBErrorMessagesModule);
// schema-checks should be used in dev-mode only
RxDB.plugin(RxDBSchemaCheckModule);
}
import RxDBValidateModule from 'rxdb/plugins/validate';
RxDB.plugin(RxDBValidateModule);
import RxDBLeaderElectionModule from 'rxdb/plugins/leader-election';
RxDB.plugin(RxDBLeaderElectionModule);
import RxDBReplicationModule from 'rxdb/plugins/replication';
RxDB.plugin(RxDBReplicationModule);
// always needed for replication with the node-server
import * as PouchdbAdapterHttp from 'pouchdb-adapter-http';
RxDB.plugin(PouchdbAdapterHttp);
import * as PouchdbAdapterIdb from 'pouchdb-adapter-idb';
RxDB.plugin(PouchdbAdapterIdb);
const useAdapter = 'idb';
import RxDB from 'rxdb/plugins/core';
// import modules
import RxDBSchemaCheckModule from 'rxdb/plugins/schema-check';
import RxDBErrorMessagesModule from 'rxdb/plugins/error-messages';
if (ENV === 'development') {
// in dev-mode we show full error-messages
RxDB.plugin(RxDBErrorMessagesModule);
// schema-checks should be used in dev-mode only
RxDB.plugin(RxDBSchemaCheckModule);
}
import RxDBValidateModule from 'rxdb/plugins/validate';
RxDB.plugin(RxDBValidateModule);
import RxDBLeaderElectionModule from 'rxdb/plugins/leader-election';
RxDB.plugin(RxDBLeaderElectionModule);
import RxDBReplicationModule from 'rxdb/plugins/replication';
RxDB.plugin(RxDBReplicationModule);
// always needed for replication with the node-server
import * as PouchdbAdapterHttp from 'pouchdb-adapter-http';
RxDB.plugin(PouchdbAdapterHttp);
import * as PouchdbAdapterIdb from 'pouchdb-adapter-idb';
RxDB.plugin(PouchdbAdapterIdb);
const useAdapter = 'idb';
// in dev-mode we show full error-messages
// instead of RxErrors with theirs keys
import('rxdb/plugins/error-messages').then(
module => RxDB.plugin(module)
),
// we use the schema-validation only in dev-mode
// this validates each document if it is matching the jsonschema
import('rxdb/plugins/validate').then(
module => RxDB.plugin(module)
)
]);
} else {
// in production we use the no-validate module instead of the schema-validation
// to reduce the build-size
RxDB.plugin(RxDBNoValidateModule);
}
}
async function loadRxDBPlugins(): Promise {
RxDB.plugin(RxDBLeaderElectionModule);
RxDB.plugin(RxDBReplicationModule);
// http-adapter is always needed for replication with the node-server
RxDB.plugin(PouchdbAdapterHttp);
/**
* indexed-db adapter
*/
RxDB.plugin(PouchdbAdapterIdb);
/**
* to reduce the build-size,
* we use some modules in dev-mode only
*/
if (isDevMode()) {
await Promise.all([
import * as PouchdbAdapterIdb from 'pouchdb-adapter-idb';
import {RxCollection, RxDatabase, RxDocument} from 'rxdb';
import RxDB from 'rxdb/plugins/core';
import UpdatePlugin from 'rxdb/plugins/update';
import RxDBErrorMessagesModule from 'rxdb/plugins/error-messages';
import * as dumpPlugin from 'rxdb/plugins/json-dump';
import RxDBValidateModule from 'rxdb/plugins/validate';
import {Observable, of} from 'rxjs';
import {NgxRxdbCollectionConfig, NgxRxdbConfig, NgxRxdbDump} from './ngx-rxdb.interface';
import {NgxRxdbCollectionCreator} from './ngx-rxdb-collection.class';
import {promiseTimeout} from '../../util/promise-timeout';
RxDB.plugin(RxDBErrorMessagesModule);
RxDB.plugin(dumpPlugin);
RxDB.plugin(UpdatePlugin);
RxDB.plugin(RxDBValidateModule);
RxDB.plugin(PouchdbAdapterIdb);
const DEFAULT_ADAPTER = 'idb';
const DEFAULT_CONFIG = {
name: 'default_name_please_change',
adapter: DEFAULT_ADAPTER,
multiInstance: true,
queryChangeDetection: false,
ignoreDuplicate: true,
};
@Injectable()
export class NgxRxdbService implements OnDestroy {
private _dbInstance: RxDatabase;
get db(): RxDatabase {