sporran 4.0.2

  • README.md
  • changelog.md
  • Example
  • Installing
  • Versions
  • 55

Sporran - a PouchDB alike database client for Dart

Introduction

Sporran is a PouchDB alike implementation for Dart.

It uses Lawndart(browser local storage client) and Wilt(browser CouchDB client) to allow browser based CouchDB users to transition between online and offline modes and carry on working normally.

When the browser is online Sporran acts just like Wilt, i.e is a CouchDB client, but all database transactions are reflected into local storage. If the browser goes offline Sporran switches to using local storage only, when the browser comes back online the local database is synced up with CouchDB, all transparent to the user.

The CouchDB change notification interface is also used to keep Sporran in sync with any 3rd party changes to your CouchDB database.

Please read the documents under the doc folder for usage information, the API is also under this folder and is available here

Contact

Queries you can direct to me at steve.hamblett@linux.com or raise an issue here.

4.0.2

Formatting for pana

4.0.1

Update description for pana

4.0.0

Update to dart 2.0, issue 15

3.1.0

Update to new Wilt + JsonObjectLite, remove analysis errors

3.0.0

Updates ready for Dart 2, remove the completion interface.

2.1.0

Updates for issues 7, 5, 6, 8 and 4 Note that issue 4 changes how Sporran is constructed and is thus breaking.

2.0.1

Updates for DartV1.5.3, all tests running

2.0.0

Issues 1 and 2, Sporran now has a futures based API

1.0.0

Initial release

example/sporran.dart

/*
 * Package : Sporran
 * Author : S. Hamblett <steve.hamblett@linux.com>
 * Date   : 17/09/2018
 * Copyright :  S.Hamblett
 */

import 'package:sporran/sporran.dart';
import 'package:json_object_lite/json_object_lite.dart';
import '../test/lib/sporran_test_config.dart';

/// An example of sporran initialisation and usage, see the test scenarios for more detailed
/// use cases.
void main() async {
  // Initialise Sporran
  final SporranInitialiser initialiser = new SporranInitialiser();
  initialiser.dbName = databaseName;
  initialiser.hostname = hostName;
  initialiser.manualNotificationControl = true;
  initialiser.port = port;
  initialiser.scheme = scheme;
  initialiser.username = userName;
  initialiser.password = userPassword;
  initialiser.preserveLocal = false;

  // Create the client
  final Sporran sporran = new Sporran(initialiser);
  sporran.autoSync = false;
  await sporran.onReady.first;

  /// Put a document
  final dynamic onlineDoc = new JsonObjectLite();
  final String docIdPutOnline = "putOnlineg3";
  onlineDoc.name = "Online";
  await sporran.put(docIdPutOnline, onlineDoc);

  /// Get it
  sporran.get(docIdPutOnline)
    ..then((res) {
      final dynamic payload = new JsonObjectLite.fromJsonString(res.payload);
      print(payload.payload.name);
    });

  /// Get it offline
  sporran.online = false;
  sporran.get(docIdPutOnline)
    ..then((res) {
      final dynamic payload = new JsonObjectLite.fromJsonString(res.payload);
      print(payload.payload.name);
    });
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  sporran: ^4.0.2

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:sporran/sporran.dart';
  
Version Uploaded Documentation Archive
4.0.2 Sep 25, 2018 Go to the documentation of sporran 4.0.2 Download sporran 4.0.2 archive
4.0.1 Sep 25, 2018 Go to the documentation of sporran 4.0.1 Download sporran 4.0.1 archive
4.0.0 Sep 17, 2018 Go to the documentation of sporran 4.0.0 Download sporran 4.0.0 archive
3.1.0 Dec 15, 2017 Go to the documentation of sporran 3.1.0 Download sporran 3.1.0 archive
3.0.0 Sep 12, 2017 Go to the documentation of sporran 3.0.0 Download sporran 3.0.0 archive
2.1.0 Sep 17, 2014 Go to the documentation of sporran 2.1.0 Download sporran 2.1.0 archive
2.0.0 Mar 13, 2014 Go to the documentation of sporran 2.0.0 Download sporran 2.0.0 archive
1.0.0 Mar 3, 2014 Go to the documentation of sporran 1.0.0 Download sporran 1.0.0 archive
Popularity:
Describes how popular the package is relative to other packages. [more]
10
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
55
Learn more about scoring.

We analyzed this package on Dec 5, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.1.0
  • pana: 0.12.7

Platforms

Detected platforms: web

Primary library: package:sporran/sporran.dart with components: html.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev <3.0.0
json_object_lite ^2.0.0 2.0.0
wilt >=4.0.0 <=5.0.0 4.0.1
Transitive dependencies
async 2.0.8
charcode 1.1.2
collection 1.14.11
convert 2.0.2
crypto 2.0.6
http 0.11.3+17 0.12.0
http_parser 3.1.3
meta 1.1.6
path 1.6.2
source_span 1.4.1
string_scanner 1.0.4
typed_data 1.1.6
Dev dependencies
build_runner ^0.10.0
build_test ^0.10.2
build_web_compilers ^0.4.0
coverage ^0.12.2
dart_style ^1.1.3
dartdoc ^0.20.3
test ^1.3.0