pouchdb-community/transform-pouch

outgoing transform gets called twice when get()-ing first document from db after closing and re-opening

Open

#31 geöffnet am 30. Apr. 2016

Auf GitHub ansehen
 (0 Kommentare) (2 Reaktionen) (0 zugewiesene Personen)JavaScript (25 Forks)github user discovery
bughelp wanted

Repository-Metriken

Stars
 (102 Stars)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Hey guys,

first of all thank you very much for PouchDB, I think this is a truly awesome project!

Now, I am experiencing a problem using transformers which I was able to reproduce with this jasmine test:

    it("shows duplicate outgoing transform calls", function (done) {
        var database = new PouchDB("bar", {});
        database.transform({
            incoming: function incoming(doc) {
                console.log("incoming called for doc", doc);
                return doc;
            }, outgoing: function outgoing(doc) {
                console.log("outgoing called for doc", doc);
                return doc;
            }
        });
        database.put({ _id: "1", val: "bar" }).then(function () {
            return database.close();
        }).then(function () {
            database = new PouchDB("bar", {});
            database.transform({
                incoming: function incoming(doc) {
                    console.log("incoming called for doc", doc);
                    return doc;
                }, outgoing: function outgoing(doc) {
                    console.log("outgoing called for doc", doc);
                    return doc;
                }
            });
            database.get("1").then(function (doc) {
                return database.destroy();
            }).then(function () {
                done();
            });
        });
    });

The console output I get is this (consistent with a behavior I saw in my production code):

LOG: 'incoming called for doc', Object{_id: '1', val: 'bar'}
LOG: 'outgoing called for doc', Object{val: 'bar', _id: '1', _rev: '1-506c4ea0b5a45566efbb9b6013ebecf7'}
LOG: 'outgoing called for doc', Object{val: 'bar', _id: '1', _rev: '1-506c4ea0b5a45566efbb9b6013ebecf7'}

I am using PouchDB 5.3.2 together with transform-pouch 1.1.1. This happens in my production code when an app is started with a DB containing a few documents and getting the first time any one of these documents. Subsequent calls to get() work as expected, i.e. outgoing is called only once. I think this might be a bug, isn't it?

Kind Regards

Sven

Contributor Guide