silentium 0.0.2 → 0.0.3
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 +19 -0
- package/beforeRelease.sh +11 -0
- package/dist/silentium.cjs +39 -63
- package/dist/silentium.cjs.map +1 -1
- package/dist/silentium.d.ts +34 -53
- package/dist/silentium.js +40 -63
- package/dist/silentium.js.map +1 -1
- package/dist/silentium.min.js +1 -1
- package/dist/silentium.min.mjs +1 -1
- package/dist/silentium.min.mjs.map +1 -1
- package/dist/silentium.mjs +40 -63
- package/dist/silentium.mjs.map +1 -1
- package/docs/assets/css/base.css +15 -0
- package/docs/assets/css/custom.css +72 -0
- package/docs/assets/img/logo.svg +1522 -0
- package/docs/assets/js/components/linkDynamic.mjs +14 -0
- package/docs/assets/js/components/linkReloadable.mjs +17 -0
- package/docs/assets/js/components.mjs +2 -0
- package/docs/assets/js/index.mjs +74 -0
- package/docs/assets/js/lib/StyleFetched.mjs +19 -0
- package/docs/build.sh +7 -3
- package/docs/buildRoutes.sh +15 -0
- package/docs/favicon.ico +0 -0
- package/docs/index-dev.html +4 -80
- package/docs/index.html +6 -82
- package/docs/pages/compatibility/elegant-objects.html +4 -4
- package/docs/pages/examples/errors.html +2 -2
- package/docs/pages/examples.html +12 -14
- package/docs/pages/guest/guest-applied.html +9 -5
- package/docs/pages/guest/guest-cast.html +20 -26
- package/docs/pages/guest/guest-disposable.html +32 -42
- package/docs/pages/guest/guest-executor-applied.html +21 -17
- package/docs/pages/guest/guest-object.html +22 -26
- package/docs/pages/guest/guest-pool.html +17 -18
- package/docs/pages/guest/guest-sync.html +7 -2
- package/docs/pages/guest/index.html +18 -29
- package/docs/pages/guest.html +112 -18
- package/docs/pages/index.html +24 -52
- package/docs/pages/integrations/vue.html +5 -8
- package/docs/pages/patron/index.html +14 -20
- package/docs/pages/patron/patron-applied.html +2 -2
- package/docs/pages/patron/patron-executor-applied.html +2 -2
- package/docs/pages/patron/patron-once.html +12 -18
- package/docs/pages/patron/patron-pool.html +12 -18
- package/docs/pages/patron.html +137 -16
- package/docs/pages/philosofy.html +30 -49
- package/docs/pages/source/index.html +11 -14
- package/docs/pages/source/source-all.html +9 -12
- package/docs/pages/source/source-applied.html +2 -2
- package/docs/pages/source/source-dynamic.html +3 -3
- package/docs/pages/source/source-executor-applied.html +2 -2
- package/docs/pages/source/source-map.html +5 -5
- package/docs/pages/source/source-once.html +2 -2
- package/docs/pages/source/source-race.html +10 -10
- package/docs/pages/source/source-sequence.html +2 -2
- package/docs/pages/source/source-with-pool.html +8 -11
- package/docs/pages/source/source.html +11 -14
- package/docs/pages/source.html +162 -31
- package/docs/pages/terminology/source.html +5 -9
- package/docs/pages/terminology.html +12 -18
- package/docs/pages/utils.html +33 -21
- package/docs/routes.json +1 -0
- package/docs/template.html +4 -80
- package/eslint.config.mjs +3 -0
- package/package.json +2 -2
- package/src/Guest/Guest.ts +3 -3
- package/src/Guest/GuestApplied.ts +1 -1
- package/src/Guest/GuestCast.ts +1 -1
- package/src/Guest/GuestDisposable.ts +1 -1
- package/src/Guest/GuestExecutorApplied.ts +1 -1
- package/src/Guest/GuestObject.ts +1 -1
- package/src/Guest/GuestPool.ts +1 -1
- package/src/Guest/GuestSync.ts +1 -1
- package/src/Patron/Patron.ts +2 -2
- package/src/Patron/PatronApplied.ts +1 -1
- package/src/Patron/PatronExecutorApplied.ts +1 -1
- package/src/Patron/PatronOnce.ts +1 -1
- package/src/Patron/PatronPool.ts +4 -4
- package/src/Private/Private.ts +1 -1
- package/src/Source/Source.ts +4 -4
- package/src/Source/SourceAll.ts +1 -1
- package/src/Source/SourceApplied.ts +1 -1
- package/src/Source/SourceDynamic.ts +1 -1
- package/src/Source/SourceExecutorApplied.ts +1 -1
- package/src/Source/SourceMap.ts +1 -1
- package/src/Source/SourceOnce.ts +1 -1
- package/src/Source/SourceRace.ts +1 -1
- package/src/Source/SourceSequence.ts +1 -1
- package/src/Source/SourceWithPool.ts +1 -1
- package/src/index.ts +0 -1
- package/docs/pages/source/source-active.html +0 -120
- package/src/Source/SourceActive.test.ts +0 -13
- package/src/Source/SourceActive.ts +0 -41
package/docs/pages/source.html
CHANGED
|
@@ -3,64 +3,195 @@
|
|
|
3
3
|
<div class="lg:w-4/6 mx-auto w-full">
|
|
4
4
|
<div class="flex flex-col sm:flex-row w-full">
|
|
5
5
|
<div class="sm:w-1/3 text-center w-full">
|
|
6
|
-
<div
|
|
7
|
-
class="flex flex-col items-center text-center justify-center source-menu"
|
|
8
|
-
>
|
|
6
|
+
<div class="flex flex-col items-center text-center justify-center source-menu">
|
|
9
7
|
<h2 class="font-medium title-font text-gray-900 text-lg">
|
|
10
8
|
<a href="/source"> Source </a>
|
|
11
9
|
</h2>
|
|
12
10
|
<div class="w-12 h-1 bg-indigo-500 rounded mt-2 mb-4"></div>
|
|
13
11
|
<ul class="text-gray-900">
|
|
14
12
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
15
|
-
<a href="/source/source-
|
|
13
|
+
<a class="dynamic-navigation" href="/source/source-all"> SourceAll </a>
|
|
16
14
|
</li>
|
|
17
15
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
18
|
-
<a href="/source/source-
|
|
16
|
+
<a class="dynamic-navigation" href="/source/source-applied"> SourceApplied </a>
|
|
19
17
|
</li>
|
|
20
18
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
21
|
-
<a href="/source/source-
|
|
19
|
+
<a class="dynamic-navigation" href="/source/source-dynamic"> SourceDynamic </a>
|
|
22
20
|
</li>
|
|
23
21
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
24
|
-
<a href="/source/source-
|
|
22
|
+
<a class="dynamic-navigation" href="/source/source-executor-applied"> SourceExecutorApplied </a>
|
|
25
23
|
</li>
|
|
26
24
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
27
|
-
<a href="/source/source-
|
|
25
|
+
<a class="dynamic-navigation" href="/source/source-map"> SourceMap </a>
|
|
28
26
|
</li>
|
|
29
27
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
30
|
-
<a href="/source/source-
|
|
28
|
+
<a class="dynamic-navigation" href="/source/source-once"> SourceOnce </a>
|
|
31
29
|
</li>
|
|
32
30
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
33
|
-
<a href="/source/source-
|
|
31
|
+
<a class="dynamic-navigation" href="/source/source-race"> SourceRace </a>
|
|
34
32
|
</li>
|
|
35
33
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
36
|
-
<a href="/source/source-
|
|
34
|
+
<a class="dynamic-navigation" href="/source/source-sequence"> SourceSequence </a>
|
|
37
35
|
</li>
|
|
38
36
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
39
|
-
<a href="/source/source-
|
|
40
|
-
</li>
|
|
41
|
-
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
42
|
-
<a href="/source/source-with-pool"> SourceWithPool </a>
|
|
37
|
+
<a class="dynamic-navigation" href="/source/source-with-pool"> SourceWithPool </a>
|
|
43
38
|
</li>
|
|
44
39
|
</ul>
|
|
45
40
|
</div>
|
|
46
41
|
</div>
|
|
47
|
-
<div
|
|
48
|
-
class="
|
|
49
|
-
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
</
|
|
42
|
+
<div class="sm:w-2/3 sm:pl-8 sm:border-l border-gray-200 sm:border-t-0 border-t mt-4 sm:mt-0">
|
|
43
|
+
<h1 class="pb-3 text-xl font-semibold text-gray-600">Класс Source</h1>
|
|
44
|
+
|
|
45
|
+
<a href="https://github.com/kosukhin/patron/blob/main/src/Source/Source.ts" target="_blank"
|
|
46
|
+
class="inline-flex gap-1 items-center bg-gray-100 border-0 py-1 px-3 focus:outline-none hover:bg-gray-200 rounded text-base mt-4 md:mt-0 mb-4">
|
|
47
|
+
<img src="./assets/img/github_16.jpg" width="16" height="16" />
|
|
48
|
+
Source на GitHub
|
|
49
|
+
</a>
|
|
50
|
+
|
|
51
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
52
|
+
Предназначен для создания объектов, которые будут
|
|
53
|
+
<link-dynamic
|
|
54
|
+
href="/terminology/source">
|
|
55
|
+
источниками данных
|
|
56
|
+
</link-dynamic>
|
|
57
|
+
, логика этих объектов основана на переданной функции-колбэке
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
61
|
+
Полезно в случаях, когда нужно создать новый объект с уникальным поведением по
|
|
62
|
+
генерации данных без создания для этого отдельного класса
|
|
63
|
+
</p>
|
|
64
|
+
|
|
65
|
+
<p class="text-gray-600 text-lg mb-0 font-bold">Пример 1.</p>
|
|
66
|
+
<pre class="mb-4"><code class="language-js">import {
|
|
67
|
+
Source,
|
|
68
|
+
give
|
|
69
|
+
} from 'silentium';
|
|
70
|
+
|
|
71
|
+
const timestamp = new Source((guest) => {
|
|
72
|
+
give(Date.now(), guest);
|
|
73
|
+
});
|
|
74
|
+
timestamp.value((timestamp) => {
|
|
75
|
+
console.log('timestamp is', timestamp);
|
|
76
|
+
});
|
|
77
|
+
</code></pre>
|
|
78
|
+
|
|
79
|
+
<p class="text-gray-600 text-lg mb-0 font-bold">Результат 1.</p>
|
|
80
|
+
<div class="example mb-4">
|
|
81
|
+
<span class="guest-result">Result here</span>
|
|
82
|
+
</div>
|
|
83
|
+
<script type="module">
|
|
84
|
+
import { Source, give } from "silentium";
|
|
85
|
+
|
|
86
|
+
const timestamp = new Source((guest) => {
|
|
87
|
+
give(Date.now(), guest);
|
|
88
|
+
});
|
|
89
|
+
timestamp.value((timestamp) => {
|
|
90
|
+
document.querySelector(
|
|
91
|
+
".guest-result"
|
|
92
|
+
).textContent = `timestamp is ${timestamp}`;
|
|
93
|
+
});
|
|
94
|
+
</script>
|
|
95
|
+
|
|
96
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
97
|
+
Источником данных может быть не только объект, но и функция вида
|
|
98
|
+
<em>(guest) => guest('value')</em>. Напрямую можно обратиться к такому
|
|
99
|
+
источнику через функцию
|
|
100
|
+
<link-reloadable target-blank href="https://github.com/kosukhin/patron/blob/main/src/Source/Source.ts#L11">
|
|
101
|
+
value
|
|
102
|
+
</link-reloadable>
|
|
103
|
+
</p>
|
|
104
|
+
|
|
105
|
+
<p class="text-gray-600 text-lg mb-0 font-bold">Пример 2.</p>
|
|
106
|
+
<pre class="mb-4"><code class="language-js">import {
|
|
107
|
+
give,
|
|
108
|
+
value
|
|
109
|
+
} from "silentium";
|
|
110
|
+
|
|
111
|
+
const helloSource = (guest) => {
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
give("Hello world", guest);
|
|
114
|
+
}, 1000);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
value(helloSource, (greeting) => {
|
|
118
|
+
document.querySelector(
|
|
119
|
+
".guest-result-2"
|
|
120
|
+
).textContent = `greeting is "${greeting}"`;
|
|
121
|
+
});
|
|
122
|
+
</code></pre>
|
|
123
|
+
<p class="text-gray-600 text-lg mb-0 font-bold">Результат 2.</p>
|
|
124
|
+
<div class="example mb-4">
|
|
125
|
+
<span class="guest-result-2">Result here</span>
|
|
126
|
+
</div>
|
|
127
|
+
<script type="module">
|
|
128
|
+
import { give, value } from "silentium";
|
|
129
|
+
|
|
130
|
+
const helloSource = (guest) => {
|
|
131
|
+
setTimeout(() => {
|
|
132
|
+
give("Hello world", guest);
|
|
133
|
+
}, 1000);
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
value(helloSource, (greeting) => {
|
|
137
|
+
document.querySelector(
|
|
138
|
+
".guest-result-2"
|
|
139
|
+
).textContent = `greeting is "${greeting}"`;
|
|
140
|
+
});
|
|
141
|
+
</script>
|
|
142
|
+
|
|
143
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
144
|
+
Или можно передать источник-функцию в виде зависимости объектам, которые
|
|
145
|
+
ожидают интерфейс SourceType, в примере ниже используется комбинация
|
|
146
|
+
<link-dynamic href="/source/source-all">SourceAll</link-dynamic>
|
|
147
|
+
и источников-фукнций
|
|
148
|
+
</p>
|
|
149
|
+
|
|
150
|
+
<p class="text-gray-600 text-lg mb-0 font-bold">Пример 3.</p>
|
|
151
|
+
<pre class="mb-4"><code class="language-js">import {
|
|
152
|
+
SourceAll,
|
|
153
|
+
give,
|
|
154
|
+
value
|
|
155
|
+
} from "silentium";
|
|
156
|
+
|
|
157
|
+
const all = new SourceAll();
|
|
158
|
+
value(give.bind(null, 1), all.guestKey("one"));
|
|
159
|
+
value(give.bind(null, 2), all.guestKey("two"));
|
|
160
|
+
|
|
161
|
+
all.value(({ one, two }) => {
|
|
162
|
+
document.querySelector(".guest-result-3").textContent = `one + two = "${
|
|
163
|
+
one + two
|
|
164
|
+
}"`;
|
|
165
|
+
});
|
|
166
|
+
</code></pre>
|
|
167
|
+
<p class="text-gray-600 text-lg mb-0 font-bold">Результат 3.</p>
|
|
168
|
+
<div class="example mb-4">
|
|
169
|
+
<span class="guest-result-3">Result here</span>
|
|
62
170
|
</div>
|
|
63
|
-
<
|
|
171
|
+
<script type="module">
|
|
172
|
+
import { SourceAll, give, value } from "silentium";
|
|
173
|
+
|
|
174
|
+
const all = new SourceAll();
|
|
175
|
+
value(give.bind(null, 1), all.guestKey("one"));
|
|
176
|
+
value(give.bind(null, 2), all.guestKey("two"));
|
|
177
|
+
|
|
178
|
+
all.value(({ one, two }) => {
|
|
179
|
+
document.querySelector(".guest-result-3").textContent = `one + two = "${one + two
|
|
180
|
+
}"`;
|
|
181
|
+
});
|
|
182
|
+
</script>
|
|
183
|
+
|
|
184
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
185
|
+
Интересный факт, что с помощью частичного применения(bind) можно превратить
|
|
186
|
+
функцию <b>give</b> в <b>источник данных</b>, передав только первый аргумент
|
|
187
|
+
</p>
|
|
188
|
+
|
|
189
|
+
<div class="font-bold mt-8">Смотрите также</div>
|
|
190
|
+
|
|
191
|
+
<p class="text-gray-600 text-lg mb-4 dynamic-navigation">
|
|
192
|
+
<link-dynamic href="/utils/give">give</link-dynamic>
|
|
193
|
+
<link-dynamic href="/utils/value">value</link-dynamic>
|
|
194
|
+
</p>
|
|
64
195
|
</div>
|
|
65
196
|
</div>
|
|
66
197
|
</div>
|
|
@@ -15,15 +15,11 @@
|
|
|
15
15
|
|
|
16
16
|
<p class="text-gray-600 text-lg mb-4">
|
|
17
17
|
Источник данных - Это объект, совместимый с интерфейсом
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
>
|
|
24
|
-
SourceType
|
|
25
|
-
</a>
|
|
26
|
-
</span>
|
|
18
|
+
<link-dynamic
|
|
19
|
+
href="https://github.com/kosukhin/patron/blob/main/src/Source/Source.ts#L3-L5"
|
|
20
|
+
>
|
|
21
|
+
SourceType
|
|
22
|
+
</link-dynamic>
|
|
27
23
|
У такого объекта должен быть метод value и объект должен ожидать, что к нему
|
|
28
24
|
придет посетитель за значением
|
|
29
25
|
</p>
|
|
@@ -12,19 +12,19 @@
|
|
|
12
12
|
<div class="w-12 h-1 bg-indigo-500 rounded mt-2 mb-4"></div>
|
|
13
13
|
<ul class="text-gray-900">
|
|
14
14
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
15
|
-
<a href="/terminology/introduction"> Представление </a>
|
|
15
|
+
<a class="dynamic-navigation" href="/terminology/introduction"> Представление </a>
|
|
16
16
|
</li>
|
|
17
17
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
18
|
-
<a href="/terminology/visitor"> Посетитель </a>
|
|
18
|
+
<a class="dynamic-navigation" href="/terminology/visitor"> Посетитель </a>
|
|
19
19
|
</li>
|
|
20
20
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
21
|
-
<a href="/terminology/
|
|
21
|
+
<a class="dynamic-navigation" href="/terminology/guest"> Гость </a>
|
|
22
22
|
</li>
|
|
23
23
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
24
|
-
<a href="/terminology/
|
|
24
|
+
<a class="dynamic-navigation" href="/terminology/patron"> Патрон </a>
|
|
25
25
|
</li>
|
|
26
26
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
27
|
-
<a href="/terminology/
|
|
27
|
+
<a class="dynamic-navigation" href="/terminology/source"> Источник данных </a>
|
|
28
28
|
</li>
|
|
29
29
|
</ul>
|
|
30
30
|
</div>
|
|
@@ -32,19 +32,13 @@
|
|
|
32
32
|
<div
|
|
33
33
|
class="w-full sm:w-2/3 sm:pl-8 sm:border-l border-gray-200 sm:border-t-0 border-t mt-4 sm:mt-0"
|
|
34
34
|
>
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
class="!absolute !-m-px !h-px !w-px !overflow-hidden !whitespace-nowrap !border-0 !p-0 ![clip:rect(0,0,0,0)]"
|
|
43
|
-
>Loading...</span
|
|
44
|
-
>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
35
|
+
<h1 class="pb-3 text-xl font-semibold text-gray-600">Терминология</h1>
|
|
36
|
+
|
|
37
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
38
|
+
Раздел посвящен терминам, которые требуют раскрытия и не могут(или не должны)
|
|
39
|
+
быть раскрыты в описаниях классов и функций библиотеки
|
|
40
|
+
</p>
|
|
41
|
+
|
|
48
42
|
<div class="terminology-page-area"></div>
|
|
49
43
|
</div>
|
|
50
44
|
</div>
|
package/docs/pages/utils.html
CHANGED
|
@@ -12,30 +12,30 @@
|
|
|
12
12
|
<div class="w-12 h-1 bg-indigo-500 rounded mt-2 mb-4"></div>
|
|
13
13
|
<ul class="text-gray-900">
|
|
14
14
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
15
|
-
<a href="/utils/private"> Private </a>
|
|
15
|
+
<a class="dynamic-navigation" href="/utils/private"> Private </a>
|
|
16
16
|
</li>
|
|
17
17
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
18
|
-
<a href="/utils/give"> give </a>
|
|
18
|
+
<a class="dynamic-navigation" href="/utils/give"> give </a>
|
|
19
19
|
</li>
|
|
20
20
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
21
|
-
<a href="/utils/value"> value </a>
|
|
21
|
+
<a class="dynamic-navigation" href="/utils/value"> value </a>
|
|
22
22
|
</li>
|
|
23
23
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
24
|
-
<a href="/utils/is-patron-in-pools"> isPatronInPools </a>
|
|
24
|
+
<a class="dynamic-navigation" href="/utils/is-patron-in-pools"> isPatronInPools </a>
|
|
25
25
|
</li>
|
|
26
26
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
27
|
-
<a href="/utils/remove-patron-from-pools">
|
|
27
|
+
<a class="dynamic-navigation" href="/utils/remove-patron-from-pools">
|
|
28
28
|
removePatronFromPools
|
|
29
29
|
</a>
|
|
30
30
|
</li>
|
|
31
31
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
32
|
-
<a href="/utils/is-guest"> isGuest </a>
|
|
32
|
+
<a class="dynamic-navigation" href="/utils/is-guest"> isGuest </a>
|
|
33
33
|
</li>
|
|
34
34
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
35
|
-
<a href="/utils/is-source"> isSource </a>
|
|
35
|
+
<a class="dynamic-navigation" href="/utils/is-source"> isSource </a>
|
|
36
36
|
</li>
|
|
37
37
|
<li class="w-full border-b-2 border-neutral-100 py-4">
|
|
38
|
-
<a href="/utils/source-of"> sourceOf </a>
|
|
38
|
+
<a class="dynamic-navigation" href="/utils/source-of"> sourceOf </a>
|
|
39
39
|
</li>
|
|
40
40
|
</ul>
|
|
41
41
|
</div>
|
|
@@ -43,19 +43,31 @@
|
|
|
43
43
|
<div
|
|
44
44
|
class="w-full sm:w-2/3 sm:pl-8 sm:border-l border-gray-200 sm:border-t-0 border-t mt-4 sm:mt-0"
|
|
45
45
|
>
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
<h1 class="pb-3 text-xl font-semibold text-gray-600">Утилиты</h1>
|
|
47
|
+
|
|
48
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
49
|
+
В этом разделе собрана документация по вспомогательным функциям и классам
|
|
50
|
+
библиотеки Patron
|
|
51
|
+
</p>
|
|
52
|
+
|
|
53
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
54
|
+
Основные классы библиотеки вынесены в верхнее меню сайта(этой документации), а
|
|
55
|
+
все вспомогательные модули будут описаны здесь
|
|
56
|
+
</p>
|
|
57
|
+
|
|
58
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
59
|
+
Нужно отметить, что основные классы библиотеки:
|
|
60
|
+
<link-dynamic href="/guest">Guest</link-dynamic>,
|
|
61
|
+
<link-dynamic href="/patron">Patron</link-dynamic>,
|
|
62
|
+
<link-dynamic href="/source">Source</link-dynamic> и их производные работают
|
|
63
|
+
на уровне человеческой логики, А классы из этого раздела(utils) предназначены
|
|
64
|
+
для работы на уровне компьютера.
|
|
65
|
+
</p>
|
|
66
|
+
|
|
67
|
+
<p class="text-gray-600 text-lg mb-4">
|
|
68
|
+
В левом меню этого раздела вы найдете все утилиты и их описание
|
|
69
|
+
</p>
|
|
70
|
+
|
|
59
71
|
<div class="utils-page-area"></div>
|
|
60
72
|
</div>
|
|
61
73
|
</div>
|
package/docs/routes.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
["pages/404.html","pages/patron.html","pages/index.html","pages/terminology/introduction.html","pages/terminology/patron.html","pages/terminology/index.html","pages/terminology/guest.html","pages/terminology/source.html","pages/terminology/visitor.html","pages/philosofy.html","pages/patron/index.html","pages/patron/patron-executor-applied.html","pages/patron/patron-once.html","pages/patron/patron-applied.html","pages/patron/patron-pool.html","pages/utils/index.html","pages/utils/give.html","pages/utils/is-source.html","pages/utils/private.html","pages/utils/is-guest.html","pages/utils/is-patron-in-pools.html","pages/utils/remove-patron-from-pools.html","pages/utils/source-of.html","pages/utils/is-guest-aware.html","pages/utils/value.html","pages/examples.html","pages/guest/guest-applied.html","pages/guest/index.html","pages/guest/guest-cast.html","pages/guest/guest-pool.html","pages/guest/guest-object.html","pages/guest/guest-executor-applied.html","pages/guest/guest-disposable.html","pages/guest/guest-sync.html","pages/examples/index.html","pages/examples/errors.html","pages/guest.html","pages/common/layout.html","pages/source.html","pages/utils.html","pages/source/source-dynamic.html","pages/source/index.html","pages/source/source-all.html","pages/source/source-map.html","pages/source/source-sequence.html","pages/source/source.html","pages/source/source-with-pool.html","pages/source/source-applied.html","pages/source/source-once.html","pages/source/source-executor-applied.html","pages/source/source-race.html","pages/integrations/vue.html","pages/integrations/layout.html","pages/integrations/angular.html","pages/integrations/react.html","pages/compatibility/elegant-objects.html","pages/compatibility/layout.html","pages/compatibility/dip.html","pages/terminology.html","pages/factory/index.html","pages/factory.html\n"]
|
package/docs/template.html
CHANGED
|
@@ -17,87 +17,11 @@
|
|
|
17
17
|
/>
|
|
18
18
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
|
19
19
|
<script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.9.0/highlightjs-line-numbers.min.js"></script>
|
|
20
|
-
<link
|
|
21
|
-
rel="apple-touch-icon"
|
|
22
|
-
sizes="57x57"
|
|
23
|
-
href="./assets/favicon/apple-icon-57x57.png"
|
|
24
|
-
/>
|
|
25
|
-
<link
|
|
26
|
-
rel="apple-touch-icon"
|
|
27
|
-
sizes="60x60"
|
|
28
|
-
href="./assets/favicon/apple-icon-60x60.png"
|
|
29
|
-
/>
|
|
30
|
-
<link
|
|
31
|
-
rel="apple-touch-icon"
|
|
32
|
-
sizes="72x72"
|
|
33
|
-
href="./assets/favicon/apple-icon-72x72.png"
|
|
34
|
-
/>
|
|
35
|
-
<link
|
|
36
|
-
rel="apple-touch-icon"
|
|
37
|
-
sizes="76x76"
|
|
38
|
-
href="./assets/favicon/apple-icon-76x76.png"
|
|
39
|
-
/>
|
|
40
|
-
<link
|
|
41
|
-
rel="apple-touch-icon"
|
|
42
|
-
sizes="114x114"
|
|
43
|
-
href="./assets/favicon/apple-icon-114x114.png"
|
|
44
|
-
/>
|
|
45
|
-
<link
|
|
46
|
-
rel="apple-touch-icon"
|
|
47
|
-
sizes="120x120"
|
|
48
|
-
href="./assets/favicon/apple-icon-120x120.png"
|
|
49
|
-
/>
|
|
50
|
-
<link
|
|
51
|
-
rel="apple-touch-icon"
|
|
52
|
-
sizes="144x144"
|
|
53
|
-
href="./assets/favicon/apple-icon-144x144.png"
|
|
54
|
-
/>
|
|
55
|
-
<link
|
|
56
|
-
rel="apple-touch-icon"
|
|
57
|
-
sizes="152x152"
|
|
58
|
-
href="./assets/favicon/apple-icon-152x152.png"
|
|
59
|
-
/>
|
|
60
|
-
<link
|
|
61
|
-
rel="apple-touch-icon"
|
|
62
|
-
sizes="180x180"
|
|
63
|
-
href="./assets/favicon/apple-icon-180x180.png"
|
|
64
|
-
/>
|
|
65
|
-
<link
|
|
66
|
-
rel="icon"
|
|
67
|
-
type="image/png"
|
|
68
|
-
sizes="192x192"
|
|
69
|
-
href="./assets/favicon/android-icon-192x192.png"
|
|
70
|
-
/>
|
|
71
|
-
<link
|
|
72
|
-
rel="icon"
|
|
73
|
-
type="image/png"
|
|
74
|
-
sizes="32x32"
|
|
75
|
-
href="./assets/favicon/favicon-32x32.png"
|
|
76
|
-
/>
|
|
77
|
-
<link
|
|
78
|
-
rel="icon"
|
|
79
|
-
type="image/png"
|
|
80
|
-
sizes="96x96"
|
|
81
|
-
href="./assets/favicon/favicon-96x96.png"
|
|
82
|
-
/>
|
|
83
|
-
<link
|
|
84
|
-
rel="icon"
|
|
85
|
-
type="image/png"
|
|
86
|
-
sizes="16x16"
|
|
87
|
-
href="./assets/favicon/favicon-16x16.png"
|
|
88
|
-
/>
|
|
89
|
-
<link
|
|
90
|
-
rel="manifest"
|
|
91
|
-
href="./manifest.json"
|
|
92
|
-
/>
|
|
20
|
+
<link rel="icon" href="./favicon.ico" type="image/x-icon" />
|
|
93
21
|
<meta
|
|
94
22
|
name="msapplication-TileColor"
|
|
95
23
|
content="#ffffff"
|
|
96
24
|
/>
|
|
97
|
-
<meta
|
|
98
|
-
name="msapplication-TileImage"
|
|
99
|
-
content="./assets/favicon/ms-icon-144x144.png"
|
|
100
|
-
/>
|
|
101
25
|
<meta
|
|
102
26
|
name="theme-color"
|
|
103
27
|
content="#ffffff"
|
|
@@ -109,7 +33,7 @@
|
|
|
109
33
|
<script type="importmap">
|
|
110
34
|
{
|
|
111
35
|
"imports": {
|
|
112
|
-
"silentium
|
|
36
|
+
"silentium": "TPL_SILENTIUM_OOP",
|
|
113
37
|
"silentium-web-api": "TPL_SILENTIUM_WEB_API",
|
|
114
38
|
"silentium-components": "TPL_SILENTIUM_COMPONENTS"
|
|
115
39
|
}
|
|
@@ -130,7 +54,7 @@
|
|
|
130
54
|
class="ml-3 text-xl flex gap-2 items-center"
|
|
131
55
|
>
|
|
132
56
|
<img
|
|
133
|
-
src="./assets/img/logo.
|
|
57
|
+
src="./assets/img/logo.svg"
|
|
134
58
|
width="40"
|
|
135
59
|
height="44"
|
|
136
60
|
/>
|
|
@@ -339,7 +263,7 @@
|
|
|
339
263
|
</div>
|
|
340
264
|
</footer>
|
|
341
265
|
<script
|
|
342
|
-
src="./assets/js/
|
|
266
|
+
src="./assets/js/index.mjs"
|
|
343
267
|
type="module"
|
|
344
268
|
></script>
|
|
345
269
|
</body>
|
package/eslint.config.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "silentium",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/silentium.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"cz": "git add . && git cz",
|
|
20
20
|
"push-head": "git push origin HEAD",
|
|
21
21
|
"test-debug": "env DEBUG=app:* vitest",
|
|
22
|
-
"release": "npm run build && standard-version --no-verify && git push --follow-tags && npm publish",
|
|
22
|
+
"release": "./beforeRelease.sh && npm run build && standard-version --no-verify && git push --follow-tags && npm publish",
|
|
23
23
|
"prepare": "husky"
|
|
24
24
|
},
|
|
25
25
|
"repository": {
|
package/src/Guest/Guest.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface GuestObjectType<T = any> {
|
|
|
10
10
|
export type GuestType<T = any> = GuestExecutorType<T> | GuestObjectType<T>;
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* @url https://
|
|
13
|
+
* @url https://silentium-lab.github.io/silentium/#/utils/give
|
|
14
14
|
*/
|
|
15
15
|
export function give<T>(data: T, guest: GuestType<T>) {
|
|
16
16
|
if (data === undefined) {
|
|
@@ -27,7 +27,7 @@ export function give<T>(data: T, guest: GuestType<T>) {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* @url https://
|
|
30
|
+
* @url https://silentium-lab.github.io/silentium/#/utils/is-guest
|
|
31
31
|
*/
|
|
32
32
|
export function isGuest(mbGuest: any): mbGuest is GuestType {
|
|
33
33
|
if (mbGuest === undefined) {
|
|
@@ -37,7 +37,7 @@ export function isGuest(mbGuest: any): mbGuest is GuestType {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
|
-
* @url https://
|
|
40
|
+
* @url https://silentium-lab.github.io/silentium/#/guest
|
|
41
41
|
*/
|
|
42
42
|
export class Guest<T> implements GuestObjectType<T> {
|
|
43
43
|
public constructor(private receiver: GuestExecutorType<T>) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { give, GuestObjectType, GuestType } from "../Guest/Guest";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @url https://
|
|
4
|
+
* @url https://silentium-lab.github.io/silentium/#/guest/guest-applied
|
|
5
5
|
*/
|
|
6
6
|
export class GuestApplied<T, R> implements GuestObjectType<T> {
|
|
7
7
|
public constructor(
|
package/src/Guest/GuestCast.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { give, GuestType } from "./Guest";
|
|
|
2
2
|
import { GuestDisposableType, MaybeDisposableType } from "./GuestDisposable";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @url https://
|
|
5
|
+
* @url https://silentium-lab.github.io/silentium/#/guest/guest-cast
|
|
6
6
|
*/
|
|
7
7
|
export class GuestCast<T> implements GuestDisposableType<T> {
|
|
8
8
|
public constructor(
|
|
@@ -7,7 +7,7 @@ export interface GuestDisposableType<T = any> extends GuestObjectType<T> {
|
|
|
7
7
|
export type MaybeDisposableType<T = any> = Partial<GuestDisposableType<T>>;
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* @url https://
|
|
10
|
+
* @url https://silentium-lab.github.io/silentium/#/guest/guest-disposable
|
|
11
11
|
*/
|
|
12
12
|
export class GuestDisposable<T> implements GuestDisposableType<T> {
|
|
13
13
|
public constructor(
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "../Guest/Guest";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* @url https://
|
|
9
|
+
* @url https://silentium-lab.github.io/silentium/#/guest/guest-executor-applied
|
|
10
10
|
*/
|
|
11
11
|
export class GuestExecutorApplied<T> implements GuestObjectType<T> {
|
|
12
12
|
public give: GuestExecutorType<T, this>;
|
package/src/Guest/GuestObject.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Guest, GuestType } from "./Guest";
|
|
|
2
2
|
import { GuestDisposableType, MaybeDisposableType } from "./GuestDisposable";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @url https://
|
|
5
|
+
* @url https://silentium-lab.github.io/silentium/#/guest/guest-object
|
|
6
6
|
*/
|
|
7
7
|
export class GuestObject<T> implements GuestDisposableType<T> {
|
|
8
8
|
public constructor(private baseGuest: GuestType<T>) {
|
package/src/Guest/GuestPool.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { PatronPool, PoolType } from "../Patron/PatronPool";
|
|
|
2
2
|
import { give, GuestObjectType, GuestType } from "./Guest";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* @url https://
|
|
5
|
+
* @url https://silentium-lab.github.io/silentium/#/guest/guest-pool
|
|
6
6
|
*/
|
|
7
7
|
export class GuestPool<T> implements GuestObjectType<T>, PoolType<T> {
|
|
8
8
|
private guests = new Set<GuestType<T>>();
|
package/src/Guest/GuestSync.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface GuestValueType<T = any> extends GuestObjectType<T> {
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* @url https://
|
|
8
|
+
* @url https://silentium-lab.github.io/silentium/#/guest/guest-sync
|
|
9
9
|
*/
|
|
10
10
|
export class GuestSync<T> implements GuestValueType<T> {
|
|
11
11
|
public constructor(private theValue: T) {
|