MCPcopy Create free account
hub / github.com/SAP/ui5-builder / checkAndAddResource

Method checkAndAddResource

lib/lbt/bundle/Resolver.js:111–207  ·  view source on GitHub ↗
(resourceName, depth, msg)

Source from the content-addressed store, hash-verified

109 }
110
111 function checkAndAddResource(resourceName, depth, msg) {
112 // console.log(" checking " + resourceName + " at depth " + depth);
113 let maybeAccepted = true;
114 let done;
115
116 if ( !(resourceName in visitedResources) && (maybeAccepted = isAccepted(resourceName, depth > 0)) ) {
117 // console.log(" accepted: " + resourceName );
118 if ( dependencyTracker != null ) {
119 dependencyTracker.visitDependency(resourceName);
120 }
121
122 // remember that we have seen this module already
123 visitedResources[resourceName] = resourceName;
124
125 done = pool.findResourceWithInfo(resourceName)
126 .catch( (err) => {
127 // if the caller provided an error message, log it
128 if ( msg && !ignoreMissingModules ) {
129 missingModules[resourceName] ??= [];
130 missingModules[resourceName].push(msg);
131 }
132 // return undefined
133 })
134 .then( (resource) => checkForDecomposableBundle(resource) )
135 .then( ({resource, isBundle, decomposable}) => {
136 const dependencyInfo = resource && resource.info;
137 let promises = [];
138
139 // Skip ESM modules — they can't be bundled
140 if (resource?.info?.format === ModuleInfo.Format.ESM) {
141 log.error(
142 `Module ${resourceName} is an ECMAScript Module (ESM), ` +
143 `which is not supported for bundling. ` +
144 `The module will be skipped.`
145 );
146 return;
147 }
148
149 if ( isBundle && !decomposable ) {
150 resource.info.subModules.forEach(
151 (included) => {
152 includedModules.add(included);
153 }
154 );
155 }
156
157 if ( decomposable ) {
158 // bundles are not added, only their embedded modules
159 promises = dependencyInfo.subModules.map( (included) => {
160 return checkAndAddResource(included, depth + 1,
161 `**** error: missing submodule ${included}, included by ${resourceName}`);
162 });
163 } else if ( resource != null ) {
164 // trace.trace(" checking dependencies of " + resource.name );
165 selectedResources[resourceName] = resourceName;
166 selectedResourcesSequence.push(resourceName);
167
168 // trace.info(" collecting %s", resource.name);

Callers

nothing calls this directly

Calls 5

getRendererNameFunction · 0.90
findResourceWithInfoMethod · 0.80
addMethod · 0.80
resolveMethod · 0.80

Tested by

no test coverage detected