From e2ff90b257f1e3745c900f7e3c84c78cc14e7c52 Mon Sep 17 00:00:00 2001 From: SachaCR Date: Sat, 30 Apr 2022 07:36:36 +0200 Subject: [PATCH] Sync version in package and doc --- docs/features-report.html | 36 -- docs/index.html | 2 +- docs/interfaces/Command.html | 4 +- docs/interfaces/Context.html | 4 +- docs/interfaces/DyalApp.html | 10 +- docs/interfaces/Query.html | 4 +- docs/interfaces/UseCase.html | 4 +- docs/interfaces/UseCaseBus.html | 2 +- docs/jest/lcov-report/base.css | 224 ------- docs/jest/lcov-report/block-navigation.js | 87 --- .../lcov-report/composeMiddlewares.ts.html | 206 ------- docs/jest/lcov-report/createApp.ts.html | 560 ------------------ docs/jest/lcov-report/favicon.png | Bin 540 -> 0 bytes docs/jest/lcov-report/index.html | 162 ----- docs/jest/lcov-report/index.ts.html | 95 --- docs/jest/lcov-report/prettify.css | 1 - docs/jest/lcov-report/prettify.js | 2 - docs/jest/lcov-report/sort-arrow-sprite.png | Bin 209 -> 0 bytes docs/jest/lcov-report/sorter.js | 196 ------ docs/jest/lcov-report/useCaseBus.ts.html | 272 --------- docs/jest/lcov.info | 133 ----- docs/modules.html | 6 +- package.json | 2 +- 23 files changed, 19 insertions(+), 1993 deletions(-) delete mode 100644 docs/features-report.html delete mode 100644 docs/jest/lcov-report/base.css delete mode 100644 docs/jest/lcov-report/block-navigation.js delete mode 100644 docs/jest/lcov-report/composeMiddlewares.ts.html delete mode 100644 docs/jest/lcov-report/createApp.ts.html delete mode 100644 docs/jest/lcov-report/favicon.png delete mode 100644 docs/jest/lcov-report/index.html delete mode 100644 docs/jest/lcov-report/index.ts.html delete mode 100644 docs/jest/lcov-report/prettify.css delete mode 100644 docs/jest/lcov-report/prettify.js delete mode 100644 docs/jest/lcov-report/sort-arrow-sprite.png delete mode 100644 docs/jest/lcov-report/sorter.js delete mode 100644 docs/jest/lcov-report/useCaseBus.ts.html delete mode 100644 docs/jest/lcov.info diff --git a/docs/features-report.html b/docs/features-report.html deleted file mode 100644 index 8e8edae..0000000 --- a/docs/features-report.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - Cucumber - - - - - -
-
- - - - diff --git a/docs/index.html b/docs/index.html index 10da08d..b81a1c4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,4 @@ -DYAL - v1.0.7
Options
All
  • Public
  • Public/Protected
  • All
Menu

DYAL - v1.0.7

+DYAL - v1.0.9
Options
All
  • Public
  • Public/Protected
  • All
Menu

DYAL - v1.0.9

DYAL

diff --git a/docs/interfaces/Command.html b/docs/interfaces/Command.html index 4a589a9..15e0dd8 100644 --- a/docs/interfaces/Command.html +++ b/docs/interfaces/Command.html @@ -1,5 +1,5 @@ -Command | DYAL - v1.0.7
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Command

+Command | DYAL - v1.0.9
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Command

The Command interface should be used to implement your command use case types.

example
export interface CountCommand extends Command {
name: 'CountCommand';
payload: { count: number };
}
-

Hierarchy

Index

Properties

Properties

name: string
payload: any
type: "command"

Legend

  • Property
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +

Hierarchy

Index

Properties

Properties

name: any
payload: any
type: "command"

Legend

  • Property
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/Context.html b/docs/interfaces/Context.html index dbe47ba..2326d41 100644 --- a/docs/interfaces/Context.html +++ b/docs/interfaces/Context.html @@ -1,4 +1,4 @@ -Context | DYAL - v1.0.7
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Context<D, U, R>

+Context | DYAL - v1.0.9
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface Context<D, U, R>

This represent the context that will be passed along the middleware stack

Type parameters

  • D

    Dependencies of your application

    @@ -6,4 +6,4 @@

    The usecase to execute. It can be a Command or a Query.

  • R

    The command's result

    -

Hierarchy

  • Context

Index

Properties

dependencies: D
result?: R
useCase: U

Legend

  • Property
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +

Hierarchy

  • Context

Index

Properties

dependencies: D
result?: R
useCase: U

Legend

  • Property
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/DyalApp.html b/docs/interfaces/DyalApp.html index 6959221..a9d7a21 100644 --- a/docs/interfaces/DyalApp.html +++ b/docs/interfaces/DyalApp.html @@ -1,22 +1,22 @@ -DyalApp | DYAL - v1.0.7
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface DyalApp

+DyalApp | DYAL - v1.0.9
Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface DyalApp

A DYAL app

example
const app = createApp(dependencies);
const commandBus: CommandBus = createCommandBus();
commandBus.register('CountCommand', countCommandHandler);
app.on('command').use(commandBus.middleware);

export interface CountCommandResult {
total: number;
}

const countCommand: CountCommand = {
type: 'command',
name: 'CountCommand',
payload: {
count: 5,
},
};

const result = await app.execute<CountCommandResult>(countCommand);
-

Hierarchy

  • DyalApp

Index

Methods

  • execute<R>(useCase: UseCase): Promise<R>
  • example
    const app = createApp(dependencies);
    const commandBus: CommandBus = createCommandBus();
    commandBus.register('CountCommand', countCommandHandler);
    app.on('command').use(commandBus.middleware);

    export interface CountCommandResult {
    total: number;
    }

    const countCommand: CountCommand = {
    type: 'command',
    name: 'CountCommand',
    payload: {
    count: 5,
    },
    };

    const result = await app.execute<CountCommandResult>(countCommand); +

Hierarchy

  • DyalApp

Index

Methods

  • execute<R>(useCase: UseCase): Promise<R>
  • example
    const app = createApp(dependencies);
    const commandBus: CommandBus = createCommandBus();
    commandBus.register('CountCommand', countCommandHandler);
    app.on('command').use(commandBus.middleware);

    export interface CountCommandResult {
    total: number;
    }

    const countCommand: CountCommand = {
    type: 'command',
    name: 'CountCommand',
    payload: {
    count: 5,
    },
    };

    const result = await app.execute<CountCommandResult>(countCommand);

    Type parameters

    • R

    Parameters

    • useCase: UseCase

      The useCase to execute.

    Returns Promise<R>

    R

    -
  • example
    app.on('command').use(commandHandlerMiddleware);
    +
  • example
    app.on('command').use(commandHandlerMiddleware);
     

    Parameters

    • target: UseCaseType

      It's the kind of use case your middleware will be called for. Can be query, command or all

      -

    Returns { use: any }

Returns { use: any }

  • use:function
    • example
      app.on('all').use(middleware);
       

      Parameters

      • middleware: Middleware

        middleware to add to the app stack

      Returns void

      void

      -
  • example
    app.use(middleware);
     

    Parameters

    • middleware: Middleware

      middleware to add to the app stack

      diff --git a/docs/interfaces/Query.html b/docs/interfaces/Query.html index ed8a759..29236b4 100644 --- a/docs/interfaces/Query.html +++ b/docs/interfaces/Query.html @@ -1,5 +1,5 @@ -Query | DYAL - v1.0.7
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Interface Query

      +Query | DYAL - v1.0.9
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Interface Query

      The Query interface should be used to implement your query use case types.

      example
      export interface GetCountQuery extends Query {
      name: 'GetCountQuery';
      payload: {};
      }
      -

      Hierarchy

      Index

      Properties

      Properties

      name: string
      payload: any
      type: "query"

      Legend

      • Property
      • Method

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file +

      Hierarchy

      Index

      Properties

      Properties

      name: any
      payload: any
      type: "query"

      Legend

      • Property
      • Method

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/interfaces/UseCase.html b/docs/interfaces/UseCase.html index d17da8e..bedeee7 100644 --- a/docs/interfaces/UseCase.html +++ b/docs/interfaces/UseCase.html @@ -1,3 +1,3 @@ -UseCase | DYAL - v1.0.7
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Interface UseCase

      +UseCase | DYAL - v1.0.9
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Interface UseCase

      A UseCase is either a Command or a Query

      -

      Hierarchy

      Index

      Properties

      Properties

      name: string
      payload: any
      type: "query" | "command"

      Legend

      • Property
      • Method

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file +

      Hierarchy

      Index

      Properties

      Properties

      name: any
      payload: any
      type: "query" | "command"

      Legend

      • Property
      • Method

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/interfaces/UseCaseBus.html b/docs/interfaces/UseCaseBus.html index 6b2b002..7612bc5 100644 --- a/docs/interfaces/UseCaseBus.html +++ b/docs/interfaces/UseCaseBus.html @@ -1 +1 @@ -UseCaseBus | DYAL - v1.0.7
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Interface UseCaseBus<U>

      Type parameters

      Hierarchy

      • UseCaseBus

      Index

      Methods

      • middleware<D, R>(context: Context<D, U, R>, next: Next): Promise<void>
      • register<D, R>(useCaseName: string, handler: (context: Context<D, U, R>) => Promise<R>): void
      • Type parameters

        • D

        • R

        Parameters

        • useCaseName: string
        • handler: (context: Context<D, U, R>) => Promise<R>
            • (context: Context<D, U, R>): Promise<R>
            • Parameters

              Returns Promise<R>

        Returns void

      Legend

      • Property
      • Method

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file +UseCaseBus | DYAL - v1.0.9
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Interface UseCaseBus<U>

      Type parameters

      Hierarchy

      • UseCaseBus

      Index

      Methods

      • middleware<D, R>(context: Context<D, U, R>, next: Next): Promise<void>
      • register<D, R>(useCaseName: string, handler: (context: Context<D, U, R>) => Promise<R>): void
      • Type parameters

        • D

        • R

        Parameters

        • useCaseName: string
        • handler: (context: Context<D, U, R>) => Promise<R>
            • (context: Context<D, U, R>): Promise<R>
            • Parameters

              Returns Promise<R>

        Returns void

      Legend

      • Property
      • Method

      Settings

      Theme

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/jest/lcov-report/base.css b/docs/jest/lcov-report/base.css deleted file mode 100644 index f418035..0000000 --- a/docs/jest/lcov-report/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/docs/jest/lcov-report/block-navigation.js b/docs/jest/lcov-report/block-navigation.js deleted file mode 100644 index cc12130..0000000 --- a/docs/jest/lcov-report/block-navigation.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/docs/jest/lcov-report/composeMiddlewares.ts.html b/docs/jest/lcov-report/composeMiddlewares.ts.html deleted file mode 100644 index 0ac1e69..0000000 --- a/docs/jest/lcov-report/composeMiddlewares.ts.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - Code coverage report for composeMiddlewares.ts - - - - - - - - - -
      -
      -

      All files composeMiddlewares.ts

      -
      - -
      - 100% - Statements - 17/17 -
      - - -
      - 100% - Branches - 4/4 -
      - - -
      - 100% - Functions - 3/3 -
      - - -
      - 100% - Lines - 17/17 -
      - - -
      -

      - 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 -36 -37 -38 -39 -40 -41  -  -  -8x -11x -1x -  -  -10x -13x -1x -  -  -  -9x -  -  -8x -  -  -14x -1x -  -  -13x -  -13x -  -13x -2x -  -  -11x -  -11x -  -  -8x -  -  - 
      import { UseCase } from '.';
      -import { Middleware, Context } from './interfaces';
      - 
      -export function composeMiddlewares(middlewares: Middleware[]) {
      -  if (!Array.isArray(middlewares)) {
      -    throw new TypeError('Middleware stack must be an array!');
      -  }
      - 
      -  for (const fn of middlewares) {
      -    if (typeof fn !== 'function') {
      -      throw new TypeError('Middleware must be composed of functions!');
      -    }
      -  }
      - 
      -  return async function runStack<D, A extends UseCase, R>(
      -    context: Context<D, A, R>,
      -  ): Promise<unknown> {
      -    let index = -1;
      - 
      -    async function next(i: number): Promise<unknown> {
      -      if (i <= index) {
      -        throw new Error('next() called multiple times');
      -      }
      - 
      -      index = i;
      - 
      -      let currentMiddleware = middlewares[i];
      - 
      -      if (i === middlewares.length) {
      -        return Promise.resolve();
      -      }
      - 
      -      const nextMiddlewareNext = next.bind(null, i + 1);
      - 
      -      return await currentMiddleware(context, nextMiddlewareNext);
      -    }
      - 
      -    return await next(0);
      -  };
      -}
      - 
      - -
      -
      - -
      - - - - - - - \ No newline at end of file diff --git a/docs/jest/lcov-report/createApp.ts.html b/docs/jest/lcov-report/createApp.ts.html deleted file mode 100644 index 829a9c2..0000000 --- a/docs/jest/lcov-report/createApp.ts.html +++ /dev/null @@ -1,560 +0,0 @@ - - - - - - Code coverage report for createApp.ts - - - - - - - - - -
      -
      -

      All files createApp.ts

      -
      - -
      - 100% - Statements - 20/20 -
      - - -
      - 100% - Branches - 5/5 -
      - - -
      - 100% - Functions - 7/7 -
      - - -
      - 100% - Lines - 20/20 -
      - - -
      -

      - 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 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159  -7x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -7x -9x -  -  -12x -1x -  -  -11x -  -  -9x -  -2x -  -2x -  -  -  -  -  -10x -  -  -  -8x -  -12x -12x -  -  -12x -  -  -  -  -8x -  -8x -  -  -  -  -  -8x -  -4x -1x -  -  -  -  -3x -  -  -  - 
      import { UseCase, UseCaseType } from '.';
      -import { composeMiddlewares } from './composeMiddlewares';
      - 
      -import { Context, Middleware } from './interfaces';
      -/**
      - * A DYAL app
      - * @example
      - * ```typescript
      - * const app = createApp(dependencies);
      - * const commandBus: CommandBus = createCommandBus();
      - * commandBus.register('CountCommand', countCommandHandler);
      - * app.on('command').use(commandBus.middleware);
      - *
      - * export interface CountCommandResult {
      - *   total: number;
      - * }
      - *
      - * const countCommand: CountCommand = {
      - *   type: 'command',
      - *   name: 'CountCommand',
      - *   payload: {
      - *    count: 5,
      - *   },
      - * };
      - *
      - * const result = await app.execute<CountCommandResult>(countCommand);
      - * ```
      - */
      -export interface DyalApp {
      -  /**
      -   *
      -   * @param target It's the kind of use case your middleware will be called for. Can be `query`, `command` or `all`
      -   * @example
      -   * ```typescript
      -   * app.on('command').use(commandHandlerMiddleware);
      -   * ```
      -   */
      -  on(target: UseCaseType): {
      -    /**
      -     *
      -     * @param middleware middleware to add to the app stack
      -     * @returns void
      -     * @example
      -     * ```typescript
      -     * app.on('all').use(middleware);
      -     * ```
      -     */
      -    use(middleware: Middleware): void;
      -  };
      - 
      -  /**
      -   *
      -   * @param middleware middleware to add to the app stack
      -   * @returns void
      -   * @example
      -   * ```typescript
      -   * app.use(middleware);
      -   * ```
      -   */
      -  use(middleware: Middleware): void;
      - 
      -  /**
      -   * @param useCase The useCase to execute.
      -   * @type R The useCase's return type.
      -   * @returns R
      -   * @example
      -   * ```typescript
      -   * const app = createApp(dependencies);
      -   * const commandBus: CommandBus = createCommandBus();
      -   * commandBus.register('CountCommand', countCommandHandler);
      -   * app.on('command').use(commandBus.middleware);
      -   *
      -   * export interface CountCommandResult {
      -   *   total: number;
      -   * }
      -   *
      -   * const countCommand: CountCommand = {
      -   *   type: 'command',
      -   *   name: 'CountCommand',
      -   *   payload: {
      -   *    count: 5,
      -   *   },
      -   * };
      -   *
      -   * const result = await app.execute<CountCommandResult>(countCommand);
      -   * ```
      -   */
      -  execute<R>(useCase: UseCase): Promise<R>;
      -}
      - 
      -/**
      - * @param dependencies Your app dependencies like repositories, logger, database connection, etc...
      - * @returns CQRSApp
      - * @example
      - * ```typescript
      - * const dependencies: AppDependencies = { logger: console.log };
      - * const app = createApp(dependencies);
      - * app.use(loggerMiddleware);
      - * const commandResult = await app.execute(commands);
      - * const queryResult = await app.execute(query);
      - * ```
      - */
      -export function createApp<D>(dependencies: D): DyalApp {
      -  const middlewares: { target: UseCaseType; middleware: Middleware }[] = [];
      - 
      -  function use(target: UseCaseType, middleware: Middleware) {
      -    if (typeof middleware !== 'function') {
      -      throw new TypeError('Middleware must be composed of functions');
      -    }
      - 
      -    middlewares.push({ target, middleware });
      -  }
      - 
      -  return {
      -    on: (target: UseCaseType) => {
      -      return {
      -        use: (middleware: Middleware) => {
      -          use(target, middleware);
      -        },
      -      };
      -    },
      - 
      -    use: (middleware: Middleware) => {
      -      use('all', middleware);
      -    },
      - 
      -    execute: async <R>(useCase: UseCase): Promise<R> => {
      -      const targetMiddlewares = middlewares.reduce(
      -        (selectedMids: Middleware[], mid) => {
      -          if (mid.target === 'all' || mid.target === useCase.type) {
      -            selectedMids.push(mid.middleware);
      -          }
      - 
      -          return selectedMids;
      -        },
      -        [],
      -      );
      - 
      -      const midStack = composeMiddlewares(targetMiddlewares);
      - 
      -      const context: Context<D, UseCase, R> = {
      -        dependencies,
      -        useCase,
      -        result: undefined,
      -      };
      - 
      -      await midStack(context);
      - 
      -      if (!context.result) {
      -        throw new RangeError(
      -          'No result to return. At least one middleware must write the ctx.result object',
      -        );
      -      }
      - 
      -      return context.result;
      -    },
      -  };
      -}
      - 
      - -
      -
      - -
      - - - - - - - \ No newline at end of file diff --git a/docs/jest/lcov-report/favicon.png b/docs/jest/lcov-report/favicon.png deleted file mode 100644 index 6691817834a957c938e7f09640a37a645fb31457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)wSzy{h>9elhJ=8GnBQmf?)AI(^#wDA_`!QTxaXXE&bjxo zTGCc%V|W`}Lwz0rDO*qBbGY-M@aNENIZ1rK?nOAibaC*vb%CF;I_~lkJawax%_+1J zLn(#pv_v{f0`v`Cfp6()7MB(>IoTAiQdKxgxX?VyV&KVZ7b$vn<8|Z<9$35C+G_8SH0x6Y(xB&~bmn%r}ceRwbc0000 - - - - Code coverage report for All files - - - - - - - - - -
      -
      -

      All files

      -
      - -
      - 100% - Statements - 56/56 -
      - - -
      - 100% - Branches - 11/11 -
      - - -
      - 100% - Functions - 15/15 -
      - - -
      - 100% - Lines - 56/56 -
      - - -
      -

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

      - -
      -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      FileStatementsBranchesFunctionsLines
      composeMiddlewares.ts -
      -
      100%17/17100%4/4100%3/3100%17/17
      createApp.ts -
      -
      100%20/20100%5/5100%7/7100%20/20
      index.ts -
      -
      100%3/3100%0/0100%0/0100%3/3
      useCaseBus.ts -
      -
      100%16/16100%2/2100%5/5100%16/16
      -
      -
      -
      - -
- - - - - - - \ No newline at end of file diff --git a/docs/jest/lcov-report/index.ts.html b/docs/jest/lcov-report/index.ts.html deleted file mode 100644 index 34457ee..0000000 --- a/docs/jest/lcov-report/index.ts.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - Code coverage report for index.ts - - - - - - - - - -
-
-

All files index.ts

-
- -
- 100% - Statements - 3/3 -
- - -
- 100% - Branches - 0/0 -
- - -
- 100% - Functions - 0/0 -
- - -
- 100% - Lines - 3/3 -
- - -
-

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

- -
-
-

-
1 -2 -3 -47x -7x -7x - 
export * from './createApp';
-export * from './interfaces';
-export * from './useCaseBus';
- 
- -
-
- -
- - - - - - - \ No newline at end of file diff --git a/docs/jest/lcov-report/prettify.css b/docs/jest/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/docs/jest/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/docs/jest/lcov-report/prettify.js b/docs/jest/lcov-report/prettify.js deleted file mode 100644 index b322523..0000000 --- a/docs/jest/lcov-report/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/docs/jest/lcov-report/sort-arrow-sprite.png b/docs/jest/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/docs/jest/lcov-report/useCaseBus.ts.html b/docs/jest/lcov-report/useCaseBus.ts.html deleted file mode 100644 index 97db60f..0000000 --- a/docs/jest/lcov-report/useCaseBus.ts.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - Code coverage report for useCaseBus.ts - - - - - - - - - -
-
-

All files useCaseBus.ts

-
- -
- 100% - Statements - 16/16 -
- - -
- 100% - Branches - 2/2 -
- - -
- 100% - Functions - 5/5 -
- - -
- 100% - Lines - 16/16 -
- - -
-

- 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 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63  -  -  -  -  -  -  -  -  -  -  -  -  -  -7x -2x -  -  -7x -2x -  -  -  -  -  -4x -  -  -  -  -4x -  -  -  -  -12x -  -  -  -  -  -  -10x -10x -2x -2x -  -  -8x -  -8x -4x -  -  -  -  -4x -  -4x -  -  -  - 
import { Command, Context, UseCase, Next, Query } from './interfaces';
- 
-export interface UseCaseBus<U extends UseCase> {
-  register<D, R>(
-    useCaseName: string,
-    handler: (context: Context<D, U, R>) => Promise<R>,
-  ): void;
- 
-  middleware<D, R>(context: Context<D, U, R>, next: Next): Promise<void>;
-}
- 
-export type CommandBus = UseCaseBus<Command>;
-export type QueryBus = UseCaseBus<Query>;
- 
-export function createCommandBus(): CommandBus {
-  return createUseCaseBus<Command>('command');
-}
- 
-export function createQueryBus(): QueryBus {
-  return createUseCaseBus<Query>('query');
-}
- 
-function createUseCaseBus<U extends UseCase>(
-  useCaseType: 'command' | 'query',
-): UseCaseBus<U> {
-  const handlersMap = new Map<
-    string,
-    (context: Context<any, U, any>) => Promise<any>
-  >();
- 
-  return {
-    register: function useCaseBusRegister<D, R>(
-      useCaseName: string,
-      handler: (context: Context<D, U, R>) => Promise<R>,
-    ): void {
-      handlersMap.set(useCaseName, handler);
-    },
- 
-    middleware: async function useCaseBusRoute<D, R>(
-      context: Context<D, U, R>,
-      next: Next,
-    ): Promise<void> {
-      const { useCase } = context;
-      if (useCase.type !== useCaseType) {
-        await next();
-        return;
-      }
- 
-      let handler = handlersMap.get(useCase.name);
- 
-      if (!handler) {
-        throw new RangeError(
-          `There is no ${useCaseType} handler registered for this ${useCaseType} name`,
-        );
-      }
- 
-      context.result = await handler(context);
- 
-      return;
-    },
-  };
-}
- 
- -
-
- -
- - - - - - - \ No newline at end of file diff --git a/docs/jest/lcov.info b/docs/jest/lcov.info deleted file mode 100644 index d1fc490..0000000 --- a/docs/jest/lcov.info +++ /dev/null @@ -1,133 +0,0 @@ -TN: -SF:src/composeMiddlewares.ts -FN:4,composeMiddlewares -FN:15,runStack -FN:20,next -FNF:3 -FNH:3 -FNDA:11,composeMiddlewares -FNDA:8,runStack -FNDA:14,next -DA:4,8 -DA:5,11 -DA:6,1 -DA:9,10 -DA:10,13 -DA:11,1 -DA:15,9 -DA:18,8 -DA:21,14 -DA:22,1 -DA:25,13 -DA:27,13 -DA:29,13 -DA:30,2 -DA:33,11 -DA:35,11 -DA:38,8 -LF:17 -LH:17 -BRDA:5,0,0,1 -BRDA:10,1,0,1 -BRDA:21,2,0,1 -BRDA:29,3,0,2 -BRF:4 -BRH:4 -end_of_record -TN: -SF:src/createApp.ts -FN:103,createApp -FN:106,use -FN:115,(anonymous_2) -FN:117,(anonymous_3) -FN:123,(anonymous_4) -FN:127,(anonymous_5) -FN:129,(anonymous_6) -FNF:7 -FNH:7 -FNDA:9,createApp -FNDA:12,use -FNDA:2,(anonymous_2) -FNDA:2,(anonymous_3) -FNDA:10,(anonymous_4) -FNDA:8,(anonymous_5) -FNDA:12,(anonymous_6) -DA:2,7 -DA:103,7 -DA:104,9 -DA:107,12 -DA:108,1 -DA:111,11 -DA:114,9 -DA:116,2 -DA:118,2 -DA:124,10 -DA:128,8 -DA:130,12 -DA:131,12 -DA:134,12 -DA:139,8 -DA:141,8 -DA:147,8 -DA:149,4 -DA:150,1 -DA:155,3 -LF:20 -LH:20 -BRDA:107,0,0,1 -BRDA:130,1,0,12 -BRDA:130,2,0,12 -BRDA:130,2,1,4 -BRDA:149,3,0,1 -BRF:5 -BRH:5 -end_of_record -TN: -SF:src/index.ts -FNF:0 -FNH:0 -DA:1,7 -DA:2,7 -DA:3,7 -LF:3 -LH:3 -BRF:0 -BRH:0 -end_of_record -TN: -SF:src/useCaseBus.ts -FN:15,createCommandBus -FN:19,createQueryBus -FN:23,createUseCaseBus -FN:32,useCaseBusRegister -FN:39,useCaseBusRoute -FNF:5 -FNH:5 -FNDA:2,createCommandBus -FNDA:2,createQueryBus -FNDA:4,createUseCaseBus -FNDA:12,useCaseBusRegister -FNDA:10,useCaseBusRoute -DA:15,7 -DA:16,2 -DA:19,7 -DA:20,2 -DA:26,4 -DA:31,4 -DA:36,12 -DA:43,10 -DA:44,10 -DA:45,2 -DA:46,2 -DA:49,8 -DA:51,8 -DA:52,4 -DA:57,4 -DA:59,4 -LF:16 -LH:16 -BRDA:44,0,0,2 -BRDA:51,1,0,4 -BRF:2 -BRH:2 -end_of_record diff --git a/docs/modules.html b/docs/modules.html index e0aea60..ea42259 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,10 +1,10 @@ -DYAL - v1.0.7
Options
All
  • Public
  • Public/Protected
  • All
Menu

DYAL - v1.0.7

Index

Type aliases

CommandBus: UseCaseBus<Command>
Middleware: <T>(context: T, next: Next) => Promise<void>

Type declaration

    • <T>(context: T, next: Next): Promise<void>
    • +DYAL - v1.0.9
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      DYAL - v1.0.9

      Index

      Type aliases

      CommandBus: UseCaseBus<Command>
      Middleware: <T>(context: T, next: Next) => Promise<void>

      Type declaration

        • <T>(context: T, next: Next): Promise<void>
        • Middleware takes a context and a next callback to pass the control the next middleware in the stack.

          params

          context This is the use case context it contains dependencies and the use case to handle.

          params

          next It's the callback to call to pass the control to the next middleware in the stack.

          -

          Type parameters

          Parameters

          • context: T
          • next: Next

          Returns Promise<void>

      Next: () => Promise<unknown>

      Type declaration

        • (): Promise<unknown>
        • Returns Promise<unknown>

      QueryBus: UseCaseBus<Query>
      UseCaseType: "query" | "command" | "all"

      Functions

      • createApp<D>(dependencies: D): DyalApp
      • example
        const dependencies: AppDependencies = { logger: console.log };
        const app = createApp(dependencies);
        app.use(loggerMiddleware);
        const commandResult = await app.execute(commands);
        const queryResult = await app.execute(query); +

        Type parameters

        Parameters

        • context: T
        • next: Next

        Returns Promise<void>

Next: () => Promise<unknown>

Type declaration

    • (): Promise<unknown>
    • Returns Promise<unknown>

QueryBus: UseCaseBus<Query>
UseCaseType: "query" | "command" | "all"

Functions

  • createApp<D>(dependencies: D): DyalApp
  • example
    const dependencies: AppDependencies = { logger: console.log };
    const app = createApp(dependencies);
    app.use(loggerMiddleware);
    const commandResult = await app.execute(commands);
    const queryResult = await app.execute(query);

    Type parameters

    • D

    Parameters

    • dependencies: D

      Your app dependencies like repositories, logger, database connection, etc...

    Returns DyalApp

    CQRSApp

    -

Legend

  • Property
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file +

Legend

  • Property
  • Method

Settings

Theme

Generated using TypeDoc

\ No newline at end of file diff --git a/package.json b/package.json index 5c1ff79..cc7e277 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dyal", - "version": "1.0.8", + "version": "1.0.9", "description": "DYAL for Decouple Your Application Layer. It's a ligth & simple application layer framework with CQRS utilities", "main": "dist/index.js", "types": "dist/index.d.ts",