Need help
carrbrpoa opened this issue · comments
Hello,
How would I "intercept" a dependency built like this?
(function( window, undefined ) {
var Keycloak = function (config) {
if (!(this instanceof Keycloak)) {
return new Keycloak(config);
}
var kc = this;
var adapter;
var refreshQueue = [];
var loginIframe = {
enable: true,
callbackMap: [],
interval: 5
};
kc.init = function (initOptions) {
kc.authenticated = false;
...
I've tried the following, but nothing is logged:
@beforeMethod({
classNamePattern: /^Keycloak/,
methodNamePattern: /^init/
})
static invokeBeforeMethod(meta: Metadata): void {
let message: string = `method: ${meta.method.name}, args: ${meta.method.args.join(', ')}`;
console.log('BEFORE ASPECT: ', meta);
console.log('BEFORE ASPECT message: ', message);
LoaderService.isLoading.next(true);
}
@afterMethod({
classNamePattern: /^Keycloak/,
methodNamePattern: /^init/
})
static invokeAfterMethod(meta: Metadata): void {
let message: string = `method: ${meta.method.name}, args: ${meta.method.args.join(', ')}`;
console.log('AFTER ASPECT: ', meta);
console.log('AFTER ASPECT message: ', message);
LoaderService.isLoading.next(false);
}
PS: I'm in Angular 8 app.
class LoggerAspect {
@beforeMethod({
classes: [Keycloak],
methods: [Keycloak.init]
})
invokeBeforeMethod(meta: Metadata) {
// meta.advisedMetadata == { bar: 42 }
console.log(`Inside of the logger. Called ${meta.className}.${meta.method.name} with args: ${meta.method.args.join(', ')}.`);
}
}
Something like this should work.