senecajs / seneca

A microservices toolkit for Node.js.
http://senecajs.org
MIT License
3.95k stars 314 forks source link

how to handle this properly? #800

Closed github-actions[bot] closed 4 years ago

github-actions[bot] commented 4 years ago

how to handle this properly?

https://github.com/senecajs/seneca/blob/8e06e02bcd9dbbbf05aa31921edb3285d7d1eb04/lib/use.js#L156

            seneca.private$.plugins[plugin.fullname] = plugin;
            let meta = {};
            if ('function' === typeof plugin.define.preload) {
                meta = plugin.define.preload.call(seneca, plugin) || {};
            }
            let name = meta.name || plugin.name;
            let fullname = Common.make_plugin_key(name, plugin.tag);
            return {
                op: 'merge',
                out: {
                    meta,
                    plugin: {
                        name,
                        fullname
                    }
                }
            };
        },
        exports: (spec) => {
            let seneca = spec.ctx.seneca;
            let plugin = spec.data.plugin;
            let meta = spec.data.meta;
            // TODO: how to handle this properly?
            seneca.private$.exports[plugin.name] = meta.export || plugin;
            seneca.private$.exports[plugin.fullname] = meta.export || plugin;
            let exportmap = meta.exportmap || meta.exports || {};
            Object.keys(exportmap).forEach(k => {
                let v = exportmap[k];
                if (void 0 !== v) {
                    let exportname = plugin.fullname + '/' + k;
                    seneca.private$.exports[exportname] = v;
                }
            });
        },
        'legacy.extend': (spec) => {
            let seneca = spec.ctx.seneca;
            let plugin = spec.data.plugin;
            let meta = spec.data.meta;
            if ('object' === typeof meta.extend) {
                if ('function' === typeof meta.extend.action_modifier) {
                    seneca.private$.action_modifiers.push(meta.extend.action_modifier);
                }
                // FIX: needs to use logging.load_logger
                if ('function' === typeof meta.extend.logger) {
                    if (!meta.extend.logger.replace &&
                        'function' === typeof seneca.private$.logger.add) {
                        seneca.private$.logger.add(meta.extend.logger);
                    }
                    else {
                        seneca.private$.logger = meta.extend.logger;
                    }
                }
            }
            seneca.register(plugin, meta);
        }
    };
}
ndex e4c8cca3..6709e607 100644
++ b/lib/use.js.map
github-actions[bot] commented 4 years ago

Closed in 1e5940850c4f26e534f56c58d8dd0333caabcaf3

github-actions[bot] commented 4 years ago

Closed in 1e5940850c4f26e534f56c58d8dd0333caabcaf3

github-actions[bot] commented 4 years ago

Closed in 1e5940850c4f26e534f56c58d8dd0333caabcaf3

github-actions[bot] commented 4 years ago

Closed in 1e5940850c4f26e534f56c58d8dd0333caabcaf3