├── .gitignore ├── README.md ├── lesson1-functional └── index.ts ├── lesson2-oop └── index.ts ├── lesson3-projections-per-stream └── index.ts ├── lesson4-testing └── index.ts ├── lesson5-nestjs-mvc ├── .prettierrc ├── README.md ├── nest-cli.json ├── package-lock.json ├── package.json ├── src │ ├── app.controller.spec.ts │ ├── app.controller.ts │ ├── app.module.ts │ ├── app.service.ts │ ├── main.ts │ └── purchase │ │ ├── projections │ │ ├── all.ts │ │ └── avg-cost-report.ts │ │ ├── purchase.controller.spec.ts │ │ ├── purchase.controller.ts │ │ └── types.ts ├── test │ ├── app.e2e-spec.ts │ └── jest-e2e.json ├── tsconfig.build.json └── tsconfig.json ├── lesson6-nestjs-advanced ├── .prettierrc ├── README.md ├── nest-cli.json ├── package-lock.json ├── package.json ├── src │ ├── app.module.ts │ ├── app.service.ts │ ├── common │ │ ├── basic-types.ts │ │ ├── domain-event.ts │ │ └── event-store │ │ │ ├── event-store.service.spec.ts │ │ │ ├── event-store.service.ts │ │ │ └── meta.interface.ts │ ├── main.ts │ └── purchase │ │ ├── commands │ │ ├── make-purchase │ │ │ ├── make-purchase.command.ts │ │ │ └── make-purchase.handler.ts │ │ └── refund │ │ │ ├── refund-purchase-handler.ts │ │ │ └── refund-purchase.command.ts │ │ ├── domain-events.ts │ │ ├── projections │ │ ├── all.ts │ │ └── avg-cost-report.ts │ │ └── purchase.controller.ts ├── test │ ├── app.e2e-spec.ts │ └── jest-e2e.json ├── tsconfig.build.json ├── tsconfig.json └── yarn.lock ├── main.ts ├── package.json └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | .idea 4 | *.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/README.md -------------------------------------------------------------------------------- /lesson1-functional/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson1-functional/index.ts -------------------------------------------------------------------------------- /lesson2-oop/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson2-oop/index.ts -------------------------------------------------------------------------------- /lesson3-projections-per-stream/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson3-projections-per-stream/index.ts -------------------------------------------------------------------------------- /lesson4-testing/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson4-testing/index.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/.prettierrc -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/README.md -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/nest-cli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/nest-cli.json -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/package-lock.json -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/package.json -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/app.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/app.controller.spec.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/app.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/app.controller.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/app.module.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/app.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/app.service.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/main.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/purchase/projections/all.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/purchase/projections/all.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/purchase/projections/avg-cost-report.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/purchase/projections/avg-cost-report.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/purchase/purchase.controller.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/purchase/purchase.controller.spec.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/purchase/purchase.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/purchase/purchase.controller.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/src/purchase/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/src/purchase/types.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/test/app.e2e-spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/test/app.e2e-spec.ts -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/test/jest-e2e.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/test/jest-e2e.json -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/tsconfig.build.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/tsconfig.build.json -------------------------------------------------------------------------------- /lesson5-nestjs-mvc/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson5-nestjs-mvc/tsconfig.json -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/.prettierrc -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/README.md -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/nest-cli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/nest-cli.json -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/package-lock.json -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/package.json -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/app.module.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/app.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/app.service.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/common/basic-types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/common/basic-types.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/common/domain-event.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/common/domain-event.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/common/event-store/event-store.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/common/event-store/event-store.service.spec.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/common/event-store/event-store.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/common/event-store/event-store.service.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/common/event-store/meta.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/common/event-store/meta.interface.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/main.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/commands/make-purchase/make-purchase.command.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/commands/make-purchase/make-purchase.command.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/commands/make-purchase/make-purchase.handler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/commands/make-purchase/make-purchase.handler.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/commands/refund/refund-purchase-handler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/commands/refund/refund-purchase-handler.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/commands/refund/refund-purchase.command.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/commands/refund/refund-purchase.command.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/domain-events.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/domain-events.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/projections/all.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/projections/all.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/projections/avg-cost-report.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/projections/avg-cost-report.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/src/purchase/purchase.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/src/purchase/purchase.controller.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/test/app.e2e-spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/test/app.e2e-spec.ts -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/test/jest-e2e.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/test/jest-e2e.json -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/tsconfig.build.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/tsconfig.build.json -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/tsconfig.json -------------------------------------------------------------------------------- /lesson6-nestjs-advanced/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/lesson6-nestjs-advanced/yarn.lock -------------------------------------------------------------------------------- /main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/main.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/package.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jamesmh/event-sourcing-typescript-lessons/HEAD/tsconfig.json --------------------------------------------------------------------------------