Joey Perrott d1ea1f4c7f build: update license headers to reference Google LLC ()
Update the license headers throughout the repository to reference Google LLC
rather than Google Inc, for the required license headers.

PR Close 
2020-05-26 14:26:58 -04:00

39 lines
1.5 KiB
JavaScript

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/**
* Custom resolution plugin for Webpack's `resolve-enhanced` package that is used by
* Madge for resolving imports. The plugin extends the resolution by leveraging the
* runfile resolution and module mappings handled in the module info aspect.
*/
class BazelRunfileResolutionPlugin {
apply(resolver) {
resolver.plugin('module', (request, callback) => {
try {
// Resolve the module through the `require.resolve` method which has been patched
// in the Bazel NodeJS loader to respect runfiles and module mappings. This allows
// Madge to handle module mappings specified in `ts_library` and `ng_module` targets.
const resolvedPath = require.resolve(request.request);
// Update the request to refer to the runfile resolved file path.
resolver.doResolve('resolve', {...request, request: resolvedPath}, null, callback, true);
return;
} catch {
}
// If the file could not be resolved through Bazel's runfile resolution, proceed
// with the default module resolvers.
callback();
});
}
}
// Configures a plugin which ensures that Madge can properly resolve specified
// dependencies through their configured module names.
module.exports = {
resolve: {plugins: [new BazelRunfileResolutionPlugin()]}
};