senecajs / seneca

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

remove unnecessary vars+code #818

Closed github-actions[bot] closed 4 years ago

github-actions[bot] commented 4 years ago

remove unnecessary vars+code

https://github.com/senecajs/seneca/blob/d26612c21386cb9c74ea41de092ad64a517d87c4/lib/use.js#L552

}
function make_intern() {
    return {
        define_plugin: function (delegate, plugin, options) {
            // legacy plugins
            if (plugin.define.length > 1) {
                let fnstr = plugin.define.toString();
                plugin.init_func_sig = (fnstr.match(/^(.*)\r*\n/) || [])[1];
                let ex = delegate.error('unsupported_legacy_plugin', plugin);
                throw ex;
            }
            if (options.errors) {
                plugin.eraro = Eraro({
                    package: 'seneca',
                    msgmap: options.errors,
                    override: true,
                });
            }
            var meta;
            try {
                meta = plugin.define.call(delegate, options) || {};
            }
            catch (e) {
                Common.wrap_error(e, 'plugin_define_failed', {
                    fullname: plugin.fullname,
                    message: (e.message + (' (' + e.stack.match(/\n.*?\n/)).replace(/\n.*\//g, '')).replace(/\n/g, ''),
                    options: options,
                    repo: plugin.repo ? ' ' + plugin.repo + '/issues' : '',
                });
            }
            meta = 'string' === typeof meta ? { name: meta } : meta;
            meta.options = meta.options || options;
            var updated_options = {};
            updated_options[plugin.fullname] = meta.options;
            delegate.options(updated_options);
            return meta;
        },
        // copied from https://github.com/rjrodger/optioner
        // TODO: remove unnecessary vars+code
        prepare_spec: function (Joi, spec, opts, ctxt) {
            if (Joi.isSchema(spec)) {
                return spec;
            }
            var joiobj = Joi.object();
            if (opts.allow_unknown) {
                joiobj = joiobj.unknown();
            }
            var joi = intern.walk(Joi, joiobj, spec, '', opts, ctxt, function (valspec) {
                if (valspec && Joi.isSchema(valspec)) {
                    return valspec;
                }
                else {
                    var typecheck = typeof valspec;
                    //typecheck = 'function' === typecheck ? 'func' : typecheck
                    if (opts.must_match_literals) {
                        return Joi.any()
                            .required()
                            .valid(valspec);
                    }
                    else {
                        if (void 0 === valspec) {
                            return Joi.any().optional();
                        }
                        else if (null == valspec) {
                            return Joi.any().default(null);
                        }
                        else if ('number' === typecheck && Number.isInteger(valspec)) {
                            return Joi.number()
                                .integer()
                                .default(valspec);
                        }
                        else if ('string' === typecheck) {
                            return Joi.string()
                                .empty('')
                                .default(() => valspec);
                        }
                        else {
                            return Joi[typecheck]().default(() => valspec);
                        }
                    }
                }
            });
            return joi;
        },
        // copied from https://github.com/rjrodger/optioner
        // TODO: remove unnecessary vars+code
        walk: function (Joi, start_joiobj, obj, path, opts, ctxt, mod) {
            if (Array.isArray(obj)) {
                ctxt.arrpaths.push(path);
            }
            let joiobj = start_joiobj;
            for (var p in obj) {
                var v = obj[p];
                var t = typeof v;
                var kv = {};
                if (null != v && !Joi.isSchema(v) && 'object' === t) {
                    var np = '' === path ? p : path + '.' + p;
                    joiobj = joiobj.object().default();
                    if (opts.allow_unknown) {
                        joiobj = joiobj.unknown();
                    }
                    kv[p] = intern.walk(Joi, joiobj, v, np, opts, ctxt, mod);
                }
                else {
                    kv[p] = mod(v);
                }
                joiobj = joiobj.keys(kv);
            }
            return joiobj;
        },
    };
}
//# sourceMappingURL=use.js.map
 No newline at end of file
ndex 726ac723..132ba41e 100644
++ b/lib/use.js.map