@brandup/ui-app 1.0.20 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,6 @@
1
- # brandup-ui-app
1
+ # @brandup/ui-app
2
+
3
+ Lightweight, fast and extensible application framework. Full async support. Weight after minification is less than 10KB!
2
4
 
3
5
  [![Build Status](https://dev.azure.com/brandup/BrandUp%20Core/_apis/build/status%2FBrandUp%2Fbrandup-ui?branchName=master)]()
4
6
 
@@ -7,16 +9,18 @@
7
9
  Install NPM package [@brandup/ui-app](https://www.npmjs.com/package/@brandup/ui-app).
8
10
 
9
11
  ```
10
- npm i @brandup/ui-app@latest
12
+ npm i @brandup/ui-app
11
13
  ```
12
14
 
15
+ This package support **TypeScript** language.
16
+
13
17
  ## Configure and run application
14
18
 
15
19
  Configure your application with middlewares and run.
16
20
 
17
- ```
21
+ ```typescript
18
22
  import { ApplicationBuilder } from "@brandup/ui-app";
19
- import { PagesMiddleware } from "./middlewares/pages";
23
+ import pages from "./middlewares/pages";
20
24
  import "./styles.less";
21
25
 
22
26
  // Customize application model
@@ -30,30 +34,62 @@ export class ExampleApplication extends Application<ExampleApplicationModel> {
30
34
  const builder = new ApplicationBuilder<ExampleApplicationModel>();
31
35
  builder
32
36
  .useApp(ExampleApplication)
33
- .useMiddleware(() => new PagesMiddleware());
37
+ .useMiddleware(pages);
34
38
 
35
39
  const appModel: ExampleApplicationModel = {};
36
40
  const app = builder.build<ExampleApplicationModel>({ basePath: "/" }, appModel);
37
41
 
38
- app.run({ ...optional context params })
39
- .then(navContext => { })
42
+ app.run({ /*optional context params*/ })
43
+ .then(context: StartContext => { })
40
44
  .catch(reason => { });
41
45
  ```
42
46
 
43
47
  Default HTMLElement of application is `document.body`. Set custom element:
44
48
 
45
- ```
49
+ ```typescript
46
50
  const appElement = document.getElementById("app")
47
- app.run({ ...optional context params }, appElement);
51
+ app.run({ /*optional context params*/ }, appElement);
52
+ ```
53
+
54
+ ## Navigation
55
+
56
+ Example links for application navigation `app.nav({ url: "url" })`:
57
+
58
+ ```html
59
+ <a href="url" class="applink">text</a>
60
+ <button data-nav-url="url">text</button>
61
+ ```
62
+
63
+ Replace current url `app.nav({ url: "url", replace: true })`:
64
+
65
+ ```html
66
+ <a href="url" class="applink" data-nav-replace>text</a>
67
+ <button data-nav-url="url" data-nav-replace>text</button>
48
68
  ```
49
69
 
70
+ The element's click event will start a chain of `navigate` method calls for all middleware.
71
+
72
+ During navigation and until it is completed, the `loading` class is added to the element that started the navigation.
73
+
74
+ ## Submit form
75
+
76
+ ```html
77
+ <form class="appform">
78
+ <input type="text" name="value" />
79
+ </form>
80
+ ```
81
+
82
+ The form's submit event will start a chain of `submit` method calls for all middleware. Class `appform` is required.
83
+
84
+ If the form method is `GET`, then navigation with the form data will start.
85
+
50
86
  ## Middlewares
51
87
 
52
88
  Inject to application lifecycle event methods. Middleware methods are called one after another in the order in which they were registered in the `ApplicationBuilder`.
53
89
 
54
- ```
55
- export class PagesMiddleware implements Middleware {
56
- readonly name: string = "pages"; // unique name of current middleware
90
+ ```typescript
91
+ class PagesMiddlewareImpl implements Middleware {
92
+ name = "pages"; // unique name of this middleware
57
93
 
58
94
  start(context: StartContext<ExampleApplication>, next: MiddlewareNext) {
59
95
  console.log("start");
@@ -91,19 +127,27 @@ export class PagesMiddleware implements Middleware {
91
127
  return next();
92
128
  }
93
129
  }
130
+
131
+ /** External interface of middleware. */
132
+ export interface PagesMiddleware {
133
+ }
134
+
135
+ export default () => new PagesMiddlewareImpl();
94
136
  ```
95
137
 
96
138
  Example SPA navigation middleware: [example/src/frontend/middlewares/pages.ts](/example/src/frontend/middlewares/pages.ts)
97
139
 
140
+ ### Access to middleware
141
+
98
142
  Retrivie middleware by unique name:
99
143
 
100
- ```
101
- const middleware = app.middleware<PagesMiddleware>("pages");
144
+ ```typescript
145
+ const pages = app.middleware<PagesMiddleware>("pages");
102
146
  ```
103
147
 
104
- ### Async middleware execution
148
+ ### Async execution
105
149
 
106
- ```
150
+ ```typescript
107
151
  export class PagesMiddleware implements Middleware {
108
152
  async navigate(context: NavigateContext, next: MiddlewareNext) {
109
153
  // Exec before next middleware
@@ -113,4 +157,20 @@ export class PagesMiddleware implements Middleware {
113
157
  // Exec after next middleware
114
158
  }
115
159
  }
116
- ```
160
+ ```
161
+
162
+ ### Redirect navigation
163
+
164
+ ```typescript
165
+ export class AuthMiddleware implements Middleware {
166
+ async navigate(context: NavigateContext, next: MiddlewareNext) {
167
+ await context.redirect({ url: "url" });
168
+ }
169
+
170
+ async submit(context: SubmitContext, next: MiddlewareNext) {
171
+ await context.redirect({ url: "url" });
172
+ }
173
+ }
174
+ ```
175
+
176
+ The `redirect` method will always throw an exception with reason `NAV_OVERIDE_ERROR` constant and end the current navigation.
package/dist/cjs/index.js CHANGED
@@ -146,12 +146,12 @@ const HyperLinkMiddlewareFactory = () => {
146
146
  let elem = e.target;
147
147
  let ignore = false;
148
148
  while (elem) {
149
- if (elem instanceof Element) {
149
+ if (elem instanceof HTMLElement) {
150
150
  if (elem.hasAttribute(result.NavIgnoreAttributeName)) {
151
151
  ignore = true;
152
152
  break;
153
153
  }
154
- if (elem.classList && elem.classList.contains(result.NavUrlClassName))
154
+ if (elem.classList.contains(result.NavUrlClassName) || elem.hasAttribute(result.NavUrlAttributeName))
155
155
  break;
156
156
  }
157
157
  if (elem === e.currentTarget)
@@ -358,6 +358,7 @@ var url = /*#__PURE__*/Object.freeze({
358
358
  default: urlHelper
359
359
  });
360
360
 
361
+ const APP_TYPENAME = "brandup-ui-app";
361
362
  const NAV_OVERIDE_ERROR = "NavigationOveride";
362
363
  /**
363
364
  * Base application class.
@@ -369,8 +370,9 @@ class Application extends ui.UIElement {
369
370
  model;
370
371
  /** Application middleware invoker. */
371
372
  invoker;
372
- __isInitialized = false;
373
- __isDestroy = false;
373
+ __abort;
374
+ __isInited;
375
+ __isRuned;
374
376
  __middlewares = {};
375
377
  __globalSubmit;
376
378
  __execNav; // current navigation invoking
@@ -381,13 +383,18 @@ class Application extends ui.UIElement {
381
383
  this.model = model;
382
384
  const core = { name: "app-root" };
383
385
  this.invoker = new MiddlewareInvoker(core);
386
+ this.__abort = new AbortController();
384
387
  }
385
- get typeName() { return "Application"; }
388
+ get typeName() { return APP_TYPENAME; }
389
+ /** Current navigation context. */
390
+ get current() { return this.__lastNav?.context; }
391
+ /** Application destroy signal. */
392
+ get abort() { return this.__abort.signal; }
386
393
  /** @internal */
387
394
  initialize(middlewares) {
388
- if (this.__isInitialized)
395
+ if (this.__isInited)
389
396
  throw new Error('Application already initialized.');
390
- this.__isInitialized = true;
397
+ this.__isInited = true;
391
398
  this.onInitialize();
392
399
  middlewares.forEach(middleware => {
393
400
  var name = middleware.name;
@@ -407,6 +414,7 @@ class Application extends ui.UIElement {
407
414
  * @returns Middleware instance.
408
415
  */
409
416
  middleware(name) {
417
+ this.__abort.signal.throwIfAborted();
410
418
  const middleware = this.__middlewares[name];
411
419
  if (!middleware)
412
420
  throw new Error(`Middleware ${name} is not registered.`);
@@ -419,23 +427,28 @@ class Application extends ui.UIElement {
419
427
  * @returns Promise of runned result.
420
428
  */
421
429
  async run(contextData, element) {
430
+ if (this.__abort.signal.aborted)
431
+ throw new Error('Application is destroyed.');
432
+ if (this.__isRuned)
433
+ throw new Error('Application already run.');
434
+ this.__isRuned = true;
422
435
  if (!contextData)
423
436
  contextData = {};
424
- this.setElement(element || BROWSER.body);
425
- const abort = new AbortController();
437
+ element = element || BROWSER.body;
438
+ this.setElement(element);
426
439
  const context = {
427
- abort: abort.signal,
440
+ abort: this.__abort.signal,
428
441
  app: this,
429
442
  data: contextData
430
443
  };
431
444
  try {
432
445
  await this.invoker.invoke("start", context);
433
446
  console.info("app start success");
434
- abort.signal.throwIfAborted();
447
+ this.__abort.signal.throwIfAborted();
435
448
  await this.invoker.invoke("loaded", context);
436
449
  console.info("app load success");
437
- abort.signal.throwIfAborted();
438
- BROWSER.window.addEventListener("submit", this.__globalSubmit = (e) => {
450
+ this.__abort.signal.throwIfAborted();
451
+ element.addEventListener("submit", this.__globalSubmit = (e) => {
439
452
  const form = e.target;
440
453
  if (!form.classList.contains(result.FormClassName))
441
454
  return;
@@ -450,7 +463,7 @@ class Application extends ui.UIElement {
450
463
  throw reason;
451
464
  }
452
465
  try {
453
- await this.nav({ data: context.data });
466
+ await this.nav({ data: context.data, abort: this.__abort.signal });
454
467
  }
455
468
  catch (reason) {
456
469
  if (reason === NAV_OVERIDE_ERROR) {
@@ -479,14 +492,17 @@ class Application extends ui.UIElement {
479
492
  parentNav.abort.abort(NAV_OVERIDE_ERROR);
480
493
  parentNav.context.overided = true;
481
494
  }
482
- const abort = new AbortController();
483
- const externalAbort = opt.abort;
484
- if (externalAbort)
485
- externalAbort.addEventListener("abort", () => abort.abort(externalAbort.reason));
495
+ const navIndex = parentNav ? parentNav.context.index + 1 : 1;
496
+ const navAbort = new AbortController();
497
+ const aborts = [this.__abort.signal, navAbort.signal];
498
+ if (opt.abort)
499
+ aborts.push(opt.abort);
500
+ const complextAbort = AbortSignal.any(aborts);
486
501
  const context = {
502
+ index: navIndex,
487
503
  source: isFirst ? "first" : "nav",
488
504
  app: this,
489
- abort: abort.signal,
505
+ abort: complextAbort,
490
506
  current: this.__lastNav?.context,
491
507
  parent: parentNav?.context,
492
508
  overided: false,
@@ -498,17 +514,77 @@ class Application extends ui.UIElement {
498
514
  query: navUrl.query,
499
515
  hash: navUrl.hash,
500
516
  external: navUrl.external,
501
- replace
517
+ replace,
518
+ redirect: async (options) => {
519
+ complextAbort.throwIfAborted();
520
+ const result = await this.nav(options);
521
+ complextAbort.throwIfAborted();
522
+ return result;
523
+ }
502
524
  };
503
- const currentNav = { id: parentNav ? parentNav.id + 1 : 1, method: "navigate", context, abort, status: "work" };
504
- await this.__execNavigate(currentNav);
505
- return context;
525
+ const currentNav = { method: "navigate", context, abort: navAbort, status: "work" };
526
+ return await this.__execNavigate(currentNav, parentNav);
527
+ }
528
+ /**
529
+ * Reload page with nav.
530
+ */
531
+ reload() {
532
+ this.__abort.signal.throwIfAborted();
533
+ return this.nav({ replace: true });
534
+ }
535
+ /**
536
+ * Global reload page in browser.
537
+ */
538
+ restart() {
539
+ this.__abort.signal.throwIfAborted();
540
+ BROWSER.reload();
541
+ }
542
+ async destroy(contextData) {
543
+ if (this.__abort.signal.aborted)
544
+ return Promise.reject('Application already destroyed.');
545
+ this.__abort.abort();
546
+ console.info("app destroy begin");
547
+ if (this.__execNav)
548
+ this.__execNav.abort.abort();
549
+ if (this.__lastNav)
550
+ this.__lastNav.abort.abort();
551
+ if (this.__globalSubmit)
552
+ this.element?.removeEventListener("submit", this.__globalSubmit);
553
+ const destroyAbort = new AbortController();
554
+ const context = {
555
+ abort: destroyAbort.signal,
556
+ app: this,
557
+ data: contextData || {}
558
+ };
559
+ try {
560
+ await this.invoker.invoke("stop", context);
561
+ console.info("app destroy success");
562
+ return context;
563
+ }
564
+ catch (reason) {
565
+ console.error(`app destroy error: ${reason}`);
566
+ throw reason;
567
+ }
568
+ finally {
569
+ super.destroy();
570
+ }
571
+ }
572
+ /**
573
+ * Generate url of application base url.
574
+ * @param path Add optional path of base url.
575
+ * @param query Add optional query params.
576
+ * @param hash Add optional hash.
577
+ * @returns Relative url with base path.
578
+ */
579
+ buildUrl(path, query, hash) {
580
+ this.__abort.signal.throwIfAborted();
581
+ return urlHelper.buildUrl(this.env.basePath, path, query, hash);
506
582
  }
507
583
  async __onSubmit(options) {
508
584
  const opt = options instanceof HTMLFormElement ? { form: options } : options;
509
585
  const { form, button = null, query, data = {} } = opt;
510
586
  if (!form.checkValidity())
511
- return Promise.reject(new Error('Form is invalid.'));
587
+ throw new Error('Form is invalid.');
512
588
  let replace = form.hasAttribute(result.NavUrlReplaceAttributeName);
513
589
  let method = form.method;
514
590
  let enctype = form.enctype;
@@ -525,12 +601,12 @@ class Application extends ui.UIElement {
525
601
  replace = true;
526
602
  }
527
603
  if (form.classList.contains(result.LoadingElementClass))
528
- return Promise.reject(new Error('Form already submitting.'));
604
+ throw new Error('Form already submitting.');
529
605
  form.classList.add(result.LoadingElementClass);
530
606
  method = method.toUpperCase();
531
607
  try {
532
608
  if (method === "GET")
533
- await this.nav({ url, query: new FormData(form), data: data, replace });
609
+ await this.nav({ url, query: new FormData(form), data: data, replace, abort: opt.abort });
534
610
  else {
535
611
  const navUrl = urlHelper.parseUrl(url);
536
612
  if (query)
@@ -541,14 +617,17 @@ class Application extends ui.UIElement {
541
617
  parentNav.abort.abort(NAV_OVERIDE_ERROR);
542
618
  parentNav.context.overided = true;
543
619
  }
544
- const abort = new AbortController();
545
- const externalAbort = opt.abort;
546
- if (externalAbort)
547
- externalAbort.addEventListener("abort", () => abort.abort(externalAbort.reason));
620
+ const navIndex = parentNav ? parentNav.context.index + 1 : 1;
621
+ const submitAbort = new AbortController();
622
+ const aborts = [this.__abort.signal, submitAbort.signal];
623
+ if (opt.abort)
624
+ aborts.push(opt.abort);
625
+ const complextAbort = AbortSignal.any(aborts);
548
626
  let context = {
627
+ index: navIndex,
549
628
  source: "submit",
550
629
  app: this,
551
- abort: abort.signal,
630
+ abort: complextAbort,
552
631
  current: this.__lastNav?.context,
553
632
  parent: parentNav?.context,
554
633
  overided: false,
@@ -564,9 +643,15 @@ class Application extends ui.UIElement {
564
643
  query: navUrl.query,
565
644
  hash: navUrl.hash,
566
645
  external: navUrl.external,
567
- replace
646
+ replace,
647
+ redirect: async (options) => {
648
+ complextAbort.throwIfAborted();
649
+ const result = await this.nav(options);
650
+ complextAbort.throwIfAborted();
651
+ return result;
652
+ }
568
653
  };
569
- const currentNav = { id: parentNav ? parentNav.id + 1 : 1, method: "submit", context, abort, status: "work" };
654
+ const currentNav = { method: "submit", context, abort: submitAbort, status: "work" };
570
655
  await this.__execNavigate(currentNav);
571
656
  }
572
657
  }
@@ -576,64 +661,18 @@ class Application extends ui.UIElement {
576
661
  button.classList.remove(result.LoadingElementClass);
577
662
  }
578
663
  }
579
- /**
580
- * Reload page with nav.
581
- */
582
- reload() {
583
- return this.nav({ replace: true });
584
- }
585
- /**
586
- * Global reload page in browser.
587
- */
588
- restart() {
589
- BROWSER.reload();
590
- }
591
- async destroy(contextData) {
592
- if (this.__isDestroy)
593
- return Promise.reject('Application already destroyed.');
594
- this.__isDestroy = true;
595
- console.info("app destroy begin");
596
- if (this.__globalSubmit)
597
- BROWSER.window.removeEventListener("submit", this.__globalSubmit);
598
- if (this.__execNav)
599
- this.__execNav.abort.abort();
600
- const abort = new AbortController();
601
- const context = {
602
- abort: abort.signal,
603
- app: this,
604
- data: contextData || {}
605
- };
606
- try {
607
- await this.invoker.invoke("stop", context);
608
- console.info("app destroy success");
609
- return context;
610
- }
611
- catch (reason) {
612
- console.error(`app destroy error: ${reason}`);
613
- throw reason;
614
- }
615
- finally {
616
- super.destroy();
617
- }
618
- }
619
- /**
620
- * Generate url of application base url.
621
- * @param path Add optional path of base url.
622
- * @param query Add optional query params.
623
- * @param hash Add optional hash.
624
- * @returns Relative url with base path.
625
- */
626
- buildUrl(path, query, hash) {
627
- return urlHelper.buildUrl(this.env.basePath, path, query, hash);
628
- }
629
- async __execNavigate(nav) {
630
- this.__execNav = nav;
664
+ async __execNavigate(nav, parent) {
665
+ if (parent)
666
+ parent.overide = nav;
631
667
  try {
632
668
  console.info(`${nav.method} begin`, nav.context);
669
+ nav.context.abort.throwIfAborted();
670
+ this.__execNav = nav;
633
671
  await this.invoker.invoke(nav.method, nav.context);
634
672
  this.__lastNav = nav;
635
673
  nav.status = "success";
636
674
  console.info(`${nav.method} ${nav.status} ${nav.context.url}`);
675
+ return nav.context;
637
676
  }
638
677
  catch (reason) {
639
678
  if (reason?.name === "AbortError") {
@@ -641,8 +680,11 @@ class Application extends ui.UIElement {
641
680
  console.warn(`${nav.method} ${nav.status} ${nav.context.url}`);
642
681
  }
643
682
  else if (reason === NAV_OVERIDE_ERROR) {
683
+ if (!nav.context.overided || !nav.overide)
684
+ throw new Error("Nav is not overided.");
644
685
  nav.status = "overided";
645
686
  console.warn(`${nav.method} ${nav.status} ${nav.context.url}`);
687
+ return nav.overide.context; // return redirected navigation
646
688
  }
647
689
  else {
648
690
  nav.status = "error";
@@ -664,20 +706,12 @@ class ApplicationBuilder {
664
706
  this.__appType = appType;
665
707
  return this;
666
708
  }
667
- useMiddleware(middleware, ...params) {
668
- if (!middleware)
669
- throw `Middleware propery is required.`;
670
- let midl;
671
- if (typeof middleware === "function")
672
- midl = middleware(...params);
673
- else
674
- midl = middleware;
709
+ useMiddleware(createFunc, ...params) {
710
+ let midl = createFunc(...params);
675
711
  this.__middlewares.push(midl);
676
712
  return this;
677
713
  }
678
714
  build(env, ...args) {
679
- if (!env)
680
- throw new Error("Parameter env is required.");
681
715
  if (!env.basePath)
682
716
  env.basePath = "/";
683
717
  const app = new this.__appType(env, this.__model, ...args);
@@ -686,6 +720,7 @@ class ApplicationBuilder {
686
720
  }
687
721
  }
688
722
 
723
+ exports.APP_TYPENAME = APP_TYPENAME;
689
724
  exports.Application = Application;
690
725
  exports.ApplicationBuilder = ApplicationBuilder;
691
726
  exports.BROWSER = browser;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../source/middlewares/invoker.ts","../../../source/constants.ts","../../../source/middlewares/state.ts","../../../source/browser.ts","../../../source/middlewares/hyperlink.ts","../../../source/helpers/url.ts","../../../source/app.ts","../../../source/builder.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CONSTANTS","UIElement","StateMiddleware","HyperLinkMiddleware"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../source/middlewares/invoker.ts","../../../source/constants.ts","../../../source/middlewares/state.ts","../../../source/browser.ts","../../../source/middlewares/hyperlink.ts","../../../source/helpers/url.ts","../../../source/app.ts","../../../source/builder.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CONSTANTS","UIElement","StateMiddleware","HyperLinkMiddleware"],"mappings":"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"}
package/dist/mjs/index.js CHANGED
@@ -144,12 +144,12 @@ const HyperLinkMiddlewareFactory = () => {
144
144
  let elem = e.target;
145
145
  let ignore = false;
146
146
  while (elem) {
147
- if (elem instanceof Element) {
147
+ if (elem instanceof HTMLElement) {
148
148
  if (elem.hasAttribute(result.NavIgnoreAttributeName)) {
149
149
  ignore = true;
150
150
  break;
151
151
  }
152
- if (elem.classList && elem.classList.contains(result.NavUrlClassName))
152
+ if (elem.classList.contains(result.NavUrlClassName) || elem.hasAttribute(result.NavUrlAttributeName))
153
153
  break;
154
154
  }
155
155
  if (elem === e.currentTarget)
@@ -356,6 +356,7 @@ var url = /*#__PURE__*/Object.freeze({
356
356
  default: urlHelper
357
357
  });
358
358
 
359
+ const APP_TYPENAME = "brandup-ui-app";
359
360
  const NAV_OVERIDE_ERROR = "NavigationOveride";
360
361
  /**
361
362
  * Base application class.
@@ -367,8 +368,9 @@ class Application extends UIElement {
367
368
  model;
368
369
  /** Application middleware invoker. */
369
370
  invoker;
370
- __isInitialized = false;
371
- __isDestroy = false;
371
+ __abort;
372
+ __isInited;
373
+ __isRuned;
372
374
  __middlewares = {};
373
375
  __globalSubmit;
374
376
  __execNav; // current navigation invoking
@@ -379,13 +381,18 @@ class Application extends UIElement {
379
381
  this.model = model;
380
382
  const core = { name: "app-root" };
381
383
  this.invoker = new MiddlewareInvoker(core);
384
+ this.__abort = new AbortController();
382
385
  }
383
- get typeName() { return "Application"; }
386
+ get typeName() { return APP_TYPENAME; }
387
+ /** Current navigation context. */
388
+ get current() { return this.__lastNav?.context; }
389
+ /** Application destroy signal. */
390
+ get abort() { return this.__abort.signal; }
384
391
  /** @internal */
385
392
  initialize(middlewares) {
386
- if (this.__isInitialized)
393
+ if (this.__isInited)
387
394
  throw new Error('Application already initialized.');
388
- this.__isInitialized = true;
395
+ this.__isInited = true;
389
396
  this.onInitialize();
390
397
  middlewares.forEach(middleware => {
391
398
  var name = middleware.name;
@@ -405,6 +412,7 @@ class Application extends UIElement {
405
412
  * @returns Middleware instance.
406
413
  */
407
414
  middleware(name) {
415
+ this.__abort.signal.throwIfAborted();
408
416
  const middleware = this.__middlewares[name];
409
417
  if (!middleware)
410
418
  throw new Error(`Middleware ${name} is not registered.`);
@@ -417,23 +425,28 @@ class Application extends UIElement {
417
425
  * @returns Promise of runned result.
418
426
  */
419
427
  async run(contextData, element) {
428
+ if (this.__abort.signal.aborted)
429
+ throw new Error('Application is destroyed.');
430
+ if (this.__isRuned)
431
+ throw new Error('Application already run.');
432
+ this.__isRuned = true;
420
433
  if (!contextData)
421
434
  contextData = {};
422
- this.setElement(element || BROWSER.body);
423
- const abort = new AbortController();
435
+ element = element || BROWSER.body;
436
+ this.setElement(element);
424
437
  const context = {
425
- abort: abort.signal,
438
+ abort: this.__abort.signal,
426
439
  app: this,
427
440
  data: contextData
428
441
  };
429
442
  try {
430
443
  await this.invoker.invoke("start", context);
431
444
  console.info("app start success");
432
- abort.signal.throwIfAborted();
445
+ this.__abort.signal.throwIfAborted();
433
446
  await this.invoker.invoke("loaded", context);
434
447
  console.info("app load success");
435
- abort.signal.throwIfAborted();
436
- BROWSER.window.addEventListener("submit", this.__globalSubmit = (e) => {
448
+ this.__abort.signal.throwIfAborted();
449
+ element.addEventListener("submit", this.__globalSubmit = (e) => {
437
450
  const form = e.target;
438
451
  if (!form.classList.contains(result.FormClassName))
439
452
  return;
@@ -448,7 +461,7 @@ class Application extends UIElement {
448
461
  throw reason;
449
462
  }
450
463
  try {
451
- await this.nav({ data: context.data });
464
+ await this.nav({ data: context.data, abort: this.__abort.signal });
452
465
  }
453
466
  catch (reason) {
454
467
  if (reason === NAV_OVERIDE_ERROR) {
@@ -477,14 +490,17 @@ class Application extends UIElement {
477
490
  parentNav.abort.abort(NAV_OVERIDE_ERROR);
478
491
  parentNav.context.overided = true;
479
492
  }
480
- const abort = new AbortController();
481
- const externalAbort = opt.abort;
482
- if (externalAbort)
483
- externalAbort.addEventListener("abort", () => abort.abort(externalAbort.reason));
493
+ const navIndex = parentNav ? parentNav.context.index + 1 : 1;
494
+ const navAbort = new AbortController();
495
+ const aborts = [this.__abort.signal, navAbort.signal];
496
+ if (opt.abort)
497
+ aborts.push(opt.abort);
498
+ const complextAbort = AbortSignal.any(aborts);
484
499
  const context = {
500
+ index: navIndex,
485
501
  source: isFirst ? "first" : "nav",
486
502
  app: this,
487
- abort: abort.signal,
503
+ abort: complextAbort,
488
504
  current: this.__lastNav?.context,
489
505
  parent: parentNav?.context,
490
506
  overided: false,
@@ -496,17 +512,77 @@ class Application extends UIElement {
496
512
  query: navUrl.query,
497
513
  hash: navUrl.hash,
498
514
  external: navUrl.external,
499
- replace
515
+ replace,
516
+ redirect: async (options) => {
517
+ complextAbort.throwIfAborted();
518
+ const result = await this.nav(options);
519
+ complextAbort.throwIfAborted();
520
+ return result;
521
+ }
500
522
  };
501
- const currentNav = { id: parentNav ? parentNav.id + 1 : 1, method: "navigate", context, abort, status: "work" };
502
- await this.__execNavigate(currentNav);
503
- return context;
523
+ const currentNav = { method: "navigate", context, abort: navAbort, status: "work" };
524
+ return await this.__execNavigate(currentNav, parentNav);
525
+ }
526
+ /**
527
+ * Reload page with nav.
528
+ */
529
+ reload() {
530
+ this.__abort.signal.throwIfAborted();
531
+ return this.nav({ replace: true });
532
+ }
533
+ /**
534
+ * Global reload page in browser.
535
+ */
536
+ restart() {
537
+ this.__abort.signal.throwIfAborted();
538
+ BROWSER.reload();
539
+ }
540
+ async destroy(contextData) {
541
+ if (this.__abort.signal.aborted)
542
+ return Promise.reject('Application already destroyed.');
543
+ this.__abort.abort();
544
+ console.info("app destroy begin");
545
+ if (this.__execNav)
546
+ this.__execNav.abort.abort();
547
+ if (this.__lastNav)
548
+ this.__lastNav.abort.abort();
549
+ if (this.__globalSubmit)
550
+ this.element?.removeEventListener("submit", this.__globalSubmit);
551
+ const destroyAbort = new AbortController();
552
+ const context = {
553
+ abort: destroyAbort.signal,
554
+ app: this,
555
+ data: contextData || {}
556
+ };
557
+ try {
558
+ await this.invoker.invoke("stop", context);
559
+ console.info("app destroy success");
560
+ return context;
561
+ }
562
+ catch (reason) {
563
+ console.error(`app destroy error: ${reason}`);
564
+ throw reason;
565
+ }
566
+ finally {
567
+ super.destroy();
568
+ }
569
+ }
570
+ /**
571
+ * Generate url of application base url.
572
+ * @param path Add optional path of base url.
573
+ * @param query Add optional query params.
574
+ * @param hash Add optional hash.
575
+ * @returns Relative url with base path.
576
+ */
577
+ buildUrl(path, query, hash) {
578
+ this.__abort.signal.throwIfAborted();
579
+ return urlHelper.buildUrl(this.env.basePath, path, query, hash);
504
580
  }
505
581
  async __onSubmit(options) {
506
582
  const opt = options instanceof HTMLFormElement ? { form: options } : options;
507
583
  const { form, button = null, query, data = {} } = opt;
508
584
  if (!form.checkValidity())
509
- return Promise.reject(new Error('Form is invalid.'));
585
+ throw new Error('Form is invalid.');
510
586
  let replace = form.hasAttribute(result.NavUrlReplaceAttributeName);
511
587
  let method = form.method;
512
588
  let enctype = form.enctype;
@@ -523,12 +599,12 @@ class Application extends UIElement {
523
599
  replace = true;
524
600
  }
525
601
  if (form.classList.contains(result.LoadingElementClass))
526
- return Promise.reject(new Error('Form already submitting.'));
602
+ throw new Error('Form already submitting.');
527
603
  form.classList.add(result.LoadingElementClass);
528
604
  method = method.toUpperCase();
529
605
  try {
530
606
  if (method === "GET")
531
- await this.nav({ url, query: new FormData(form), data: data, replace });
607
+ await this.nav({ url, query: new FormData(form), data: data, replace, abort: opt.abort });
532
608
  else {
533
609
  const navUrl = urlHelper.parseUrl(url);
534
610
  if (query)
@@ -539,14 +615,17 @@ class Application extends UIElement {
539
615
  parentNav.abort.abort(NAV_OVERIDE_ERROR);
540
616
  parentNav.context.overided = true;
541
617
  }
542
- const abort = new AbortController();
543
- const externalAbort = opt.abort;
544
- if (externalAbort)
545
- externalAbort.addEventListener("abort", () => abort.abort(externalAbort.reason));
618
+ const navIndex = parentNav ? parentNav.context.index + 1 : 1;
619
+ const submitAbort = new AbortController();
620
+ const aborts = [this.__abort.signal, submitAbort.signal];
621
+ if (opt.abort)
622
+ aborts.push(opt.abort);
623
+ const complextAbort = AbortSignal.any(aborts);
546
624
  let context = {
625
+ index: navIndex,
547
626
  source: "submit",
548
627
  app: this,
549
- abort: abort.signal,
628
+ abort: complextAbort,
550
629
  current: this.__lastNav?.context,
551
630
  parent: parentNav?.context,
552
631
  overided: false,
@@ -562,9 +641,15 @@ class Application extends UIElement {
562
641
  query: navUrl.query,
563
642
  hash: navUrl.hash,
564
643
  external: navUrl.external,
565
- replace
644
+ replace,
645
+ redirect: async (options) => {
646
+ complextAbort.throwIfAborted();
647
+ const result = await this.nav(options);
648
+ complextAbort.throwIfAborted();
649
+ return result;
650
+ }
566
651
  };
567
- const currentNav = { id: parentNav ? parentNav.id + 1 : 1, method: "submit", context, abort, status: "work" };
652
+ const currentNav = { method: "submit", context, abort: submitAbort, status: "work" };
568
653
  await this.__execNavigate(currentNav);
569
654
  }
570
655
  }
@@ -574,64 +659,18 @@ class Application extends UIElement {
574
659
  button.classList.remove(result.LoadingElementClass);
575
660
  }
576
661
  }
577
- /**
578
- * Reload page with nav.
579
- */
580
- reload() {
581
- return this.nav({ replace: true });
582
- }
583
- /**
584
- * Global reload page in browser.
585
- */
586
- restart() {
587
- BROWSER.reload();
588
- }
589
- async destroy(contextData) {
590
- if (this.__isDestroy)
591
- return Promise.reject('Application already destroyed.');
592
- this.__isDestroy = true;
593
- console.info("app destroy begin");
594
- if (this.__globalSubmit)
595
- BROWSER.window.removeEventListener("submit", this.__globalSubmit);
596
- if (this.__execNav)
597
- this.__execNav.abort.abort();
598
- const abort = new AbortController();
599
- const context = {
600
- abort: abort.signal,
601
- app: this,
602
- data: contextData || {}
603
- };
604
- try {
605
- await this.invoker.invoke("stop", context);
606
- console.info("app destroy success");
607
- return context;
608
- }
609
- catch (reason) {
610
- console.error(`app destroy error: ${reason}`);
611
- throw reason;
612
- }
613
- finally {
614
- super.destroy();
615
- }
616
- }
617
- /**
618
- * Generate url of application base url.
619
- * @param path Add optional path of base url.
620
- * @param query Add optional query params.
621
- * @param hash Add optional hash.
622
- * @returns Relative url with base path.
623
- */
624
- buildUrl(path, query, hash) {
625
- return urlHelper.buildUrl(this.env.basePath, path, query, hash);
626
- }
627
- async __execNavigate(nav) {
628
- this.__execNav = nav;
662
+ async __execNavigate(nav, parent) {
663
+ if (parent)
664
+ parent.overide = nav;
629
665
  try {
630
666
  console.info(`${nav.method} begin`, nav.context);
667
+ nav.context.abort.throwIfAborted();
668
+ this.__execNav = nav;
631
669
  await this.invoker.invoke(nav.method, nav.context);
632
670
  this.__lastNav = nav;
633
671
  nav.status = "success";
634
672
  console.info(`${nav.method} ${nav.status} ${nav.context.url}`);
673
+ return nav.context;
635
674
  }
636
675
  catch (reason) {
637
676
  if (reason?.name === "AbortError") {
@@ -639,8 +678,11 @@ class Application extends UIElement {
639
678
  console.warn(`${nav.method} ${nav.status} ${nav.context.url}`);
640
679
  }
641
680
  else if (reason === NAV_OVERIDE_ERROR) {
681
+ if (!nav.context.overided || !nav.overide)
682
+ throw new Error("Nav is not overided.");
642
683
  nav.status = "overided";
643
684
  console.warn(`${nav.method} ${nav.status} ${nav.context.url}`);
685
+ return nav.overide.context; // return redirected navigation
644
686
  }
645
687
  else {
646
688
  nav.status = "error";
@@ -662,20 +704,12 @@ class ApplicationBuilder {
662
704
  this.__appType = appType;
663
705
  return this;
664
706
  }
665
- useMiddleware(middleware, ...params) {
666
- if (!middleware)
667
- throw `Middleware propery is required.`;
668
- let midl;
669
- if (typeof middleware === "function")
670
- midl = middleware(...params);
671
- else
672
- midl = middleware;
707
+ useMiddleware(createFunc, ...params) {
708
+ let midl = createFunc(...params);
673
709
  this.__middlewares.push(midl);
674
710
  return this;
675
711
  }
676
712
  build(env, ...args) {
677
- if (!env)
678
- throw new Error("Parameter env is required.");
679
713
  if (!env.basePath)
680
714
  env.basePath = "/";
681
715
  const app = new this.__appType(env, this.__model, ...args);
@@ -684,5 +718,5 @@ class ApplicationBuilder {
684
718
  }
685
719
  }
686
720
 
687
- export { Application, ApplicationBuilder, browser as BROWSER, constants as CONSTANTS, NAV_OVERIDE_ERROR, url as UrlHelper };
721
+ export { APP_TYPENAME, Application, ApplicationBuilder, browser as BROWSER, constants as CONSTANTS, NAV_OVERIDE_ERROR, url as UrlHelper };
688
722
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../source/middlewares/invoker.ts","../../../source/constants.ts","../../../source/middlewares/state.ts","../../../source/browser.ts","../../../source/middlewares/hyperlink.ts","../../../source/helpers/url.ts","../../../source/app.ts","../../../source/builder.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CONSTANTS","StateMiddleware","HyperLinkMiddleware"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../source/middlewares/invoker.ts","../../../source/constants.ts","../../../source/middlewares/state.ts","../../../source/browser.ts","../../../source/middlewares/hyperlink.ts","../../../source/helpers/url.ts","../../../source/app.ts","../../../source/builder.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["CONSTANTS","StateMiddleware","HyperLinkMiddleware"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -38,7 +38,16 @@ interface StopContext<TApplication extends Application = Application, TData exte
38
38
  readonly app: TApplication;
39
39
  readonly data: TData;
40
40
  }
41
+ interface NavigateOptions<TData extends ContextData = ContextData> {
42
+ url?: string | null;
43
+ query?: QueryParams | URLSearchParams | FormData;
44
+ replace?: boolean;
45
+ data?: TData;
46
+ abort?: AbortSignal;
47
+ }
41
48
  interface NavigateContext<TApplication extends Application = Application, TData extends ContextData = ContextData> extends InvokeContext {
49
+ /** Index number of all application navigations. */
50
+ readonly index: number;
42
51
  /** Source navigation event. */
43
52
  readonly source: NavigateSource;
44
53
  /** Application instance of navigation. */
@@ -65,6 +74,8 @@ interface NavigateContext<TApplication extends Application = Application, TData
65
74
  readonly external: boolean;
66
75
  /** Replace current navigation entry. */
67
76
  replace: boolean;
77
+ /** Redirect to new url and throw for end current context. */
78
+ redirect(options?: NavigateOptions<TData> | string | null): Promise<NavigateContext<TApplication, TData>>;
68
79
  }
69
80
  /**
70
81
  * Navigation event source.
@@ -73,6 +84,13 @@ interface NavigateContext<TApplication extends Application = Application, TData
73
84
  * submit - from submit form.
74
85
  */
75
86
  type NavigateSource = "first" | "nav" | "submit";
87
+ interface SubmitOptions<TData extends ContextData = ContextData> {
88
+ form: HTMLFormElement;
89
+ button?: HTMLButtonElement | null;
90
+ query?: QueryParams | URLSearchParams;
91
+ data?: TData;
92
+ abort?: AbortSignal;
93
+ }
76
94
  interface SubmitContext<TApplication extends Application = Application, TData extends ContextData = ContextData> extends NavigateContext<TApplication, TData> {
77
95
  readonly form: HTMLFormElement;
78
96
  readonly button: HTMLButtonElement | null;
@@ -90,6 +108,7 @@ declare class MiddlewareInvoker {
90
108
  private __exec;
91
109
  }
92
110
 
111
+ declare const APP_TYPENAME = "brandup-ui-app";
93
112
  declare const NAV_OVERIDE_ERROR = "NavigationOveride";
94
113
  /**
95
114
  * Base application class.
@@ -101,14 +120,19 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
101
120
  readonly model: TModel;
102
121
  /** Application middleware invoker. */
103
122
  readonly invoker: MiddlewareInvoker;
104
- private __isInitialized;
105
- private __isDestroy;
123
+ private __abort;
124
+ private __isInited?;
125
+ private __isRuned?;
106
126
  private __middlewares;
107
127
  private __globalSubmit?;
108
128
  private __execNav?;
109
129
  private __lastNav?;
110
130
  constructor(env: EnvironmentModel, model: TModel, ...args: any[]);
111
131
  get typeName(): string;
132
+ /** Current navigation context. */
133
+ get current(): NavigateContext<this> | undefined;
134
+ /** Application destroy signal. */
135
+ get abort(): AbortSignal;
112
136
  protected onInitialize(): void;
113
137
  /**
114
138
  * Get middleware by type.
@@ -128,8 +152,7 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
128
152
  * @param options Navigate options.
129
153
  * @returns Promise of navigated result.
130
154
  */
131
- nav<TData extends ContextData>(options?: NavigationOptions<TData> | string | null): Promise<NavigateContext<this, TData>>;
132
- private __onSubmit;
155
+ nav<TData extends ContextData>(options?: NavigateOptions<TData> | string | null): Promise<NavigateContext<this, TData>>;
133
156
  /**
134
157
  * Reload page with nav.
135
158
  */
@@ -138,7 +161,7 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
138
161
  * Global reload page in browser.
139
162
  */
140
163
  restart(): void;
141
- destroy<TData extends ContextData = ContextData>(contextData?: TData | null): Promise<StopContext<Application, TData>>;
164
+ destroy<TData extends ContextData = ContextData>(contextData?: TData | null): Promise<StopContext<this, TData>>;
142
165
  /**
143
166
  * Generate url of application base url.
144
167
  * @param path Add optional path of base url.
@@ -147,22 +170,9 @@ declare class Application<TModel extends ApplicationModel = ApplicationModel> ex
147
170
  * @returns Relative url with base path.
148
171
  */
149
172
  buildUrl(path?: string, query?: QueryParams | URLSearchParams | FormData, hash?: string): string;
173
+ private __onSubmit;
150
174
  private __execNavigate;
151
175
  }
152
- interface NavigationOptions<TData extends ContextData = ContextData> {
153
- url?: string | null;
154
- query?: QueryParams | URLSearchParams | FormData;
155
- replace?: boolean;
156
- data?: TData;
157
- abort?: AbortSignal;
158
- }
159
- interface SubmitOptions<TData extends ContextData = ContextData> {
160
- form: HTMLFormElement;
161
- button?: HTMLButtonElement | null;
162
- query?: QueryParams | URLSearchParams;
163
- data?: TData;
164
- abort?: AbortSignal;
165
- }
166
176
 
167
177
  declare class ApplicationBuilder<TModel extends ApplicationModel> {
168
178
  private __model;
@@ -170,7 +180,7 @@ declare class ApplicationBuilder<TModel extends ApplicationModel> {
170
180
  private __middlewares;
171
181
  constructor(model: TModel);
172
182
  useApp(appType: typeof Application<TModel>): this;
173
- useMiddleware(middleware: ((...params: Array<any>) => Middleware) | Middleware, ...params: Array<any>): this;
183
+ useMiddleware(createFunc: ((...params: Array<any>) => Middleware), ...params: Array<any>): this;
174
184
  build(env: EnvironmentModel, ...args: any[]): Application<TModel>;
175
185
  }
176
186
 
@@ -226,4 +236,4 @@ declare namespace browser {
226
236
  export { _default as default };
227
237
  }
228
238
 
229
- export { Application, ApplicationBuilder, type ApplicationModel, browser as BROWSER, constants as CONSTANTS, type ContextData, type EnvironmentModel, type InvokeContext, type Middleware, type MiddlewareMethod, type MiddlewareNext, NAV_OVERIDE_ERROR, type NavigateContext, type NavigateSource, type NavigationOptions, type QueryParams, type StartContext, type StopContext, type SubmitContext, type SubmitMethod, type SubmitOptions, url as UrlHelper };
239
+ export { APP_TYPENAME, Application, ApplicationBuilder, type ApplicationModel, browser as BROWSER, constants as CONSTANTS, type ContextData, type EnvironmentModel, type InvokeContext, type Middleware, type MiddlewareMethod, type MiddlewareNext, NAV_OVERIDE_ERROR, type NavigateContext, type NavigateOptions, type NavigateSource, type QueryParams, type StartContext, type StopContext, type SubmitContext, type SubmitMethod, type SubmitOptions, url as UrlHelper };
package/package.json CHANGED
@@ -24,10 +24,10 @@
24
24
  "module": "dist/mjs/index.js",
25
25
  "types": "dist/types.d.ts",
26
26
  "license": "Apache-2.0",
27
- "version": "1.0.20",
27
+ "version": "1.0.22",
28
28
  "dependencies": {
29
- "@brandup/ui": "^1.0.20",
30
- "@brandup/ui-dom": "^1.0.20"
29
+ "@brandup/ui": "^1.0.22",
30
+ "@brandup/ui-dom": "^1.0.22"
31
31
  },
32
32
  "files": [
33
33
  "dist",