async function resolveNamedExport (container, input, output, node, currentpath, generator, liveBindings) {
    let exports = [];
    
    // export function / class / let...
    if (node.declaration) {
        let dec = node.declaration;

        // Singular export declaration
        if (dec.id) {
            exports.push({ 
                local: dec.id.name, 
                exported: dec.id.name 
            });
        } 

        // Multiple export declaration
        if (dec.declarations) {
            dec.declarations.forEach(node => {
                if (node.id.type === 'ObjectPattern') {
                    node.id.properties.forEach(prop => {                        
                        exports.push({ 
                            local: prop.value.name, 
                            exported: prop.value.name 
                        });
                    });
                } else {
                    if (!liveBindings &&!node.init) {
                        output.exportLiveBindings.push(node.id.name);
                        return ``;
                    }

                    exports.push({ 
                        local: node.id.name, 
                        exported: node.id.name 
                    });
                }
            });
        }
    }

    // export { specifier, specifier }
    if (node.specifiers.length > 0) {
        let dep;
        // export { imported } from './file.js';
        if (node.source) {
            dep = await resolveImport(container, input, output, node, currentpath, generator);
            dep.export = true;
        }

        node.specifiers.forEach(spec => {
            /** @type {{local: string, exported: string}} */
            let _export;

            if (spec.type === 'ExportSpecifier') {
                if (node.source) {
                    _export = {
                        local: spec.exported.name,
                        exported: spec.exported.name
                    };
                } else {
                    _export = {
                        local: spec.local.name,
                        exported: spec.exported.name
                    }
                }

                exports.push(_export);
            }
        });
    }

    if (!node.source) {
        generator.onESMNodeFound(currentpath, node, exports);
    }

    exports.forEach(e => output.exports.push(e));
    
}
@param {PluginContainer} container 
@param {string} input 
@param {Object} output 
@param {ESTree} node 
@param {string} currentpath 
@param {CodeGenerator} generator 
@param {Boolean|String} liveBindings