6.0.48 • Published 2 years ago

@tsdi/aop v6.0.48

Weekly downloads
94
License
MIT
Repository
github
Last release
2 years ago

packaged @tsdi/aop

This repo is for distribution on npm. The source for this module is in the main repo.

@tsdi/aop is AOP base on Ioc container, via @tsdi/core, typescript decorator.

Install

npm install @tsdi/aop
import { AopModule } from '@tsdi/aop';
// in server
import { ContainerBuilder } from '@tsdi/platform-server'
// in browser
import { ContainerBuilder } from '@tsdi/platform-browser'

let builder = new ContainerBuilder();

let container = build.create();

container.use(AopModule);

Documentation

AOP

It's a dynamic aop base on ioc.

define a Aspect class, must with decorator:

  • @Aspect

define advice decorator have

  • @Before(matchstring|RegExp)

  • @After(matchstring|RegExp)

  • @Around(matchstring|RegExp)

  • @AfterThrowing(matchstring|RegExp)

  • @AfterReturning(matchstring|RegExp)

  • @Pointcut(matchstring|RegExp)

see simples

import { TypeMetadata, IClassMethodDecorator, createClassMethodDecorator} from '@tsdi/core';

import { Joinpoint, Around, Aspect , Pointcut } from '@tsdi/aop';

export const Authorization: IClassMethodDecorator<TypeMetadata> = createClassMethodDecorator<TypeMetadata>('Authorization');

// auth check simple.
@Aspect
export class AuthAspect {
    // pointcut for method has @Authorization decorator.
    @Pointcut('@annotation(Authorization)', 'authAnnotation')
    auth(joinPoint: Joinpoint, authAnnotation:MethodMetadata[]) {
        console.log('aspect annotation Before log, method name:', joinPoint.fullName, ' state:', joinPoint.state, ' returning:', joinPoint.returning, ' throwing:', joinPoint.throwing);
    }
}

@Aspect
export class SecrityAspect {
    // before AuthAspect.auth check some.
    @Before('execution(AuthAspect.auth)', 'authAnnotation')
    sessionCheck(authAnnotation:MethodMetadata[],joinPoint: Joinpoint) {
        console.log('aspect execution check session secrity Before AnnotationAspect.auth, method name:', joinPoint.fullName, ' state:', joinPoint.state, ' returning:', joinPoint.returning, ' throwing:', joinPoint.throwing);
    }
}

// Log simple
@Singleton
@Aspect
export class DebugLog {

    @Before(/\w+Controller.\w+$/)
    // @Before('execution(*Controller.*)')
    Beforlog(joinPoint: Joinpoint) {
        console.log('aspect Before log:', joinPoint.fullName);
    }

    @Around('execution(*Controller.*)')
    log(joinPoint: Joinpoint) {
        console.log('aspect Around log, method name:', joinPoint.fullName, ' state:', joinPoint.state, ' Args:', joinPoint.args, ' returning:', joinPoint.returning, ' throwing:', joinPoint.throwing);
    }
}

Documentation

Documentation is available on the

packages

@tsdi/cli @tsdi/ioc @tsdi/aop @tsdi/core @tsdi/boot @tsdi/components @tsdi/compiler @tsdi/activities @tsdi/pack @tsdi/typeorm-adapter @tsdi/unit @tsdi/unit-console

License

MIT © Houjun

6.0.48

2 years ago

6.0.47

2 years ago

6.0.46

2 years ago

6.0.45

2 years ago

6.0.44

3 years ago

6.0.43

4 years ago

6.0.42

4 years ago

6.0.41

4 years ago

6.0.40

4 years ago

6.0.39

4 years ago

6.0.38

4 years ago

6.0.37

5 years ago

6.0.36

5 years ago

6.0.35

5 years ago

6.0.33

5 years ago

6.0.32

5 years ago

6.0.31

5 years ago

6.0.30

5 years ago

6.0.29

5 years ago

6.0.28

5 years ago

6.0.27

5 years ago

6.0.26

5 years ago

6.0.25

5 years ago

6.0.24

5 years ago

6.0.23

5 years ago

6.0.22

5 years ago

6.0.21

5 years ago

6.0.20

5 years ago

6.0.19

5 years ago

6.0.18

5 years ago

6.0.16

5 years ago

6.0.17

5 years ago

6.0.15

5 years ago

6.0.13

5 years ago

6.0.12

5 years ago

6.0.11

5 years ago

6.0.10

5 years ago

6.0.9

5 years ago

6.0.8

5 years ago

6.0.7

5 years ago

6.0.6

5 years ago

6.0.4

5 years ago

6.0.3

5 years ago

6.0.2

5 years ago

6.0.1

5 years ago

6.0.0-beta12

5 years ago

6.0.0

5 years ago

6.0.0-beta11

5 years ago

6.0.0-beta9

5 years ago

6.0.0-beta8

5 years ago

6.0.0-beta7

5 years ago

6.0.0-beta6

5 years ago

6.0.0-beta5

5 years ago

6.0.0-beta4

5 years ago

6.0.0-beta3

5 years ago

6.0.0-beta2

5 years ago

6.0.0-beta1

5 years ago

5.3.13

6 years ago

5.3.12

6 years ago

5.3.11

6 years ago

5.3.10

6 years ago

5.3.9

6 years ago

5.3.8

6 years ago

5.3.7

6 years ago

5.3.6

6 years ago

5.3.5

6 years ago

5.3.3

6 years ago

5.3.2

6 years ago

5.3.1

6 years ago

5.3.0

6 years ago

5.3.0-beta4

6 years ago

5.3.0-beta3

6 years ago

5.3.0-beta2

6 years ago

5.3.0-beta1

6 years ago

5.3.0-beta

6 years ago

5.2.16

6 years ago

5.2.15

6 years ago

5.2.14

6 years ago

5.2.13

6 years ago

5.2.12

6 years ago

5.2.11

6 years ago

5.2.10

6 years ago

5.2.9

6 years ago

5.2.8

6 years ago

5.2.7

6 years ago

5.2.6

6 years ago

5.2.5

6 years ago

5.2.4

6 years ago

5.2.3

6 years ago

5.2.2

6 years ago

5.2.1

6 years ago

5.2.0

6 years ago

5.1.19

6 years ago

5.1.18

6 years ago

5.1.17

6 years ago

5.1.16

6 years ago

5.1.15

6 years ago

5.1.14

6 years ago

5.1.13

6 years ago

5.1.12

6 years ago

5.1.11

6 years ago

5.1.10

6 years ago

5.1.9

6 years ago

5.1.8

6 years ago

5.1.7

6 years ago

5.1.6

6 years ago

5.1.5

6 years ago

5.1.4

6 years ago

5.1.3

6 years ago

5.1.2

6 years ago

5.1.1

6 years ago

5.1.0

6 years ago

5.0.25

6 years ago

5.0.24

6 years ago

5.0.23

6 years ago

5.0.22

6 years ago

5.0.21

6 years ago

5.0.20

6 years ago

5.0.19

6 years ago

5.0.18

6 years ago

5.0.18-beta

6 years ago

5.0.1-8.beta

6 years ago

5.0.15

6 years ago

5.0.13

6 years ago

5.0.12

6 years ago

5.0.11

6 years ago

5.0.10

6 years ago

5.0.8

6 years ago

5.0.7

6 years ago

5.0.6

6 years ago

5.0.5

6 years ago

5.0.4

6 years ago

5.0.3

6 years ago

5.0.2

6 years ago

5.0.1

6 years ago

5.0.0

6 years ago

5.0.0-beta25

6 years ago

5.0.0-beta24

6 years ago

5.0.0-beta23

6 years ago

5.0.0-beta22

6 years ago

5.0.0-beta21

6 years ago

5.0.0-beta20

6 years ago

5.0.0-beta19

6 years ago

5.0.0-beta18

6 years ago

5.0.0-beta17

6 years ago

5.0.0-beta16

6 years ago

5.0.0-beta15

6 years ago

5.0.0-beta14

6 years ago

5.0.0-beta13

6 years ago

5.0.0-beta12

6 years ago

5.0.0-beta11

6 years ago

5.0.0-beta10

6 years ago

5.0.0-beta9

6 years ago

5.0.0-beta8

6 years ago

5.0.0-beta7

6 years ago

5.0.0-beta6

6 years ago

5.0.0-beta5

6 years ago

5.0.0-beta4

6 years ago

5.0.0-beta3

6 years ago

5.0.0-beta2

6 years ago

5.0.0-beta1

6 years ago

5.0.0-beta

6 years ago

4.0.5

6 years ago