UNPKG

blow-data-service

Version:

Observable data service for Blow.

57 lines (49 loc) 1.66 kB
/// <reference path="../typings/tsd.d.ts" /> 'use strict'; import {Observable} from 'rxjs'; import {Query} from 'blow-query'; import {DataService, Entity, DataServiceSettings} from '../src/blow-data-service'; interface Country extends Entity { _id: string; name: string; code: string; } const settings: DataServiceSettings = { // default: { // default: true, // connector: 'mongodb', // settings: { // url: 'mongodb://localhost:27017/test' // } // } default: { default: true, connector: 'memory' } } const dataService = DataService.create(settings); dataService.connect() .subscribe(() => { console.log('Connected'); const countriesCollection = dataService.collection<Country>('countries'); const data = [{name: 'Poland', code: 'POL'}, {name: 'Ireland', code: 'IRL'}]; Observable.from(data) .mergeMap(countryData => countriesCollection.save(countryData)) .last() .do(() => console.log('Countries saved.')) .mergeMap(() => countriesCollection.count()) .do(c => console.log(`Total number of countries: ${c}`)) .mergeMap(() => { const query = new Query(); query.equal('code', 'POL') return countriesCollection.find(query); }) .do(c => console.log(c)) .mergeMap((c: Country) => countriesCollection.deleteById(c._id)) .do(deleted => console.log(`Deleted countries: ${deleted}.`)) .mergeMap(() => countriesCollection.find()) .do(c => console.log(c)) .mergeMap(() => countriesCollection.delete()) .mergeMap(() => dataService.disconnect()) .subscribe(() => console.log('DONE')); });