├── .gitignore ├── README.md ├── behaviour ├── command │ ├── index.spec.ts │ ├── index.ts │ └── src │ │ ├── command.interface.ts │ │ ├── payment-commands │ │ ├── culqui.command.ts │ │ ├── dto │ │ │ └── credit-card.dto.ts │ │ ├── mercadopago.command.ts │ │ └── payu.command.ts │ │ └── payment-method.handler.ts ├── observer │ ├── index.spec.ts │ ├── index.ts │ └── src │ │ ├── impl │ │ ├── observer.interface.ts │ │ └── subject.abstract.ts │ │ ├── observers │ │ ├── email.observer.ts │ │ └── sms.observer.ts │ │ └── shopping-cart.ts └── strategy │ ├── index.spec.ts │ ├── index.ts │ └── src │ ├── checkout.ts │ ├── interfaces │ ├── payment-card-strategy.interface.ts │ ├── payment-gateway-strategy.interface.ts │ └── payment-strategy.interface.ts │ ├── mastercard.strategy.ts │ ├── paypal.strategy.ts │ └── visa.strategy.ts ├── creational ├── abstract-factory │ ├── index.spec.ts │ ├── index.ts │ └── src │ │ ├── abstract-factory.interface.ts │ │ ├── factories │ │ ├── connector.interface.ts │ │ ├── facebook │ │ │ ├── facebook-connector.ts │ │ │ ├── facebook-factory.ts │ │ │ └── facebook-publisher.ts │ │ ├── linkedin │ │ │ ├── linkedin-connector.ts │ │ │ ├── linkedin-factory.ts │ │ │ └── linkedin-publisher.ts │ │ ├── publisher.interface.ts │ │ └── slack │ │ │ ├── slack-connector.ts │ │ │ ├── slack-factory.ts │ │ │ └── slack-publisher.ts │ │ └── publisher.ts ├── factory │ ├── enums │ │ └── payment-type.ts │ ├── order.spec.ts │ ├── order.ts │ └── src │ │ ├── payment-method-factory.ts │ │ ├── payment-method.interface.ts │ │ └── types │ │ ├── MasterCard.ts │ │ ├── PayPal.ts │ │ └── Visa.ts └── singleton │ ├── config.json │ ├── my-configuration.spec.ts │ └── my-configuration.ts ├── package.json ├── structural ├── adapter │ ├── index.spec.ts │ ├── index.ts │ └── src │ │ ├── providers │ │ ├── facebook-notification.ts │ │ ├── notification.interface.ts │ │ ├── slack-adapter-notification.ts │ │ └── slack-notification.ts │ │ └── services │ │ └── notification.service.ts ├── decorator │ ├── index.spec.ts │ ├── index.ts │ └── src │ │ ├── base-price.ts │ │ ├── customer.ts │ │ ├── decorators │ │ ├── special-price.decorator.ts │ │ └── vip-customer.decorator.ts │ │ ├── interfaces │ │ └── discount.interface.ts │ │ └── product.ts └── proxy │ ├── index.spec.ts │ ├── index.ts │ └── src │ ├── video-provider.interface.ts │ ├── video.proxy.ts │ └── youtube.api.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/README.md -------------------------------------------------------------------------------- /behaviour/command/index.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/index.spec.ts -------------------------------------------------------------------------------- /behaviour/command/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/index.ts -------------------------------------------------------------------------------- /behaviour/command/src/command.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/src/command.interface.ts -------------------------------------------------------------------------------- /behaviour/command/src/payment-commands/culqui.command.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/src/payment-commands/culqui.command.ts -------------------------------------------------------------------------------- /behaviour/command/src/payment-commands/dto/credit-card.dto.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/src/payment-commands/dto/credit-card.dto.ts -------------------------------------------------------------------------------- /behaviour/command/src/payment-commands/mercadopago.command.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/src/payment-commands/mercadopago.command.ts -------------------------------------------------------------------------------- /behaviour/command/src/payment-commands/payu.command.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/src/payment-commands/payu.command.ts -------------------------------------------------------------------------------- /behaviour/command/src/payment-method.handler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/command/src/payment-method.handler.ts -------------------------------------------------------------------------------- /behaviour/observer/index.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/observer/index.spec.ts -------------------------------------------------------------------------------- /behaviour/observer/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/observer/index.ts -------------------------------------------------------------------------------- /behaviour/observer/src/impl/observer.interface.ts: -------------------------------------------------------------------------------- 1 | export interface Observer { 2 | update(subject: any): void; 3 | } -------------------------------------------------------------------------------- /behaviour/observer/src/impl/subject.abstract.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/observer/src/impl/subject.abstract.ts -------------------------------------------------------------------------------- /behaviour/observer/src/observers/email.observer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/observer/src/observers/email.observer.ts -------------------------------------------------------------------------------- /behaviour/observer/src/observers/sms.observer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/observer/src/observers/sms.observer.ts -------------------------------------------------------------------------------- /behaviour/observer/src/shopping-cart.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/observer/src/shopping-cart.ts -------------------------------------------------------------------------------- /behaviour/strategy/index.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/index.spec.ts -------------------------------------------------------------------------------- /behaviour/strategy/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/index.ts -------------------------------------------------------------------------------- /behaviour/strategy/src/checkout.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/src/checkout.ts -------------------------------------------------------------------------------- /behaviour/strategy/src/interfaces/payment-card-strategy.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/src/interfaces/payment-card-strategy.interface.ts -------------------------------------------------------------------------------- /behaviour/strategy/src/interfaces/payment-gateway-strategy.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/src/interfaces/payment-gateway-strategy.interface.ts -------------------------------------------------------------------------------- /behaviour/strategy/src/interfaces/payment-strategy.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/src/interfaces/payment-strategy.interface.ts -------------------------------------------------------------------------------- /behaviour/strategy/src/mastercard.strategy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/src/mastercard.strategy.ts -------------------------------------------------------------------------------- /behaviour/strategy/src/paypal.strategy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/src/paypal.strategy.ts -------------------------------------------------------------------------------- /behaviour/strategy/src/visa.strategy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/behaviour/strategy/src/visa.strategy.ts -------------------------------------------------------------------------------- /creational/abstract-factory/index.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/index.spec.ts -------------------------------------------------------------------------------- /creational/abstract-factory/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/index.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/abstract-factory.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/abstract-factory.interface.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/connector.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/connector.interface.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/facebook/facebook-connector.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/facebook/facebook-connector.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/facebook/facebook-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/facebook/facebook-factory.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/facebook/facebook-publisher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/facebook/facebook-publisher.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/linkedin/linkedin-connector.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/linkedin/linkedin-connector.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/linkedin/linkedin-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/linkedin/linkedin-factory.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/linkedin/linkedin-publisher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/linkedin/linkedin-publisher.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/publisher.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/publisher.interface.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/slack/slack-connector.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/slack/slack-connector.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/slack/slack-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/slack/slack-factory.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/factories/slack/slack-publisher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/factories/slack/slack-publisher.ts -------------------------------------------------------------------------------- /creational/abstract-factory/src/publisher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/abstract-factory/src/publisher.ts -------------------------------------------------------------------------------- /creational/factory/enums/payment-type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/factory/enums/payment-type.ts -------------------------------------------------------------------------------- /creational/factory/order.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/factory/order.spec.ts -------------------------------------------------------------------------------- /creational/factory/order.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/factory/order.ts -------------------------------------------------------------------------------- /creational/factory/src/payment-method-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/factory/src/payment-method-factory.ts -------------------------------------------------------------------------------- /creational/factory/src/payment-method.interface.ts: -------------------------------------------------------------------------------- 1 | export default interface IPaymentMethod { 2 | comission:number; 3 | } -------------------------------------------------------------------------------- /creational/factory/src/types/MasterCard.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/factory/src/types/MasterCard.ts -------------------------------------------------------------------------------- /creational/factory/src/types/PayPal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/factory/src/types/PayPal.ts -------------------------------------------------------------------------------- /creational/factory/src/types/Visa.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/factory/src/types/Visa.ts -------------------------------------------------------------------------------- /creational/singleton/config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/singleton/config.json -------------------------------------------------------------------------------- /creational/singleton/my-configuration.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/singleton/my-configuration.spec.ts -------------------------------------------------------------------------------- /creational/singleton/my-configuration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/creational/singleton/my-configuration.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/package.json -------------------------------------------------------------------------------- /structural/adapter/index.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/adapter/index.spec.ts -------------------------------------------------------------------------------- /structural/adapter/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/adapter/index.ts -------------------------------------------------------------------------------- /structural/adapter/src/providers/facebook-notification.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/adapter/src/providers/facebook-notification.ts -------------------------------------------------------------------------------- /structural/adapter/src/providers/notification.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/adapter/src/providers/notification.interface.ts -------------------------------------------------------------------------------- /structural/adapter/src/providers/slack-adapter-notification.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/adapter/src/providers/slack-adapter-notification.ts -------------------------------------------------------------------------------- /structural/adapter/src/providers/slack-notification.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/adapter/src/providers/slack-notification.ts -------------------------------------------------------------------------------- /structural/adapter/src/services/notification.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/adapter/src/services/notification.service.ts -------------------------------------------------------------------------------- /structural/decorator/index.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/index.spec.ts -------------------------------------------------------------------------------- /structural/decorator/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/index.ts -------------------------------------------------------------------------------- /structural/decorator/src/base-price.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/src/base-price.ts -------------------------------------------------------------------------------- /structural/decorator/src/customer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/src/customer.ts -------------------------------------------------------------------------------- /structural/decorator/src/decorators/special-price.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/src/decorators/special-price.decorator.ts -------------------------------------------------------------------------------- /structural/decorator/src/decorators/vip-customer.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/src/decorators/vip-customer.decorator.ts -------------------------------------------------------------------------------- /structural/decorator/src/interfaces/discount.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/src/interfaces/discount.interface.ts -------------------------------------------------------------------------------- /structural/decorator/src/product.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/decorator/src/product.ts -------------------------------------------------------------------------------- /structural/proxy/index.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/proxy/index.spec.ts -------------------------------------------------------------------------------- /structural/proxy/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/proxy/index.ts -------------------------------------------------------------------------------- /structural/proxy/src/video-provider.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/proxy/src/video-provider.interface.ts -------------------------------------------------------------------------------- /structural/proxy/src/video.proxy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/proxy/src/video.proxy.ts -------------------------------------------------------------------------------- /structural/proxy/src/youtube.api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/structural/proxy/src/youtube.api.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Anexsoft/Design-Patterns-TypeScript/HEAD/tsconfig.json --------------------------------------------------------------------------------