Skip to content

Commit 55b1e89

Browse files
authored
[INTERNAL] Minor improvements around logging and error reporting (#29)
- all loggers in the lib/lbt modules now use the same hierarchical naming scheme as the other modules - component analyzers no longer fail but return silently when there's no manifest.json (often occurs in test data) - more log outputs of the JSModuleAnalyzer now have been classified as 'verbose' to reduce the noise during build - usages of the Java method 'String.format' that had been missed during migration have been fixed
1 parent 83703bc commit 55b1e89

15 files changed

+40
-31
lines changed

lib/lbt/analyzer/ComponentAnalyzer.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"use strict";
2222

2323
const ModuleName = require("../utils/ModuleName");
24-
const log = require("@ui5/logger").getLogger("ComponentAnalyzer");
24+
const log = require("@ui5/logger").getLogger("lbt:analyzer:ComponentAnalyzer");
2525

2626
// ---------------------------------------------------------------------------------------------------------
2727

@@ -51,9 +51,13 @@ class ComponentAnalyzer {
5151

5252
let manifestName = resource.name.replace(/Component\.js$/, "manifest.json");
5353
try {
54-
let manifestResource = await this._pool.findResource(manifestName);
55-
let fileContent = await manifestResource.buffer();
56-
this._analyzeManifest( JSON.parse(fileContent.toString()), info );
54+
let manifestResource = await this._pool.findResource(manifestName).catch(() => null);
55+
if ( manifestResource ) {
56+
let fileContent = await manifestResource.buffer();
57+
this._analyzeManifest( JSON.parse(fileContent.toString()), info );
58+
} else {
59+
log.verbose("No manifest found for '%s', skipping analysis", resource.name);
60+
}
5761
} catch (err) {
5862
log.error("an error occurred while analyzing component %s (ignored)", resource.name, err);
5963
}

lib/lbt/analyzer/FioriElementsAnalyzer.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ const SapUiDefine = require("../calls/SapUiDefine");
6363
const esprima = require("esprima");
6464
const {Syntax} = esprima;
6565
const {getValue, isMethodCall, isString} = require("../utils/ASTUtils");
66-
const log = require("@ui5/logger").getLogger("FioriElementAnalyzer");
66+
const log = require("@ui5/logger").getLogger("lbt:analyzer:FioriElementAnalyzer");
6767

6868
// ---------------------------------------------------------------------------------------------------------
6969

@@ -95,9 +95,13 @@ class FioriElementsAnalyzer {
9595

9696
let manifestName = resource.name.replace(/Component\.js$/, "manifest.json");
9797
try {
98-
let manifestResource = await this._pool.findResource(manifestName);
99-
let fileContent = await manifestResource.buffer();
100-
await this._analyzeManifest( JSON.parse(fileContent.toString()), info );
98+
let manifestResource = await this._pool.findResource(manifestName).catch(() => null);
99+
if ( manifestResource ) {
100+
let fileContent = await manifestResource.buffer();
101+
await this._analyzeManifest( JSON.parse(fileContent.toString()), info );
102+
} else {
103+
log.verbose("No manifest found for '%s', skipping analysis", resource.name);
104+
}
101105
} catch (err) {
102106
log.error("an error occurred while analyzing template app %s (ignored)", resource.name, err);
103107
}

lib/lbt/analyzer/JSModuleAnalyzer.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const ModuleName = require("../utils/ModuleName");
77
const {Format: ModuleFormat} = require("../resources/ModuleInfo");
88
const UI5ClientConstants = require("../UI5ClientConstants");
99
const {findOwnProperty, getLocation, getPropertyKey, isMethodCall, isString} = require("../utils/ASTUtils");
10-
const log = require("@ui5/logger").getLogger("JSModuleAnalyzer");
10+
const log = require("@ui5/logger").getLogger("lbt:analyzer:JSModuleAnalyzer");
1111

1212
// --------------------------------------------------------------------------------------------------------------------
1313

@@ -386,7 +386,7 @@ class JSModuleAnalyzer {
386386
const nArgs = args.length;
387387

388388
if ( nArgs > 0 && args[0].type == Syntax.OBJECT ) {
389-
log.warn("jQuery.sap.require: cannot evaluate complex require (view/controller)");
389+
log.verbose("jQuery.sap.require: cannot evaluate complex require (view/controller)");
390390
} else {
391391
// UI5 signature with one or many required modules
392392
for (let i = 0; i < nArgs; i++) {
@@ -401,7 +401,7 @@ class JSModuleAnalyzer {
401401
const requiredModuleName2 = ModuleName.fromUI5LegacyName( arg.alternate.value );
402402
info.addDependency(requiredModuleName2, true);
403403
} else {
404-
log.warn("jQuery.sap.require: cannot evaluate dynamic arguments: ", arg);
404+
log.verbose("jQuery.sap.require: cannot evaluate dynamic arguments: ", arg);
405405
info.dynamicDependencies = true;
406406
}
407407
}

lib/lbt/analyzer/SmartTemplateAnalyzer.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const SapUiDefine = require("../calls/SapUiDefine");
3030
const esprima = require("esprima");
3131
const {Syntax} = esprima;
3232
const {getValue, isMethodCall, isString} = require("../utils/ASTUtils");
33-
const log = require("@ui5/logger").getLogger("SmartTemplateAnalyzer");
33+
const log = require("@ui5/logger").getLogger("lbt:analyzer:SmartTemplateAnalyzer");
3434

3535
// ---------------------------------------------------------------------------------------------------------
3636

@@ -54,9 +54,13 @@ class TemplateComponentAnalyzer {
5454

5555
let manifestName = resource.name.replace(/Component\.js$/, "manifest.json");
5656
try {
57-
let manifestResource = await this._pool.findResource(manifestName);
58-
let fileContent = await manifestResource.buffer();
59-
await this._analyzeManifest( JSON.parse(fileContent.toString()), info );
57+
let manifestResource = await this._pool.findResource(manifestName).catch(() => null);
58+
if ( manifestResource ) {
59+
let fileContent = await manifestResource.buffer();
60+
await this._analyzeManifest( JSON.parse(fileContent.toString()), info );
61+
} else {
62+
log.verbose("No manifest found for '%s', skipping analysis", resource.name);
63+
}
6064
} catch (err) {
6165
log.error("an error occurred while analyzing template app %s (ignored)", resource.name, err);
6266
}

lib/lbt/analyzer/XMLCompositeAnalyzer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const {Syntax} = esprima;
55
const SapUiDefine = require("../calls/SapUiDefine");
66
const {getValue, isMethodCall, isString} = require("../utils/ASTUtils");
77
const ModuleName = require("../utils/ModuleName");
8-
const log = require("@ui5/logger").getLogger("XMLCompositeAnalyzer");
8+
const log = require("@ui5/logger").getLogger("lbt:analyzer:XMLCompositeAnalyzer");
99

1010
const CALL_DEFINE = ["define"];
1111
const CALL_SAP_UI_DEFINE = ["sap", "ui", "define"];
@@ -54,7 +54,7 @@ class XMLCompositeAnalyzer {
5454
}
5555

5656
_analyzeXMLCClassDefinition(clazz) {
57-
log.verbose(clazz);
57+
// log.verbose(clazz);
5858
let fragmentName = getValue(clazz, ["fragment"]);
5959
if ( isString(fragmentName) ) {
6060
return fragmentName.value;

lib/lbt/analyzer/XMLTemplateAnalyzer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
const xml2js = require("xml2js");
1414
const ModuleName = require("../utils/ModuleName");
15-
const log = require("@ui5/logger").getLogger("XMLTemplateAnalyzer");
15+
const log = require("@ui5/logger").getLogger("lbt:analyzer:XMLTemplateAnalyzer");
1616

1717
// ---------------------------------------------------------------------------------------------------------
1818

lib/lbt/bundle/AutoSplitter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const uglify = require("uglify-es");
44
const {pd} = require("pretty-data");
55
const ModuleName = require("../utils/ModuleName");
66
const {SectionType} = require("./BundleDefinition");
7-
const log = require("@ui5/logger").getLogger("AutoSplitter");
7+
const log = require("@ui5/logger").getLogger("lbt:bundle:AutoSplitter");
88

99
const copyrightCommentsPattern = /copyright|\(c\)|released under|license|\u00a9/i;
1010
const xmlHtmlPrePattern = /<(?:\w+:)?pre>/;

lib/lbt/bundle/Builder.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const BundleResolver = require("./Resolver");
1616
const BundleSplitter = require("./AutoSplitter");
1717
const {SectionType} = require("./BundleDefinition");
1818
const BundleWriter = require("./BundleWriter");
19-
const log = require("@ui5/logger").getLogger("Builder");
19+
const log = require("@ui5/logger").getLogger("lbt:bundle:Builder");
2020

2121
const copyrightCommentsPattern = /copyright|\(c\)|released under|license|\u00a9/i;
2222
const xmlHtmlPrePattern = /<(?:\w+:)?pre>/;

lib/lbt/bundle/Resolver.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const ResourceFilterList = require("../resources/ResourceFilterList");
99

1010
const {SectionType} = require("./BundleDefinition");
1111
const ResolvedBundleDefinition = require("./ResolvedBundleDefinition");
12-
const log = require("@ui5/logger").getLogger("Resolver");
12+
const log = require("@ui5/logger").getLogger("lbt:bundle:Resolver");
1313

1414
let dependencyTracker;
1515

lib/lbt/graph/dependencyGraph.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22

3-
const log = require("@ui5/logger").getLogger("dependencyGraph");
3+
const log = require("@ui5/logger").getLogger("lbt:graph:dependencyGraph");
44

55
class Node {
66
constructor(name) {

0 commit comments

Comments
 (0)