Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problema ao fazer o transpiler da classe ConnectionFactory

No console aparece:

ReferenceError: assignment to undeclared variable ConnectionFactory (ConnectionFactory.js) ReferenceError: ConnectionFactory is not defined (NegociacaoService.js)

O código abaixo é o que foi gerado pelo transpiler:


ConnectionFactory = (function () {

    const stores = ["negociacoes"];
    const version = 5;
    const dbName = "aluraframe";

    var connection = null;
    var close = null;

    return class ConnectionFactory {

        constructor() {
            throw Error("Essa classe não pode ser instanciada")
        }

        static closeConnection(){
            close();
            connection = null;
        }

        static getConnection() {
            return new Promise((resolve, reject) => {
                let openRequest = window.indexedDB.open(dbName, version);

                openRequest.onupgradeneeded = e => {
                    let myConnection = e.target.result;
                    ConnectionFactory._createStores(myConnection);
                }

                openRequest.onsuccess = e => {
                    if (!connection) {
                        connection = e.target.result;
                        close = connection.close.bind(connection); // faz o binding para associar com a conexão
                        connection.close = () => { throw new Error("A conexão não pode ser fechada diretamente") }
                    }
                    resolve(connection);
                }

                openRequest.onerror = e => {
                    console.log(e.target.error);
                    reject(e.target.error.name);
                }
            })
        }

        static _createStores(connection) {
            stores.forEach(store => {
                if (connection.objectStoreNames.contains(store)) {
                    connection.deleteObjectStore(store);
                    console.log(`A store ${store} já existia e foi deletada.`);
                }
                connection.createObjectStore(store, { autoIncrement: true });
            });

        }
    }
})();
3 respostas

Fala ai Francisco, tudo bem? Esse problema pode estar ocorrendo por N motivos, sendo assim, consegue compartilhar o projeto completo? Assim eu consigo simular o problema por aqui e analisá-lo com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Fico no aguardo.

solução!

Já resolvi. Obrigado.

Magina Francisco, sempre que precisar não deixe de criar suas dúvidas.

Se não for pedir muito, posta a solução para a gente, assim conseguimos ajudar outros alunos com problemas iguais ou parecidos.

Abraços e bons estudos.