All files / common/src/annotation/factory/hooks jit-canvas.hook.ts

0% Statements 0/13
0% Branches 0/1
0% Functions 0/4
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35                                                                     
import { assert, ConcreteConstructorType } from '@aspectjs/common/utils';
import { AnnotationKind } from '../../annotation.types';
import { DecoratorHook } from '../decorator-hook.type';
 
/**
 * TODO: remove
 * @internal
 */
export const SETUP_JIT_CANVAS_JOOK: DecoratorHook = {
  name: 'ajs::hook.jit-canvas',
  order: -120,
  createDecorator: (_reflect, context) => {
    return (...targetArgs: any[]) => {
      Iif (context.target.kind === AnnotationKind.CLASS) {
        assert(targetArgs.length === 1);
        assert(typeof targetArgs[0] === 'function');
        const decoree = function XXX(this: any, ...args: any[]) {
          const compiledSymbol = context.target.getMetadata(
            'ajs.jit-aop-decoree',
            () => {
              return context.target.proto
                .constructor as ConcreteConstructorType;
            },
          );
          return new compiledSymbol(...args);
        };
 
        return decoree;
      }
 
      return;
    };
  },
};