patron-oop 1.45.0 → 1.46.0
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/CHANGELOG.md +12 -0
- package/dist/patron.cjs +106 -35
- package/dist/patron.cjs.map +1 -1
- package/dist/patron.d.ts +40 -1
- package/dist/patron.js +103 -36
- package/dist/patron.js.map +1 -1
- package/dist/patron.min.js +1 -1
- package/dist/patron.min.mjs +1 -1
- package/dist/patron.min.mjs.map +1 -1
- package/dist/patron.mjs +103 -36
- package/dist/patron.mjs.map +1 -1
- package/docs/README.md +3 -0
- package/docs/assets/css/base.css +42 -0
- package/docs/assets/favicon/android-icon-144x144.png +0 -0
- package/docs/assets/favicon/android-icon-192x192.png +0 -0
- package/docs/assets/favicon/android-icon-36x36.png +0 -0
- package/docs/assets/favicon/android-icon-48x48.png +0 -0
- package/docs/assets/favicon/android-icon-72x72.png +0 -0
- package/docs/assets/favicon/android-icon-96x96.png +0 -0
- package/docs/assets/favicon/apple-icon-114x114.png +0 -0
- package/docs/assets/favicon/apple-icon-120x120.png +0 -0
- package/docs/assets/favicon/apple-icon-144x144.png +0 -0
- package/docs/assets/favicon/apple-icon-152x152.png +0 -0
- package/docs/assets/favicon/apple-icon-180x180.png +0 -0
- package/docs/assets/favicon/apple-icon-57x57.png +0 -0
- package/docs/assets/favicon/apple-icon-60x60.png +0 -0
- package/docs/assets/favicon/apple-icon-72x72.png +0 -0
- package/docs/assets/favicon/apple-icon-76x76.png +0 -0
- package/docs/assets/favicon/apple-icon-precomposed.png +0 -0
- package/docs/assets/favicon/apple-icon.png +0 -0
- package/docs/assets/favicon/browserconfig.xml +2 -0
- package/docs/assets/favicon/favicon-16x16.png +0 -0
- package/docs/assets/favicon/favicon-32x32.png +0 -0
- package/docs/assets/favicon/favicon-96x96.png +0 -0
- package/docs/assets/favicon/favicon.ico +0 -0
- package/docs/assets/favicon/manifest.json +41 -0
- package/docs/assets/favicon/ms-icon-144x144.png +0 -0
- package/docs/assets/favicon/ms-icon-150x150.png +0 -0
- package/docs/assets/favicon/ms-icon-310x310.png +0 -0
- package/docs/assets/favicon/ms-icon-70x70.png +0 -0
- package/docs/assets/img/404.jpg +0 -0
- package/docs/assets/img/angular_16.jpg +0 -0
- package/docs/assets/img/angular_32.jpg +0 -0
- package/docs/assets/img/eo_16.jpg +0 -0
- package/docs/assets/img/eo_big.png +0 -0
- package/docs/assets/img/github_16.jpg +0 -0
- package/docs/assets/img/logo.jpg +0 -0
- package/docs/assets/img/philosofy/observable.jpg +0 -0
- package/docs/assets/img/philosofy/responsible.jpg +0 -0
- package/docs/assets/img/philosofy/result.jpg +0 -0
- package/docs/assets/img/philosofy/tell.jpg +0 -0
- package/docs/assets/img/react_16.jpg +0 -0
- package/docs/assets/img/react_32.jpg +0 -0
- package/docs/assets/img/vue_16.jpg +0 -0
- package/docs/assets/img/vue_32.jpg +0 -0
- package/docs/assets/js/components/linkDynamic.mjs +11 -0
- package/docs/assets/js/components/linkReloadable.mjs +13 -0
- package/docs/assets/js/entrypoints/compatibility.mjs +31 -0
- package/docs/assets/js/entrypoints/components.mjs +2 -0
- package/docs/assets/js/entrypoints/examples.mjs +25 -0
- package/docs/assets/js/entrypoints/factory.mjs +20 -0
- package/docs/assets/js/entrypoints/guest.mjs +61 -0
- package/docs/assets/js/entrypoints/index.mjs +110 -0
- package/docs/assets/js/entrypoints/integrations.mjs +36 -0
- package/docs/assets/js/entrypoints/patron.mjs +46 -0
- package/docs/assets/js/entrypoints/source.mjs +76 -0
- package/docs/assets/js/entrypoints/terminology.mjs +51 -0
- package/docs/assets/js/entrypoints/utils.mjs +61 -0
- package/docs/assets/js/lib/StyleFetched.mjs +14 -0
- package/docs/assets/js/routing.mjs +110 -0
- package/docs/assets/schemes/dip.html +28 -0
- package/docs/favicon.ico +0 -0
- package/docs/index-dev.html +346 -0
- package/docs/index.html +346 -0
- package/docs/manifest.json +41 -0
- package/docs/pages/404.html +9 -0
- package/docs/pages/common/layout.html +17 -0
- package/docs/pages/compatibility/dip.html +82 -0
- package/docs/pages/compatibility/elegant-objects.html +373 -0
- package/docs/pages/compatibility/layout.html +17 -0
- package/docs/pages/examples/errors.html +167 -0
- package/docs/pages/examples/index.html +10 -0
- package/docs/pages/examples.html +41 -0
- package/docs/pages/factory/index.html +18 -0
- package/docs/pages/factory.html +36 -0
- package/docs/pages/guest/guest-applied.html +51 -0
- package/docs/pages/guest/guest-cast.html +219 -0
- package/docs/pages/guest/guest-disposable.html +147 -0
- package/docs/pages/guest/guest-executor-applied.html +65 -0
- package/docs/pages/guest/guest-object.html +101 -0
- package/docs/pages/guest/guest-pool.html +107 -0
- package/docs/pages/guest/guest-sync.html +66 -0
- package/docs/pages/guest/index.html +115 -0
- package/docs/pages/guest.html +59 -0
- package/docs/pages/index.html +72 -0
- package/docs/pages/integrations/angular.html +5 -0
- package/docs/pages/integrations/layout.html +17 -0
- package/docs/pages/integrations/react.html +7 -0
- package/docs/pages/integrations/vue.html +102 -0
- package/docs/pages/patron/index.html +140 -0
- package/docs/pages/patron/patron-applied.html +66 -0
- package/docs/pages/patron/patron-executor-applied.html +94 -0
- package/docs/pages/patron/patron-once.html +110 -0
- package/docs/pages/patron/patron-pool.html +99 -0
- package/docs/pages/patron.html +50 -0
- package/docs/pages/philosofy.html +210 -0
- package/docs/pages/source/index.html +167 -0
- package/docs/pages/source/source-active.html +113 -0
- package/docs/pages/source/source-all.html +129 -0
- package/docs/pages/source/source-applied.html +73 -0
- package/docs/pages/source/source-dynamic.html +93 -0
- package/docs/pages/source/source-executor-applied.html +64 -0
- package/docs/pages/source/source-map.html +192 -0
- package/docs/pages/source/source-once.html +73 -0
- package/docs/pages/source/source-race.html +171 -0
- package/docs/pages/source/source-sequence.html +160 -0
- package/docs/pages/source/source-with-pool.html +102 -0
- package/docs/pages/source/source.html +167 -0
- package/docs/pages/source.html +68 -0
- package/docs/pages/terminology/guest.html +14 -0
- package/docs/pages/terminology/index.html +6 -0
- package/docs/pages/terminology/introduction.html +25 -0
- package/docs/pages/terminology/patron.html +10 -0
- package/docs/pages/terminology/source.html +55 -0
- package/docs/pages/terminology/visitor.html +19 -0
- package/docs/pages/terminology.html +53 -0
- package/docs/pages/utils/give.html +47 -0
- package/docs/pages/utils/index.html +24 -0
- package/docs/pages/utils/is-guest-aware.html +22 -0
- package/docs/pages/utils/is-guest.html +21 -0
- package/docs/pages/utils/is-patron-in-pools.html +53 -0
- package/docs/pages/utils/private.html +44 -0
- package/docs/pages/utils/remove-patron-from-pools.html +57 -0
- package/docs/pages/utils/value.html +47 -0
- package/docs/pages/utils.html +61 -0
- package/eslint.config.mjs +6 -0
- package/package.json +1 -1
- package/src/Patron/PatronApplied.ts +22 -0
- package/src/Patron/PatronExecutorApplied.ts +25 -0
- package/src/index.ts +4 -0
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,18 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
4
4
|
|
5
|
+
## [1.46.0](https://github.com/kosukhin/patron/compare/v1.45.0...v1.46.0) (2025-03-30)
|
6
|
+
|
7
|
+
|
8
|
+
### Features
|
9
|
+
|
10
|
+
* **43-issue:** documentation inside repo ([3d9ce71](https://github.com/kosukhin/patron/commit/3d9ce71bed6568f3b21e90eb742735d8289bcd15))
|
11
|
+
* **43-issue:** fix existed source docs ([bdc7c9f](https://github.com/kosukhin/patron/commit/bdc7c9f67389c74dd5c8b87ae0c169a544bf4808))
|
12
|
+
* **43-issue:** goes thru guest part ([4abaff8](https://github.com/kosukhin/patron/commit/4abaff86c0a3d3812c5d7507fa395286554fd213))
|
13
|
+
* **43-issue:** guest part done ([00329bc](https://github.com/kosukhin/patron/commit/00329bcd04d713fd7a035a586f36e6653f6f980f))
|
14
|
+
* **43-issue:** patron applied done ([7c1af0b](https://github.com/kosukhin/patron/commit/7c1af0b4ee99e276e3d7b9303e8a52bd730c1380))
|
15
|
+
* **43-issue:** source section done ([e280a39](https://github.com/kosukhin/patron/commit/e280a39483fd6f6adf59e3d6a3b571921f3d04dc))
|
16
|
+
|
5
17
|
## [1.45.0](https://github.com/kosukhin/patron/compare/v1.44.1...v1.45.0) (2025-03-23)
|
6
18
|
|
7
19
|
|
package/dist/patron.cjs
CHANGED
@@ -62,9 +62,9 @@ class GuestCast {
|
|
62
62
|
}
|
63
63
|
}
|
64
64
|
|
65
|
-
var __defProp$
|
66
|
-
var __defNormalProp$
|
67
|
-
var __publicField$
|
65
|
+
var __defProp$a = Object.defineProperty;
|
66
|
+
var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
67
|
+
var __publicField$a = (obj, key, value) => __defNormalProp$a(obj, typeof key !== "symbol" ? key + "" : key, value);
|
68
68
|
const poolSets = /* @__PURE__ */ new Map();
|
69
69
|
const patronPools = (patron) => {
|
70
70
|
const pools = [];
|
@@ -98,8 +98,8 @@ const isPatronInPools = (patron) => {
|
|
98
98
|
class PatronPool {
|
99
99
|
constructor(initiator) {
|
100
100
|
this.initiator = initiator;
|
101
|
-
__publicField$
|
102
|
-
__publicField$
|
101
|
+
__publicField$a(this, "patrons");
|
102
|
+
__publicField$a(this, "give");
|
103
103
|
this.patrons = /* @__PURE__ */ new Set();
|
104
104
|
poolSets.set(this, this.patrons);
|
105
105
|
const doReceive = (value) => {
|
@@ -148,13 +148,13 @@ class PatronPool {
|
|
148
148
|
}
|
149
149
|
}
|
150
150
|
|
151
|
-
var __defProp$
|
152
|
-
var __defNormalProp$
|
153
|
-
var __publicField$
|
151
|
+
var __defProp$9 = Object.defineProperty;
|
152
|
+
var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
153
|
+
var __publicField$9 = (obj, key, value) => __defNormalProp$9(obj, typeof key !== "symbol" ? key + "" : key, value);
|
154
154
|
class GuestPool {
|
155
155
|
constructor(initiator) {
|
156
|
-
__publicField$
|
157
|
-
__publicField$
|
156
|
+
__publicField$9(this, "guests", /* @__PURE__ */ new Set());
|
157
|
+
__publicField$9(this, "patronPool");
|
158
158
|
this.patronPool = new PatronPool(initiator);
|
159
159
|
}
|
160
160
|
give(value) {
|
@@ -264,6 +264,16 @@ class GuestApplied {
|
|
264
264
|
}
|
265
265
|
}
|
266
266
|
|
267
|
+
var __defProp$8 = Object.defineProperty;
|
268
|
+
var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
269
|
+
var __publicField$8 = (obj, key, value) => __defNormalProp$8(obj, key + "" , value);
|
270
|
+
class GuestExecutorApplied {
|
271
|
+
constructor(baseGuest, applier) {
|
272
|
+
__publicField$8(this, "give");
|
273
|
+
this.give = applier((v) => give(v, baseGuest));
|
274
|
+
}
|
275
|
+
}
|
276
|
+
|
267
277
|
class Patron {
|
268
278
|
constructor(willBePatron) {
|
269
279
|
this.willBePatron = willBePatron;
|
@@ -285,13 +295,13 @@ class Patron {
|
|
285
295
|
}
|
286
296
|
const isPatron = (guest) => typeof guest === "object" && guest !== null && guest?.introduction?.() === "patron";
|
287
297
|
|
288
|
-
var __defProp$
|
289
|
-
var __defNormalProp$
|
290
|
-
var __publicField$
|
298
|
+
var __defProp$7 = Object.defineProperty;
|
299
|
+
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
300
|
+
var __publicField$7 = (obj, key, value) => __defNormalProp$7(obj, key + "" , value);
|
291
301
|
class PatronOnce {
|
292
302
|
constructor(baseGuest) {
|
293
303
|
this.baseGuest = baseGuest;
|
294
|
-
__publicField$
|
304
|
+
__publicField$7(this, "received", false);
|
295
305
|
if (baseGuest === void 0) {
|
296
306
|
throw new Error("PatronOnce didnt receive baseGuest argument");
|
297
307
|
}
|
@@ -315,15 +325,49 @@ class PatronOnce {
|
|
315
325
|
}
|
316
326
|
}
|
317
327
|
|
318
|
-
var __defProp$
|
319
|
-
var __defNormalProp$
|
320
|
-
var __publicField$
|
328
|
+
var __defProp$6 = Object.defineProperty;
|
329
|
+
var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
330
|
+
var __publicField$6 = (obj, key, value) => __defNormalProp$6(obj, key + "" , value);
|
331
|
+
class PatronApplied {
|
332
|
+
constructor(baseGuest, applier) {
|
333
|
+
__publicField$6(this, "guestApplied");
|
334
|
+
this.guestApplied = new GuestApplied(baseGuest, applier);
|
335
|
+
}
|
336
|
+
give(value) {
|
337
|
+
this.guestApplied.give(value);
|
338
|
+
return this;
|
339
|
+
}
|
340
|
+
introduction() {
|
341
|
+
return "patron";
|
342
|
+
}
|
343
|
+
}
|
344
|
+
|
345
|
+
var __defProp$5 = Object.defineProperty;
|
346
|
+
var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
347
|
+
var __publicField$5 = (obj, key, value) => __defNormalProp$5(obj, key + "" , value);
|
348
|
+
class PatronExecutorApplied {
|
349
|
+
constructor(baseGuest, applier) {
|
350
|
+
__publicField$5(this, "guestApplied");
|
351
|
+
this.guestApplied = new GuestExecutorApplied(baseGuest, applier);
|
352
|
+
}
|
353
|
+
give(value) {
|
354
|
+
this.guestApplied.give(value);
|
355
|
+
return this;
|
356
|
+
}
|
357
|
+
introduction() {
|
358
|
+
return "patron";
|
359
|
+
}
|
360
|
+
}
|
361
|
+
|
362
|
+
var __defProp$4 = Object.defineProperty;
|
363
|
+
var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
364
|
+
var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
|
321
365
|
class SourceWithPool {
|
322
366
|
constructor(sourceDocument) {
|
323
367
|
this.sourceDocument = sourceDocument;
|
324
|
-
__publicField$
|
325
|
-
__publicField$
|
326
|
-
__publicField$
|
368
|
+
__publicField$4(this, "thePool", new PatronPool(this));
|
369
|
+
__publicField$4(this, "theEmptyPool", new PatronPool(this));
|
370
|
+
__publicField$4(this, "isEmpty");
|
327
371
|
this.isEmpty = sourceDocument === void 0;
|
328
372
|
}
|
329
373
|
pool() {
|
@@ -355,15 +399,15 @@ class SourceWithPool {
|
|
355
399
|
}
|
356
400
|
}
|
357
401
|
|
358
|
-
var __defProp$
|
359
|
-
var __defNormalProp$
|
360
|
-
var __publicField$
|
402
|
+
var __defProp$3 = Object.defineProperty;
|
403
|
+
var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
404
|
+
var __publicField$3 = (obj, key, value) => __defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
|
361
405
|
class SourceAll {
|
362
406
|
constructor(initialKnownKeys = []) {
|
363
|
-
__publicField$
|
364
|
-
__publicField$
|
365
|
-
__publicField$
|
366
|
-
__publicField$
|
407
|
+
__publicField$3(this, "theAll");
|
408
|
+
__publicField$3(this, "keysKnown");
|
409
|
+
__publicField$3(this, "keysFilled", /* @__PURE__ */ new Set());
|
410
|
+
__publicField$3(this, "filledAllPool", new GuestPool(this));
|
367
411
|
this.theAll = new SourceWithPool({});
|
368
412
|
this.keysKnown = new Set(initialKnownKeys);
|
369
413
|
}
|
@@ -563,13 +607,13 @@ class SourceRace {
|
|
563
607
|
}
|
564
608
|
}
|
565
609
|
|
566
|
-
var __defProp$
|
567
|
-
var __defNormalProp$
|
568
|
-
var __publicField$
|
610
|
+
var __defProp$2 = Object.defineProperty;
|
611
|
+
var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
612
|
+
var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, key + "" , value);
|
569
613
|
class SourceActive {
|
570
614
|
constructor(configExecutor) {
|
571
615
|
this.configExecutor = configExecutor;
|
572
|
-
__publicField$
|
616
|
+
__publicField$2(this, "source", new SourceWithPool());
|
573
617
|
if (configExecutor === void 0) {
|
574
618
|
throw new Error(
|
575
619
|
"SourceActive constructor didnt receive executor function"
|
@@ -626,18 +670,41 @@ class SourceApplied {
|
|
626
670
|
}
|
627
671
|
}
|
628
672
|
|
629
|
-
var __defProp = Object.defineProperty;
|
630
|
-
var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
|
631
|
-
var __publicField = (obj, key, value2) => __defNormalProp(obj, key + "" , value2);
|
673
|
+
var __defProp$1 = Object.defineProperty;
|
674
|
+
var __defNormalProp$1 = (obj, key, value2) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
|
675
|
+
var __publicField$1 = (obj, key, value2) => __defNormalProp$1(obj, key + "" , value2);
|
632
676
|
class SourceExecutorApplied {
|
633
677
|
constructor(source, applier) {
|
634
|
-
__publicField(this, "value");
|
678
|
+
__publicField$1(this, "value");
|
635
679
|
this.value = applier((g) => {
|
636
680
|
value(source, g);
|
637
681
|
});
|
638
682
|
}
|
639
683
|
}
|
640
684
|
|
685
|
+
var __defProp = Object.defineProperty;
|
686
|
+
var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
|
687
|
+
var __publicField = (obj, key, value2) => __defNormalProp(obj, key + "" , value2);
|
688
|
+
class SourceOnce {
|
689
|
+
constructor(initialValue) {
|
690
|
+
__publicField(this, "source");
|
691
|
+
this.source = new SourceWithPool(initialValue);
|
692
|
+
}
|
693
|
+
value(guest) {
|
694
|
+
value(this.source, guest);
|
695
|
+
return this;
|
696
|
+
}
|
697
|
+
give(value2) {
|
698
|
+
if (!this.source.filled()) {
|
699
|
+
this.source.give(value2);
|
700
|
+
}
|
701
|
+
return this;
|
702
|
+
}
|
703
|
+
pool() {
|
704
|
+
return this.source.pool();
|
705
|
+
}
|
706
|
+
}
|
707
|
+
|
641
708
|
class PrivateClass {
|
642
709
|
constructor(constructorFn, modules = {}) {
|
643
710
|
this.constructorFn = constructorFn;
|
@@ -670,10 +737,13 @@ exports.Guest = Guest;
|
|
670
737
|
exports.GuestApplied = GuestApplied;
|
671
738
|
exports.GuestCast = GuestCast;
|
672
739
|
exports.GuestDisposable = GuestDisposable;
|
740
|
+
exports.GuestExecutorApplied = GuestExecutorApplied;
|
673
741
|
exports.GuestObject = GuestObject;
|
674
742
|
exports.GuestPool = GuestPool;
|
675
743
|
exports.GuestSync = GuestSync;
|
676
744
|
exports.Patron = Patron;
|
745
|
+
exports.PatronApplied = PatronApplied;
|
746
|
+
exports.PatronExecutorApplied = PatronExecutorApplied;
|
677
747
|
exports.PatronOnce = PatronOnce;
|
678
748
|
exports.PatronPool = PatronPool;
|
679
749
|
exports.Private = Private;
|
@@ -685,6 +755,7 @@ exports.SourceApplied = SourceApplied;
|
|
685
755
|
exports.SourceDynamic = SourceDynamic;
|
686
756
|
exports.SourceExecutorApplied = SourceExecutorApplied;
|
687
757
|
exports.SourceMap = SourceMap;
|
758
|
+
exports.SourceOnce = SourceOnce;
|
688
759
|
exports.SourceRace = SourceRace;
|
689
760
|
exports.SourceSequence = SourceSequence;
|
690
761
|
exports.SourceWithPool = SourceWithPool;
|
package/dist/patron.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"patron.cjs","sources":["../src/Guest/Guest.ts","../src/Guest/GuestCast.ts","../src/Patron/PatronPool.ts","../src/Guest/GuestPool.ts","../src/Guest/GuestSync.ts","../src/Guest/GuestObject.ts","../src/Guest/GuestDisposable.ts","../src/Guest/GuestApplied.ts","../src/Patron/Patron.ts","../src/Patron/PatronOnce.ts","../src/Source/SourceWithPool.ts","../src/Source/SourceAll.ts","../src/Source/Source.ts","../src/Source/SourceSequence.ts","../src/Source/SourceMap.ts","../src/Source/SourceRace.ts","../src/Source/SourceActive.ts","../src/Source/SourceDynamic.ts","../src/Source/SourceApplied.ts","../src/Source/SourceExecutorApplied.ts","../src/Private/PrivateClass.ts","../src/Private/Private.ts"],"sourcesContent":["type GuestIntroduction = \"guest\" | \"patron\";\n\nexport type GuestExecutorType<T = any, This = void> = (value: T) => This;\n\nexport interface GuestObjectType<T = any> {\n give(value: T): this;\n introduction?(): GuestIntroduction;\n}\n\nexport type GuestType<T = any> = GuestExecutorType<T> | GuestObjectType<T>;\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/give\n */\nexport function give<T>(data: T, guest: GuestType<T>) {\n if (data === undefined) {\n throw new Error(\"give didnt receive data argument\");\n }\n if (guest === undefined) {\n throw new Error(\"give didnt receive guest argument\");\n }\n if (typeof guest === \"function\") {\n guest(data);\n } else {\n guest.give(data);\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-guest\n */\nexport function isGuest(mbGuest: any): mbGuest is GuestType {\n if (mbGuest === undefined) {\n throw new Error(\"isGuest didnt receive mbGuest argument\");\n }\n return typeof mbGuest === \"function\" || typeof mbGuest?.give === \"function\";\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest\n */\nexport class Guest<T> implements GuestObjectType<T> {\n public constructor(private receiver: GuestExecutorType<T>) {\n if (!receiver) {\n throw new Error(\"reseiver function was not passed to Guest constructor\");\n }\n }\n\n public give(value: T) {\n this.receiver(value);\n return this;\n }\n}\n","import { give, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-cast\n */\nexport class GuestCast<T> implements GuestDisposableType<T> {\n public constructor(\n private sourceGuest: GuestType<any>,\n private targetGuest: GuestType<T>,\n ) {\n if (sourceGuest === undefined) {\n throw new Error(\"GuestCast didnt receive sourceGuest argument\");\n }\n if (targetGuest === undefined) {\n throw new Error(\"GuestCast didnt receive targetGuest argument\");\n }\n }\n\n public introduction() {\n if (typeof this.sourceGuest === \"function\") {\n return \"guest\";\n }\n if (!this.sourceGuest.introduction) {\n return \"guest\";\n }\n return this.sourceGuest.introduction();\n }\n\n public give(value: T): this {\n give(value, this.targetGuest);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.sourceGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\nconst poolSets = new Map<PoolType, Set<GuestObjectType>>();\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/patron-pools\n */\nexport const patronPools = (patron: GuestObjectType) => {\n const pools: PoolType[] = [];\n poolSets.forEach((pool, poolInstance) => {\n if (pool.has(patron)) {\n pools.push(poolInstance);\n }\n });\n return pools;\n};\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/remove-patron-from-pools\n */\nexport const removePatronFromPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"removePatronFromPools didnt receive patron argument\");\n }\n poolSets.forEach((pool) => {\n pool.delete(patron);\n });\n};\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-patron-in-pools\n */\nexport const isPatronInPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"isPatronInPools didnt receive patron argument\");\n }\n let inPool = false;\n poolSets.forEach((pool) => {\n if (!inPool) {\n inPool = pool.has(patron);\n }\n });\n return inPool;\n};\n\nexport interface PoolType<T = any> extends GuestObjectType<T> {\n add(guest: GuestObjectType<T>): this;\n distribute(receiving: T, possiblePatron: GuestObjectType<T>): this;\n remove(patron: GuestObjectType<T>): this;\n size(): number;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron/patron-pool\n */\nexport class PatronPool<T> implements PoolType<T> {\n private patrons: Set<GuestObjectType<T>>;\n\n public give: (value: T) => this;\n\n public constructor(private initiator: unknown) {\n this.patrons = new Set<GuestObjectType<T>>();\n poolSets.set(this, this.patrons);\n const doReceive = (value: T) => {\n this.patrons.forEach((target) => {\n this.sendValueToGuest(value, target);\n });\n };\n this.give = (value: T) => {\n doReceive(value);\n return this;\n };\n }\n\n public size(): number {\n return this.patrons.size;\n }\n\n public add(shouldBePatron: GuestType<T>) {\n if (!shouldBePatron) {\n throw new Error(\"PatronPool add method received nothing!\");\n }\n if (\n typeof shouldBePatron !== \"function\" &&\n shouldBePatron.introduction &&\n shouldBePatron.introduction() === \"patron\"\n ) {\n this.patrons.add(shouldBePatron);\n }\n return this;\n }\n\n public remove(patron: GuestObjectType<T>) {\n this.patrons.delete(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestType<T>): this {\n this.add(possiblePatron);\n this.sendValueToGuest(receiving, possiblePatron);\n return this;\n }\n\n private sendValueToGuest(value: T, guest: GuestType<T>) {\n const isDisposed = this.guestDisposed(value, guest);\n\n if (!isDisposed) {\n give(value, guest);\n }\n }\n\n private guestDisposed(value: T, guest: GuestType<T>) {\n if ((guest as GuestDisposableType).disposed?.(value)) {\n this.remove(guest as GuestObjectType);\n return true;\n }\n\n return false;\n }\n}\n","import { PatronPool, PoolType } from \"../Patron/PatronPool\";\nimport { give, GuestObjectType, GuestType } from \"./Guest\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-pool\n */\nexport class GuestPool<T> implements GuestObjectType<T>, PoolType<T> {\n private guests = new Set<GuestType<T>>();\n\n private patronPool: PatronPool<T>;\n\n public constructor(initiator: unknown) {\n this.patronPool = new PatronPool(initiator);\n }\n\n public give(value: T): this {\n this.deliverToGuests(value);\n this.patronPool.give(value);\n return this;\n }\n\n public add(guest: GuestType<T>): this {\n if (\n typeof guest === \"function\" ||\n !guest.introduction ||\n guest.introduction() === \"guest\"\n ) {\n this.guests.add(guest);\n }\n this.patronPool.add(guest);\n return this;\n }\n\n public remove(patron: GuestObjectType<T>): this {\n this.guests.delete(patron);\n this.patronPool.remove(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestObjectType<T>): this {\n this.add(possiblePatron);\n this.give(receiving);\n return this;\n }\n\n public size() {\n return this.patronPool.size() + this.guests.size;\n }\n\n private deliverToGuests(value: T) {\n this.guests.forEach((target) => {\n give(value, target);\n });\n this.guests.clear();\n }\n}\n","import { GuestObjectType } from \"./Guest\";\n\nexport interface GuestValueType<T = any> extends GuestObjectType<T> {\n value(): T;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-sync\n */\nexport class GuestSync<T> implements GuestValueType<T> {\n public constructor(private theValue: T) {\n if (theValue === undefined) {\n throw new Error(\"GuestSync didnt receive theValue argument\");\n }\n }\n\n public give(value: T): this {\n this.theValue = value;\n return this;\n }\n\n public value() {\n return this.theValue;\n }\n}\n","import { Guest, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-object\n */\nexport class GuestObject<T> implements GuestDisposableType<T> {\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"GuestObject didnt receive baseGuest argument\");\n }\n }\n\n public give(value: T): this {\n let guest = this.baseGuest;\n if (typeof guest === \"function\") {\n guest = new Guest(guest);\n }\n guest.give(value);\n return this;\n }\n\n public introduction() {\n if (typeof this.baseGuest === \"function\" || !this.baseGuest.introduction) {\n return \"guest\";\n }\n return this.baseGuest.introduction();\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"./Guest\";\n\nexport interface GuestDisposableType<T = any> extends GuestObjectType<T> {\n disposed(value: T | null): boolean;\n}\n\nexport type MaybeDisposableType<T = any> = Partial<GuestDisposableType<T>>;\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-disposable\n */\nexport class GuestDisposable<T> implements GuestDisposableType<T> {\n public constructor(\n private guest: GuestType,\n private disposeCheck: (value: T | null) => boolean,\n ) {\n if (guest === undefined) {\n throw new Error(\"GuestDisposable didnt receive guest argument\");\n }\n if (disposeCheck === undefined) {\n throw new Error(\"GuestDisposable didnt receive disposeCheck argument\");\n }\n }\n\n public disposed(value: T | null): boolean {\n return this.disposeCheck(value);\n }\n\n public give(value: T): this {\n give(value, this.guest);\n return this;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-applied\n */\nexport class GuestApplied<T, R> implements GuestObjectType<T> {\n public constructor(\n private baseGuest: GuestType<R>,\n private applier: (value: T) => R,\n ) {}\n\n public give(value: T): this {\n give(this.applier(value), this.baseGuest);\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron\n */\nexport class Patron<T> implements GuestDisposableType<T> {\n public constructor(private willBePatron: GuestType<T>) {\n if (willBePatron === undefined) {\n throw new Error(\"Patron didnt receive willBePatron argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n give(value, this.willBePatron);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.willBePatron as GuestDisposableType;\n return maybeDisposable?.disposed?.(value) || false;\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-patron\n */\nexport const isPatron = (guest: GuestType): guest is Patron<unknown> =>\n typeof guest === \"object\" &&\n guest !== null &&\n guest?.introduction?.() === \"patron\";\n","import { give, GuestType } from \"../Guest/Guest\";\nimport {\n GuestDisposableType,\n MaybeDisposableType,\n} from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron/patron-once\n */\nexport class PatronOnce<T> implements GuestDisposableType<T> {\n private received = false;\n\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"PatronOnce didnt receive baseGuest argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n if (!this.received) {\n this.received = true;\n give(value, this.baseGuest);\n }\n return this;\n }\n\n public disposed(value: T | null): boolean {\n if (this.received) {\n return true;\n }\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { isPatron } from \"../Patron/Patron\";\n\nexport interface PoolAwareType<T = any> {\n pool(): PatronPool<T>;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source-with-pool\n */\nexport type SourceWithPoolType<T = any> = SourceObjectType<T> &\n GuestObjectType<T> &\n PoolAwareType<T>;\n\nexport class SourceWithPool<T> implements SourceWithPoolType<T> {\n private thePool = new PatronPool(this);\n private theEmptyPool = new PatronPool(this);\n private isEmpty: boolean;\n\n public constructor(private sourceDocument?: T) {\n this.isEmpty = sourceDocument === undefined;\n }\n\n public pool() {\n return this.thePool;\n }\n\n public give(value: T): this {\n this.isEmpty = false;\n this.sourceDocument = value;\n this.thePool.give(this.sourceDocument);\n this.theEmptyPool.give(this.sourceDocument);\n return this;\n }\n\n public value(guest: GuestType<T>): this {\n if (this.isEmpty) {\n if (isPatron(guest)) {\n this.theEmptyPool.add(guest);\n }\n return this;\n }\n\n if (typeof guest === \"function\") {\n this.thePool.distribute(this.sourceDocument, new Guest(guest));\n } else {\n this.thePool.distribute(this.sourceDocument, guest);\n }\n\n return this;\n }\n\n public filled() {\n return !this.isEmpty;\n }\n}\n","import { SourceObjectType } from \"./Source\";\nimport { SourceWithPool } from \"./SourceWithPool\";\nimport { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { GuestObject } from \"../Guest/GuestObject\";\nimport { GuestPool } from \"../Guest/GuestPool\";\n\nexport interface SourceAllType<T = any> extends SourceObjectType<T> {\n valueArray(guest: GuestObjectType<T>): this;\n guestKey<R>(key: string): GuestObjectType<R>;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-all\n */\nexport class SourceAll<T> implements SourceAllType<T> {\n private theAll: SourceWithPool<Record<string, unknown>>;\n\n private keysKnown: Set<string>;\n\n private keysFilled = new Set();\n\n private filledAllPool = new GuestPool(this);\n\n public constructor(initialKnownKeys: string[] = []) {\n this.theAll = new SourceWithPool<Record<string, unknown>>({});\n this.keysKnown = new Set(initialKnownKeys);\n }\n\n public valueArray(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n this.filledAllPool.add(\n new GuestCast(guestObject, (value: Record<string, unknown>) => {\n guestObject.give(Object.values(value) as T);\n }),\n );\n if (this.isAllFilled()) {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.filledAllPool.give(Object.values(all));\n }),\n );\n }\n return this;\n }\n\n public value(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n if (this.isAllFilled()) {\n this.filledAllPool.add(guestObject);\n this.theAll.value(\n new Guest((all) => {\n this.filledAllPool.give(all);\n }),\n );\n } else {\n this.filledAllPool.add(guestObject);\n }\n return this;\n }\n\n public guestKey<R>(key: string): GuestObjectType<R> {\n this.keysKnown.add(key);\n return new Guest((value) => {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.keysFilled.add(key);\n const lastAll = {\n ...all,\n [key]: value,\n };\n this.theAll.give(lastAll);\n if (this.isAllFilled()) {\n this.filledAllPool.give(lastAll);\n }\n }),\n );\n });\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\n\nexport type SourceExecutorType<T> = (guest: GuestType<T>) => unknown;\n\nexport interface SourceObjectType<T> {\n value: SourceExecutorType<T>;\n}\n\nexport type SourceType<T = any> = SourceExecutorType<T> | SourceObjectType<T>;\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/value\n */\nexport function value<T>(source: SourceType<T>, guest: GuestType<T>) {\n if (source === undefined) {\n throw new Error(\"value didnt receive source argument\");\n }\n if (guest === undefined) {\n throw new Error(\"value didnt receive guest argument\");\n }\n if (typeof source === \"function\") {\n return source(guest);\n } else {\n return source.value(guest);\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-source\n */\nexport function isSource(mbSource: any): mbSource is SourceType {\n if (mbSource === undefined) {\n throw new Error(\"isSource didnt receive mbSource argument\");\n }\n return (\n typeof mbSource === \"function\" || typeof mbSource?.value === \"function\"\n );\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source\n */\nexport class Source<T = any> implements SourceObjectType<T> {\n public constructor(private source: SourceType<T>) {\n if (source === undefined) {\n throw new Error(\"Source constructor didnt receive executor function\");\n }\n }\n\n public value(guest: GuestType<T>): GuestType<T> {\n value(this.source, guest);\n return guest;\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/source-of\n */\nexport const sourceOf = <T>(value: T) => new Source<T>((g) => give(value, g));\n","import { SourceWithPool } from \"../Source/SourceWithPool\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { PatronOnce } from \"../Patron/PatronOnce\";\nimport { PrivateType } from \"../Private/Private\";\nimport { isSource, SourceObjectType, SourceType, value } from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-sequence\n */\nexport class SourceSequence<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceSequence didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceSequence didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll<TG[]>();\n const sequenceSource = new SourceWithPool();\n const targetSource = this.targetSource.get(sequenceSource);\n\n value(\n this.baseSource,\n new GuestCast(guest, (theValue) => {\n let index = 0;\n\n const nextItemHandle = () => {\n if (theValue[index + 1] !== undefined) {\n index = index + 1;\n handle();\n } else {\n all.valueArray(guest);\n }\n };\n\n function handle() {\n sequenceSource.give(null);\n const nextValue = theValue[index];\n if (isSource(nextValue)) {\n value(\n nextValue,\n new PatronOnce((theNextValue) => {\n sequenceSource.give(theNextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }),\n );\n } else {\n sequenceSource.give(nextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }\n }\n\n if (theValue[index] !== undefined) {\n handle();\n } else {\n give([], guest);\n }\n }),\n );\n return this;\n }\n}\n","import { PrivateType } from \"../Private/Private\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport {\n Source,\n SourceObjectType,\n SourceType,\n isSource,\n value,\n} from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-map\n */\nexport class SourceMap<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceMap didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceMap didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll();\n value(\n this.baseSource,\n new GuestCast(<GuestType>guest, (theValue) => {\n theValue.forEach((val, index) => {\n const valueSource = isSource(val)\n ? val\n : new Source((innerGuest) => {\n give(val, innerGuest);\n });\n const targetSource = this.targetSource.get(valueSource);\n value(targetSource, all.guestKey(index.toString()));\n });\n }),\n );\n all.valueArray(<GuestType>guest);\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType, SourceType, value } from \"./Source\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-race\n */\nexport class SourceRace<T> implements SourceObjectType<T> {\n public constructor(private sources: SourceType<T>[]) {\n if (sources === undefined) {\n throw new Error(\"SourceRace didnt receive sources argument\");\n }\n }\n\n public value(guest: GuestType<T>): this {\n let connectedWithSource: SourceType | null = null;\n this.sources.forEach((source) => {\n value(\n source,\n new GuestCast(<GuestType>guest, (value) => {\n if (!connectedWithSource || connectedWithSource === source) {\n give(value as T, guest);\n connectedWithSource = source;\n }\n }),\n );\n });\n return this;\n }\n}\n","import { GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType } from \"./Source\";\nimport { SourceWithPool, SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/action-type\n */\nexport interface ActionType<P = any> {\n do(config: P): this;\n}\n\nexport interface SourceAcitveType<R = unknown, T = unknown>\n extends SourceObjectType<T>,\n ActionType<R> {}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-active\n */\nexport class SourceActive<R, T> implements SourceAcitveType<R, T> {\n private source = new SourceWithPool<T>();\n\n public constructor(\n private configExecutor: (config: R, source: SourceWithPoolType<T>) => void,\n ) {\n if (configExecutor === undefined) {\n throw new Error(\n \"SourceActive constructor didnt receive executor function\",\n );\n }\n }\n\n public do(config: R): this {\n this.configExecutor(config, this.source);\n return this;\n }\n\n public value(guest: GuestType<T>): this {\n this.source.value(guest);\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceType, value } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source-dynamic\n */\nexport class SourceDynamic<T = unknown> implements SourceWithPoolType<T> {\n public constructor(\n private baseGuest: GuestType<T>,\n private baseSource: SourceType<T>,\n ) {\n if (baseGuest === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseGuest argument\");\n }\n if (baseSource === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseSource argument\");\n }\n }\n\n public value(guest: GuestType<T>) {\n value(this.baseSource, guest);\n return this;\n }\n\n public give(value: T) {\n give(value, this.baseGuest);\n return this;\n }\n\n public pool(): PatronPool<T> {\n throw Error(\"No pool in SourceDynamic\");\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source/source-applied\n */\nexport class SourceApplied<T, R> implements SourceObjectType<R> {\n public constructor(\n private baseSource: SourceType<T>,\n private applier: (v: T) => R,\n ) {}\n\n public value(g: GuestType<R>) {\n value(\n this.baseSource,\n new GuestCast(g, (v) => {\n give(this.applier(v), g);\n }),\n );\n return this;\n }\n}\n","import {\n SourceExecutorType,\n SourceObjectType,\n SourceType,\n value,\n} from \"../Source/Source\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source/source-executor-applied\n */\nexport class SourceExecutorApplied<T> implements SourceObjectType<T> {\n public value: SourceExecutorType<T>;\n\n public constructor(\n source: SourceType<T>,\n applier: (executor: SourceExecutorType<T>) => SourceExecutorType<T>,\n ) {\n this.value = applier((g) => {\n value(source, g);\n });\n }\n}\n","import { PrivateType } from \"./Private\";\n\ninterface Constructable<T> {\n new (...args: unknown[]): T;\n}\n\ninterface Prototyped<T> {\n prototype: T;\n}\n\nexport class PrivateClass<T> implements PrivateType<T> {\n public constructor(\n private constructorFn: Prototyped<T>,\n private modules: Record<string, unknown> = {},\n ) {\n if (constructorFn === undefined) {\n throw new Error(\"PrivateClass didnt receive constructorFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return new (this.constructorFn as Constructable<T>)(\n ...args,\n this.modules,\n ) as CT extends null ? T : CT;\n }\n}\n","/**\n * @url https://kosukhin.github.io/patron.site/#/utils/private\n */\nexport interface PrivateType<T> {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT;\n}\n\nexport class Private<T> implements PrivateType<T> {\n public constructor(private buildingFn: (...args: any[]) => T) {\n if (buildingFn === undefined) {\n throw new Error(\"Private didnt receive buildingFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return this.buildingFn(...args) as CT extends null ? T : CT;\n }\n}\n"],"names":["__publicField","value"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"patron.cjs","sources":["../src/Guest/Guest.ts","../src/Guest/GuestCast.ts","../src/Patron/PatronPool.ts","../src/Guest/GuestPool.ts","../src/Guest/GuestSync.ts","../src/Guest/GuestObject.ts","../src/Guest/GuestDisposable.ts","../src/Guest/GuestApplied.ts","../src/Guest/GuestExecutorApplied.ts","../src/Patron/Patron.ts","../src/Patron/PatronOnce.ts","../src/Patron/PatronApplied.ts","../src/Patron/PatronExecutorApplied.ts","../src/Source/SourceWithPool.ts","../src/Source/SourceAll.ts","../src/Source/Source.ts","../src/Source/SourceSequence.ts","../src/Source/SourceMap.ts","../src/Source/SourceRace.ts","../src/Source/SourceActive.ts","../src/Source/SourceDynamic.ts","../src/Source/SourceApplied.ts","../src/Source/SourceExecutorApplied.ts","../src/Source/SourceOnce.ts","../src/Private/PrivateClass.ts","../src/Private/Private.ts"],"sourcesContent":["type GuestIntroduction = \"guest\" | \"patron\";\n\nexport type GuestExecutorType<T = any, This = void> = (value: T) => This;\n\nexport interface GuestObjectType<T = any> {\n give(value: T): this;\n introduction?(): GuestIntroduction;\n}\n\nexport type GuestType<T = any> = GuestExecutorType<T> | GuestObjectType<T>;\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/give\n */\nexport function give<T>(data: T, guest: GuestType<T>) {\n if (data === undefined) {\n throw new Error(\"give didnt receive data argument\");\n }\n if (guest === undefined) {\n throw new Error(\"give didnt receive guest argument\");\n }\n if (typeof guest === \"function\") {\n guest(data);\n } else {\n guest.give(data);\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-guest\n */\nexport function isGuest(mbGuest: any): mbGuest is GuestType {\n if (mbGuest === undefined) {\n throw new Error(\"isGuest didnt receive mbGuest argument\");\n }\n return typeof mbGuest === \"function\" || typeof mbGuest?.give === \"function\";\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest\n */\nexport class Guest<T> implements GuestObjectType<T> {\n public constructor(private receiver: GuestExecutorType<T>) {\n if (!receiver) {\n throw new Error(\"reseiver function was not passed to Guest constructor\");\n }\n }\n\n public give(value: T) {\n this.receiver(value);\n return this;\n }\n}\n","import { give, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-cast\n */\nexport class GuestCast<T> implements GuestDisposableType<T> {\n public constructor(\n private sourceGuest: GuestType<any>,\n private targetGuest: GuestType<T>,\n ) {\n if (sourceGuest === undefined) {\n throw new Error(\"GuestCast didnt receive sourceGuest argument\");\n }\n if (targetGuest === undefined) {\n throw new Error(\"GuestCast didnt receive targetGuest argument\");\n }\n }\n\n public introduction() {\n if (typeof this.sourceGuest === \"function\") {\n return \"guest\";\n }\n if (!this.sourceGuest.introduction) {\n return \"guest\";\n }\n return this.sourceGuest.introduction();\n }\n\n public give(value: T): this {\n give(value, this.targetGuest);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.sourceGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\nconst poolSets = new Map<PoolType, Set<GuestObjectType>>();\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/patron-pools\n */\nexport const patronPools = (patron: GuestObjectType) => {\n const pools: PoolType[] = [];\n poolSets.forEach((pool, poolInstance) => {\n if (pool.has(patron)) {\n pools.push(poolInstance);\n }\n });\n return pools;\n};\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/remove-patron-from-pools\n */\nexport const removePatronFromPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"removePatronFromPools didnt receive patron argument\");\n }\n poolSets.forEach((pool) => {\n pool.delete(patron);\n });\n};\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-patron-in-pools\n */\nexport const isPatronInPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"isPatronInPools didnt receive patron argument\");\n }\n let inPool = false;\n poolSets.forEach((pool) => {\n if (!inPool) {\n inPool = pool.has(patron);\n }\n });\n return inPool;\n};\n\nexport interface PoolType<T = any> extends GuestObjectType<T> {\n add(guest: GuestObjectType<T>): this;\n distribute(receiving: T, possiblePatron: GuestObjectType<T>): this;\n remove(patron: GuestObjectType<T>): this;\n size(): number;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron/patron-pool\n */\nexport class PatronPool<T> implements PoolType<T> {\n private patrons: Set<GuestObjectType<T>>;\n\n public give: (value: T) => this;\n\n public constructor(private initiator: unknown) {\n this.patrons = new Set<GuestObjectType<T>>();\n poolSets.set(this, this.patrons);\n const doReceive = (value: T) => {\n this.patrons.forEach((target) => {\n this.sendValueToGuest(value, target);\n });\n };\n this.give = (value: T) => {\n doReceive(value);\n return this;\n };\n }\n\n public size(): number {\n return this.patrons.size;\n }\n\n public add(shouldBePatron: GuestType<T>) {\n if (!shouldBePatron) {\n throw new Error(\"PatronPool add method received nothing!\");\n }\n if (\n typeof shouldBePatron !== \"function\" &&\n shouldBePatron.introduction &&\n shouldBePatron.introduction() === \"patron\"\n ) {\n this.patrons.add(shouldBePatron);\n }\n return this;\n }\n\n public remove(patron: GuestObjectType<T>) {\n this.patrons.delete(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestType<T>): this {\n this.add(possiblePatron);\n this.sendValueToGuest(receiving, possiblePatron);\n return this;\n }\n\n private sendValueToGuest(value: T, guest: GuestType<T>) {\n const isDisposed = this.guestDisposed(value, guest);\n\n if (!isDisposed) {\n give(value, guest);\n }\n }\n\n private guestDisposed(value: T, guest: GuestType<T>) {\n if ((guest as GuestDisposableType).disposed?.(value)) {\n this.remove(guest as GuestObjectType);\n return true;\n }\n\n return false;\n }\n}\n","import { PatronPool, PoolType } from \"../Patron/PatronPool\";\nimport { give, GuestObjectType, GuestType } from \"./Guest\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-pool\n */\nexport class GuestPool<T> implements GuestObjectType<T>, PoolType<T> {\n private guests = new Set<GuestType<T>>();\n\n private patronPool: PatronPool<T>;\n\n public constructor(initiator: unknown) {\n this.patronPool = new PatronPool(initiator);\n }\n\n public give(value: T): this {\n this.deliverToGuests(value);\n this.patronPool.give(value);\n return this;\n }\n\n public add(guest: GuestType<T>): this {\n if (\n typeof guest === \"function\" ||\n !guest.introduction ||\n guest.introduction() === \"guest\"\n ) {\n this.guests.add(guest);\n }\n this.patronPool.add(guest);\n return this;\n }\n\n public remove(patron: GuestObjectType<T>): this {\n this.guests.delete(patron);\n this.patronPool.remove(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestObjectType<T>): this {\n this.add(possiblePatron);\n this.give(receiving);\n return this;\n }\n\n public size() {\n return this.patronPool.size() + this.guests.size;\n }\n\n private deliverToGuests(value: T) {\n this.guests.forEach((target) => {\n give(value, target);\n });\n this.guests.clear();\n }\n}\n","import { GuestObjectType } from \"./Guest\";\n\nexport interface GuestValueType<T = any> extends GuestObjectType<T> {\n value(): T;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-sync\n */\nexport class GuestSync<T> implements GuestValueType<T> {\n public constructor(private theValue: T) {\n if (theValue === undefined) {\n throw new Error(\"GuestSync didnt receive theValue argument\");\n }\n }\n\n public give(value: T): this {\n this.theValue = value;\n return this;\n }\n\n public value() {\n return this.theValue;\n }\n}\n","import { Guest, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-object\n */\nexport class GuestObject<T> implements GuestDisposableType<T> {\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"GuestObject didnt receive baseGuest argument\");\n }\n }\n\n public give(value: T): this {\n let guest = this.baseGuest;\n if (typeof guest === \"function\") {\n guest = new Guest(guest);\n }\n guest.give(value);\n return this;\n }\n\n public introduction() {\n if (typeof this.baseGuest === \"function\" || !this.baseGuest.introduction) {\n return \"guest\";\n }\n return this.baseGuest.introduction();\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"./Guest\";\n\nexport interface GuestDisposableType<T = any> extends GuestObjectType<T> {\n disposed(value: T | null): boolean;\n}\n\nexport type MaybeDisposableType<T = any> = Partial<GuestDisposableType<T>>;\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-disposable\n */\nexport class GuestDisposable<T> implements GuestDisposableType<T> {\n public constructor(\n private guest: GuestType,\n private disposeCheck: (value: T | null) => boolean,\n ) {\n if (guest === undefined) {\n throw new Error(\"GuestDisposable didnt receive guest argument\");\n }\n if (disposeCheck === undefined) {\n throw new Error(\"GuestDisposable didnt receive disposeCheck argument\");\n }\n }\n\n public disposed(value: T | null): boolean {\n return this.disposeCheck(value);\n }\n\n public give(value: T): this {\n give(value, this.guest);\n return this;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-applied\n */\nexport class GuestApplied<T, R> implements GuestObjectType<T> {\n public constructor(\n private baseGuest: GuestType<R>,\n private applier: (value: T) => R,\n ) {}\n\n public give(value: T): this {\n give(this.applier(value), this.baseGuest);\n return this;\n }\n}\n","import {\n give,\n GuestExecutorType,\n GuestObjectType,\n GuestType,\n} from \"../Guest/Guest\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/guest-executor-applied\n */\nexport class GuestExecutorApplied<T> implements GuestObjectType<T> {\n public give: GuestExecutorType<T, this>;\n\n public constructor(\n baseGuest: GuestType<T>,\n applier: (executor: GuestExecutorType) => GuestExecutorType,\n ) {\n this.give = applier((v) => give(v, baseGuest)) as GuestExecutorType<\n T,\n this\n >;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron\n */\nexport class Patron<T> implements GuestDisposableType<T> {\n public constructor(private willBePatron: GuestType<T>) {\n if (willBePatron === undefined) {\n throw new Error(\"Patron didnt receive willBePatron argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n give(value, this.willBePatron);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.willBePatron as GuestDisposableType;\n return maybeDisposable?.disposed?.(value) || false;\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-patron\n */\nexport const isPatron = (guest: GuestType): guest is Patron<unknown> =>\n typeof guest === \"object\" &&\n guest !== null &&\n guest?.introduction?.() === \"patron\";\n","import { give, GuestType } from \"../Guest/Guest\";\nimport {\n GuestDisposableType,\n MaybeDisposableType,\n} from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron/patron-once\n */\nexport class PatronOnce<T> implements GuestDisposableType<T> {\n private received = false;\n\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"PatronOnce didnt receive baseGuest argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n if (!this.received) {\n this.received = true;\n give(value, this.baseGuest);\n }\n return this;\n }\n\n public disposed(value: T | null): boolean {\n if (this.received) {\n return true;\n }\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestApplied } from \"../Guest/GuestApplied\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron/patron-applied\n */\nexport class PatronApplied<T, R> implements GuestObjectType<T> {\n private guestApplied: GuestApplied<T, R>;\n\n public constructor(baseGuest: GuestType<R>, applier: (value: T) => R) {\n this.guestApplied = new GuestApplied(baseGuest, applier);\n }\n\n public give(value: T): this {\n this.guestApplied.give(value);\n return this;\n }\n\n public introduction(): \"guest\" | \"patron\" {\n return \"patron\";\n }\n}\n","import { GuestExecutorType, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestExecutorApplied } from \"../Guest/GuestExecutorApplied\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/patron/patron-executor-applied\n */\nexport class PatronExecutorApplied<T> implements GuestObjectType<T> {\n private guestApplied: GuestExecutorApplied<T>;\n\n public constructor(\n baseGuest: GuestType<T>,\n applier: (executor: GuestExecutorType) => GuestExecutorType,\n ) {\n this.guestApplied = new GuestExecutorApplied(baseGuest, applier);\n }\n\n public give(value: T): this {\n this.guestApplied.give(value);\n return this;\n }\n\n public introduction(): \"guest\" | \"patron\" {\n return \"patron\";\n }\n}\n","import { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { isPatron } from \"../Patron/Patron\";\n\nexport interface PoolAwareType<T = any> {\n pool(): PatronPool<T>;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source-with-pool\n */\nexport type SourceWithPoolType<T = any> = SourceObjectType<T> &\n GuestObjectType<T> &\n PoolAwareType<T>;\n\nexport class SourceWithPool<T> implements SourceWithPoolType<T> {\n private thePool = new PatronPool(this);\n private theEmptyPool = new PatronPool(this);\n private isEmpty: boolean;\n\n public constructor(private sourceDocument?: T) {\n this.isEmpty = sourceDocument === undefined;\n }\n\n public pool() {\n return this.thePool;\n }\n\n public give(value: T): this {\n this.isEmpty = false;\n this.sourceDocument = value;\n this.thePool.give(this.sourceDocument);\n this.theEmptyPool.give(this.sourceDocument);\n return this;\n }\n\n public value(guest: GuestType<T>): this {\n if (this.isEmpty) {\n if (isPatron(guest)) {\n this.theEmptyPool.add(guest);\n }\n return this;\n }\n\n if (typeof guest === \"function\") {\n this.thePool.distribute(this.sourceDocument, new Guest(guest));\n } else {\n this.thePool.distribute(this.sourceDocument, guest);\n }\n\n return this;\n }\n\n public filled() {\n return !this.isEmpty;\n }\n}\n","import { SourceObjectType } from \"./Source\";\nimport { SourceWithPool } from \"./SourceWithPool\";\nimport { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { GuestObject } from \"../Guest/GuestObject\";\nimport { GuestPool } from \"../Guest/GuestPool\";\n\nexport interface SourceAllType<T = any> extends SourceObjectType<T> {\n valueArray(guest: GuestObjectType<T>): this;\n guestKey<R>(key: string): GuestObjectType<R>;\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-all\n */\nexport class SourceAll<T> implements SourceAllType<T> {\n private theAll: SourceWithPool<Record<string, unknown>>;\n\n private keysKnown: Set<string>;\n\n private keysFilled = new Set();\n\n private filledAllPool = new GuestPool(this);\n\n public constructor(initialKnownKeys: string[] = []) {\n this.theAll = new SourceWithPool<Record<string, unknown>>({});\n this.keysKnown = new Set(initialKnownKeys);\n }\n\n public valueArray(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n this.filledAllPool.add(\n new GuestCast(guestObject, (value: Record<string, unknown>) => {\n guestObject.give(Object.values(value) as T);\n }),\n );\n if (this.isAllFilled()) {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.filledAllPool.give(Object.values(all));\n }),\n );\n }\n return this;\n }\n\n public value(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n if (this.isAllFilled()) {\n this.filledAllPool.add(guestObject);\n this.theAll.value(\n new Guest((all) => {\n this.filledAllPool.give(all);\n }),\n );\n } else {\n this.filledAllPool.add(guestObject);\n }\n return this;\n }\n\n public guestKey<R>(key: string): GuestObjectType<R> {\n this.keysKnown.add(key);\n return new Guest((value) => {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.keysFilled.add(key);\n const lastAll = {\n ...all,\n [key]: value,\n };\n this.theAll.give(lastAll);\n if (this.isAllFilled()) {\n this.filledAllPool.give(lastAll);\n }\n }),\n );\n });\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\n\nexport type SourceExecutorType<T> = (guest: GuestType<T>) => unknown;\n\nexport interface SourceObjectType<T> {\n value: SourceExecutorType<T>;\n}\n\nexport type SourceType<T = any> = SourceExecutorType<T> | SourceObjectType<T>;\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/value\n */\nexport function value<T>(source: SourceType<T>, guest: GuestType<T>) {\n if (source === undefined) {\n throw new Error(\"value didnt receive source argument\");\n }\n if (guest === undefined) {\n throw new Error(\"value didnt receive guest argument\");\n }\n if (typeof source === \"function\") {\n return source(guest);\n } else {\n return source.value(guest);\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/is-source\n */\nexport function isSource(mbSource: any): mbSource is SourceType {\n if (mbSource === undefined) {\n throw new Error(\"isSource didnt receive mbSource argument\");\n }\n return (\n typeof mbSource === \"function\" || typeof mbSource?.value === \"function\"\n );\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source\n */\nexport class Source<T = any> implements SourceObjectType<T> {\n public constructor(private source: SourceType<T>) {\n if (source === undefined) {\n throw new Error(\"Source constructor didnt receive executor function\");\n }\n }\n\n public value(guest: GuestType<T>): GuestType<T> {\n value(this.source, guest);\n return guest;\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/source-of\n */\nexport const sourceOf = <T>(value: T) => new Source<T>((g) => give(value, g));\n","import { SourceWithPool } from \"../Source/SourceWithPool\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { PatronOnce } from \"../Patron/PatronOnce\";\nimport { PrivateType } from \"../Private/Private\";\nimport { isSource, SourceObjectType, SourceType, value } from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-sequence\n */\nexport class SourceSequence<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceSequence didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceSequence didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll<TG[]>();\n const sequenceSource = new SourceWithPool();\n const targetSource = this.targetSource.get(sequenceSource);\n\n value(\n this.baseSource,\n new GuestCast(guest, (theValue) => {\n let index = 0;\n\n const nextItemHandle = () => {\n if (theValue[index + 1] !== undefined) {\n index = index + 1;\n handle();\n } else {\n all.valueArray(guest);\n }\n };\n\n function handle() {\n sequenceSource.give(null);\n const nextValue = theValue[index];\n if (isSource(nextValue)) {\n value(\n nextValue,\n new PatronOnce((theNextValue) => {\n sequenceSource.give(theNextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }),\n );\n } else {\n sequenceSource.give(nextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }\n }\n\n if (theValue[index] !== undefined) {\n handle();\n } else {\n give([], guest);\n }\n }),\n );\n return this;\n }\n}\n","import { PrivateType } from \"../Private/Private\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport {\n Source,\n SourceObjectType,\n SourceType,\n isSource,\n value,\n} from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-map\n */\nexport class SourceMap<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceMap didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceMap didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll();\n value(\n this.baseSource,\n new GuestCast(<GuestType>guest, (theValue) => {\n theValue.forEach((val, index) => {\n const valueSource = isSource(val)\n ? val\n : new Source((innerGuest) => {\n give(val, innerGuest);\n });\n const targetSource = this.targetSource.get(valueSource);\n value(targetSource, all.guestKey(index.toString()));\n });\n }),\n );\n all.valueArray(<GuestType>guest);\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType, SourceType, value } from \"./Source\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-race\n */\nexport class SourceRace<T> implements SourceObjectType<T> {\n public constructor(private sources: SourceType<T>[]) {\n if (sources === undefined) {\n throw new Error(\"SourceRace didnt receive sources argument\");\n }\n }\n\n public value(guest: GuestType<T>): this {\n let connectedWithSource: SourceType | null = null;\n this.sources.forEach((source) => {\n value(\n source,\n new GuestCast(<GuestType>guest, (value) => {\n if (!connectedWithSource || connectedWithSource === source) {\n give(value as T, guest);\n connectedWithSource = source;\n }\n }),\n );\n });\n return this;\n }\n}\n","import { GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType } from \"./Source\";\nimport { SourceWithPool, SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/action-type\n */\nexport interface ActionType<P = any> {\n do(config: P): this;\n}\n\nexport interface SourceAcitveType<R = unknown, T = unknown>\n extends SourceObjectType<T>,\n ActionType<R> {}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-active\n */\nexport class SourceActive<R, T> implements SourceAcitveType<R, T> {\n private source = new SourceWithPool<T>();\n\n public constructor(\n private configExecutor: (config: R, source: SourceWithPoolType<T>) => void,\n ) {\n if (configExecutor === undefined) {\n throw new Error(\n \"SourceActive constructor didnt receive executor function\",\n );\n }\n }\n\n public do(config: R): this {\n this.configExecutor(config, this.source);\n return this;\n }\n\n public value(guest: GuestType<T>): this {\n this.source.value(guest);\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceType, value } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source-dynamic\n */\nexport class SourceDynamic<T = unknown> implements SourceWithPoolType<T> {\n public constructor(\n private baseGuest: GuestType<T>,\n private baseSource: SourceType<T>,\n ) {\n if (baseGuest === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseGuest argument\");\n }\n if (baseSource === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseSource argument\");\n }\n }\n\n public value(guest: GuestType<T>) {\n value(this.baseSource, guest);\n return this;\n }\n\n public give(value: T) {\n give(value, this.baseGuest);\n return this;\n }\n\n public pool(): PatronPool<T> {\n throw Error(\"No pool in SourceDynamic\");\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source/source-applied\n */\nexport class SourceApplied<T, R> implements SourceObjectType<R> {\n public constructor(\n private baseSource: SourceType<T>,\n private applier: (v: T) => R,\n ) {}\n\n public value(g: GuestType<R>) {\n value(\n this.baseSource,\n new GuestCast(g, (v) => {\n give(this.applier(v), g);\n }),\n );\n return this;\n }\n}\n","import {\n SourceExecutorType,\n SourceObjectType,\n SourceType,\n value,\n} from \"../Source/Source\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source/source-executor-applied\n */\nexport class SourceExecutorApplied<T> implements SourceObjectType<T> {\n public value: SourceExecutorType<T>;\n\n public constructor(\n source: SourceType<T>,\n applier: (executor: SourceExecutorType<T>) => SourceExecutorType<T>,\n ) {\n this.value = applier((g) => {\n value(source, g);\n });\n }\n}\n","import { GuestType } from \"../Guest/Guest\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { value } from \"./Source\";\nimport { SourceWithPool, SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/source/source-once\n */\nexport class SourceOnce<T> implements SourceWithPoolType<T> {\n private source: SourceWithPool<T>;\n\n public constructor(initialValue?: T) {\n this.source = new SourceWithPool(initialValue);\n }\n\n public value(guest: GuestType<T>) {\n value(this.source, guest);\n return this;\n }\n\n public give(value: T): this {\n if (!this.source.filled()) {\n this.source.give(value);\n }\n return this;\n }\n\n public pool(): PatronPool<T> {\n return this.source.pool();\n }\n}\n","import { PrivateType } from \"./Private\";\n\ninterface Constructable<T> {\n new (...args: unknown[]): T;\n}\n\ninterface Prototyped<T> {\n prototype: T;\n}\n\nexport class PrivateClass<T> implements PrivateType<T> {\n public constructor(\n private constructorFn: Prototyped<T>,\n private modules: Record<string, unknown> = {},\n ) {\n if (constructorFn === undefined) {\n throw new Error(\"PrivateClass didnt receive constructorFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return new (this.constructorFn as Constructable<T>)(\n ...args,\n this.modules,\n ) as CT extends null ? T : CT;\n }\n}\n","/**\n * @url https://kosukhin.github.io/patron.site/#/utils/private\n */\nexport interface PrivateType<T> {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT;\n}\n\nexport class Private<T> implements PrivateType<T> {\n public constructor(private buildingFn: (...args: any[]) => T) {\n if (buildingFn === undefined) {\n throw new Error(\"Private didnt receive buildingFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return this.buildingFn(...args) as CT extends null ? T : CT;\n }\n}\n"],"names":["__publicField","value"],"mappings":"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"}
|
package/dist/patron.d.ts
CHANGED
@@ -132,6 +132,14 @@ declare class GuestApplied<T, R> implements GuestObjectType<T> {
|
|
132
132
|
give(value: T): this;
|
133
133
|
}
|
134
134
|
|
135
|
+
/**
|
136
|
+
* @url https://kosukhin.github.io/patron.site/#/guest/guest-executor-applied
|
137
|
+
*/
|
138
|
+
declare class GuestExecutorApplied<T> implements GuestObjectType<T> {
|
139
|
+
give: GuestExecutorType<T, this>;
|
140
|
+
constructor(baseGuest: GuestType<T>, applier: (executor: GuestExecutorType) => GuestExecutorType);
|
141
|
+
}
|
142
|
+
|
135
143
|
/**
|
136
144
|
* @url https://kosukhin.github.io/patron.site/#/patron
|
137
145
|
*/
|
@@ -159,6 +167,26 @@ declare class PatronOnce<T> implements GuestDisposableType<T> {
|
|
159
167
|
disposed(value: T | null): boolean;
|
160
168
|
}
|
161
169
|
|
170
|
+
/**
|
171
|
+
* @url https://kosukhin.github.io/patron.site/#/patron/patron-applied
|
172
|
+
*/
|
173
|
+
declare class PatronApplied<T, R> implements GuestObjectType<T> {
|
174
|
+
private guestApplied;
|
175
|
+
constructor(baseGuest: GuestType<R>, applier: (value: T) => R);
|
176
|
+
give(value: T): this;
|
177
|
+
introduction(): "guest" | "patron";
|
178
|
+
}
|
179
|
+
|
180
|
+
/**
|
181
|
+
* @url https://kosukhin.github.io/patron.site/#/patron/patron-executor-applied
|
182
|
+
*/
|
183
|
+
declare class PatronExecutorApplied<T> implements GuestObjectType<T> {
|
184
|
+
private guestApplied;
|
185
|
+
constructor(baseGuest: GuestType<T>, applier: (executor: GuestExecutorType) => GuestExecutorType);
|
186
|
+
give(value: T): this;
|
187
|
+
introduction(): "guest" | "patron";
|
188
|
+
}
|
189
|
+
|
162
190
|
type SourceExecutorType<T> = (guest: GuestType<T>) => unknown;
|
163
191
|
interface SourceObjectType<T> {
|
164
192
|
value: SourceExecutorType<T>;
|
@@ -313,6 +341,17 @@ declare class SourceExecutorApplied<T> implements SourceObjectType<T> {
|
|
313
341
|
constructor(source: SourceType<T>, applier: (executor: SourceExecutorType<T>) => SourceExecutorType<T>);
|
314
342
|
}
|
315
343
|
|
344
|
+
/**
|
345
|
+
* @url https://kosukhin.github.io/patron.site/#/source/source-once
|
346
|
+
*/
|
347
|
+
declare class SourceOnce<T> implements SourceWithPoolType<T> {
|
348
|
+
private source;
|
349
|
+
constructor(initialValue?: T);
|
350
|
+
value(guest: GuestType<T>): this;
|
351
|
+
give(value: T): this;
|
352
|
+
pool(): PatronPool<T>;
|
353
|
+
}
|
354
|
+
|
316
355
|
interface Prototyped<T> {
|
317
356
|
prototype: T;
|
318
357
|
}
|
@@ -323,4 +362,4 @@ declare class PrivateClass<T> implements PrivateType<T> {
|
|
323
362
|
get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT;
|
324
363
|
}
|
325
364
|
|
326
|
-
export { type ActionType, Guest, GuestApplied, GuestCast, GuestDisposable, type GuestDisposableType, type GuestExecutorType, GuestObject, type GuestObjectType, GuestPool, GuestSync, type GuestType, type GuestValueType, type MaybeDisposableType, Patron, PatronOnce, PatronPool, type PoolAwareType, type PoolType, Private, PrivateClass, type PrivateType, Source, type SourceAcitveType, SourceActive, SourceAll, type SourceAllType, SourceApplied, SourceDynamic, SourceExecutorApplied, type SourceExecutorType, SourceMap, type SourceObjectType, SourceRace, SourceSequence, type SourceType, SourceWithPool, type SourceWithPoolType, give, isGuest, isPatron, isPatronInPools, isSource, patronPools, removePatronFromPools, sourceOf, value };
|
365
|
+
export { type ActionType, Guest, GuestApplied, GuestCast, GuestDisposable, type GuestDisposableType, GuestExecutorApplied, type GuestExecutorType, GuestObject, type GuestObjectType, GuestPool, GuestSync, type GuestType, type GuestValueType, type MaybeDisposableType, Patron, PatronApplied, PatronExecutorApplied, PatronOnce, PatronPool, type PoolAwareType, type PoolType, Private, PrivateClass, type PrivateType, Source, type SourceAcitveType, SourceActive, SourceAll, type SourceAllType, SourceApplied, SourceDynamic, SourceExecutorApplied, type SourceExecutorType, SourceMap, type SourceObjectType, SourceOnce, SourceRace, SourceSequence, type SourceType, SourceWithPool, type SourceWithPoolType, give, isGuest, isPatron, isPatronInPools, isSource, patronPools, removePatronFromPools, sourceOf, value };
|