Skip to content

Commit

Permalink
fix: ignore console instance on config meta (#211)
Browse files Browse the repository at this point in the history
  • Loading branch information
fengmk2 authored and atian25 committed Apr 24, 2019
1 parent 4e39aee commit 947292c
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 19 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ language: node_js
node_js:
- '8'
- '10'
- '12'
install:
- npm i npminstall && npminstall
script:
Expand Down
7 changes: 6 additions & 1 deletion lib/loader/mixin/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const debug = require('debug')('egg-core:config');
const path = require('path');
const extend = require('extend2');
const assert = require('assert');

const { Console } = require('console');

const SET_CONFIG_META = Symbol('Loader#setConfigMeta');

Expand Down Expand Up @@ -104,6 +104,11 @@ module.exports = {
function setConfig(obj, filepath) {
for (const key of Object.keys(obj)) {
const val = obj[key];
// ignore console
if (key === 'console' && val && typeof val.Console === 'function' && val.Console === Console) {
obj[key] = filepath;
continue;
}
if (val && Object.getPrototypeOf(val) === Object.prototype && Object.keys(val).length > 0) {
setConfig(val, filepath);
continue;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"os": {
"travis": "linux, osx, windows"
},
"version": "8, 10",
"version": "8, 10, 12",
"afterScript": "after_success:\n - npminstall codecov && codecov --disable=gcov -f .nyc_output/*.json",
"license": {
"year": 2016
Expand Down
35 changes: 18 additions & 17 deletions test/loader/mixin/load_config.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,24 +124,25 @@ describe('test/loader/mixin/load_config.test.js', () => {
app.loader.loadPlugin();
app.loader.loadConfig();
const configMeta = app.loader.configMeta;
assert(configMeta.console === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.array === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.buffer === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.ok === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.f === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.empty === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.zero === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.number === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.no === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.date === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.ooooo === utils.getFilepath('configmeta/config/config.js'));

assert(configMeta.urllib.keepAlive === utils.getFilepath('configmeta/config/config.js'));
const configPath = utils.getFilepath('configmeta/config/config.js');
assert(configMeta.console === configPath);
assert(configMeta.array === configPath);
assert(configMeta.buffer === configPath);
assert(configMeta.ok === configPath);
assert(configMeta.f === configPath);
assert(configMeta.empty === configPath);
assert(configMeta.zero === configPath);
assert(configMeta.number === configPath);
assert(configMeta.no === configPath);
assert(configMeta.date === configPath);
assert(configMeta.ooooo === configPath);

assert(configMeta.urllib.keepAlive === configPath);
assert(configMeta.urllib.timeout === utils.getFilepath('egg/config/config.default.js'));
assert(configMeta.urllib.foo === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.urllib.n === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.urllib.dd === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.urllib.httpclient === utils.getFilepath('configmeta/config/config.js'));
assert(configMeta.urllib.foo === configPath);
assert(configMeta.urllib.n === configPath);
assert(configMeta.urllib.dd === configPath);
assert(configMeta.urllib.httpclient === configPath);
// undefined will be ignore
assert(!configMeta.urllib.bar);
});
Expand Down

0 comments on commit 947292c

Please sign in to comment.