@wabot-dev/framework 0.9.6 → 0.9.7
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/dist/src/feature/project-runner/ProjectRunner.js +40 -28
- package/package.json +1 -1
- package/dist/src/addon/async/in-memory/index.js +0 -2
- package/dist/src/addon/async/pg/index.js +0 -3
- package/dist/src/addon/chat-bot/in-memory/index.js +0 -2
- package/dist/src/addon/chat-bot/pg/index.js +0 -2
- package/dist/src/addon/lock/index.js +0 -2
- package/dist/src/feature/pg/index.js +0 -10
|
@@ -38,10 +38,10 @@ const logger = new Logger('wabot:project-runner');
|
|
|
38
38
|
const TEST_FILE_PATTERNS = /\.(test|spec|unit|integration|e2e|multiprocess)\.(ts|js)$/;
|
|
39
39
|
const DEFAULT_EXCLUDE = ['run.ts', 'cmd.ts'];
|
|
40
40
|
const DEFAULT_CHAT_ADAPTERS = [
|
|
41
|
-
['../../addon/chat-bot/openia', 'OpenaiChatAdapter'],
|
|
42
|
-
['../../addon/chat-bot/openrouter', 'OpenRouterChatAdapter'],
|
|
43
|
-
['../../addon/chat-bot/anthropic', 'AnthropicChatAdapter'],
|
|
44
|
-
['../../addon/chat-bot/google', 'GoogleChatAdapter'],
|
|
41
|
+
['../../addon/chat-bot/openia/OpenaiChatAdapter', 'OpenaiChatAdapter'],
|
|
42
|
+
['../../addon/chat-bot/openrouter/OpenRouterChatAdapter', 'OpenRouterChatAdapter'],
|
|
43
|
+
['../../addon/chat-bot/anthropic/AnthropicChatAdapter', 'AnthropicChatAdapter'],
|
|
44
|
+
['../../addon/chat-bot/google/GoogleChatAdapter', 'GoogleChatAdapter'],
|
|
45
45
|
];
|
|
46
46
|
class ProjectRunner {
|
|
47
47
|
directories;
|
|
@@ -176,23 +176,28 @@ class ProjectRunner {
|
|
|
176
176
|
}
|
|
177
177
|
async registerMemoryAdapters(components) {
|
|
178
178
|
const needsJobs = components.commandHandlers.length > 0 || components.cronHandlers.length > 0;
|
|
179
|
-
const [chatBotMod, lockMod,
|
|
180
|
-
import('../../addon/chat-bot/in-memory/
|
|
181
|
-
import('../../addon/lock/
|
|
182
|
-
needsJobs
|
|
179
|
+
const [chatBotMod, lockMod, jobMod, cronJobMod] = await Promise.all([
|
|
180
|
+
import('../../addon/chat-bot/in-memory/InMemoryChatRepository.js'),
|
|
181
|
+
import('../../addon/lock/InMemoryLocker.js'),
|
|
182
|
+
needsJobs
|
|
183
|
+
? import('../../addon/async/in-memory/InMemoryJobRepository.js')
|
|
184
|
+
: Promise.resolve(null),
|
|
185
|
+
components.cronHandlers.length > 0
|
|
186
|
+
? import('../../addon/async/in-memory/InMemoryCronJobRepository.js')
|
|
187
|
+
: Promise.resolve(null),
|
|
183
188
|
]);
|
|
184
189
|
container.register(ChatRepository, { useToken: chatBotMod.InMemoryChatRepository });
|
|
185
190
|
container.register(Locker, { useToken: lockMod.InMemoryLocker });
|
|
186
191
|
const memoryAdapter = new MemoryRepositoryAdapter();
|
|
187
192
|
container.resolve(RepositoryAdapterRegistry).setDefault(memoryAdapter);
|
|
188
193
|
container.resolve(RepositoryMetadataStore).validateExtensionsRegistered(memoryAdapter.id);
|
|
189
|
-
if (
|
|
190
|
-
container.register(JobRepository, { useToken:
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
194
|
+
if (jobMod) {
|
|
195
|
+
container.register(JobRepository, { useToken: jobMod.InMemoryJobRepository });
|
|
196
|
+
}
|
|
197
|
+
if (cronJobMod) {
|
|
198
|
+
container.register(CronJobRepository, {
|
|
199
|
+
useToken: cronJobMod.InMemoryCronJobRepository,
|
|
200
|
+
});
|
|
196
201
|
}
|
|
197
202
|
logger.info('Configured with in-memory adapters');
|
|
198
203
|
}
|
|
@@ -200,25 +205,32 @@ class ProjectRunner {
|
|
|
200
205
|
if (!this.pool) {
|
|
201
206
|
throw new Error('Postgres pool was not initialized');
|
|
202
207
|
}
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
import('../../addon/
|
|
208
|
+
const hasCommandHandlers = components.commandHandlers.length > 0;
|
|
209
|
+
const hasCronHandlers = components.cronHandlers.length > 0;
|
|
210
|
+
const [chatBotMod, lockerMod, repoAdapterMod, txMod, jobMod, cronJobMod] = await Promise.all([
|
|
211
|
+
import('../../addon/chat-bot/pg/PgChatRepository.js'),
|
|
212
|
+
import('../pg/PgLocker.js'),
|
|
213
|
+
import('../pg/PgJsonRepositoryAdapter.js'),
|
|
214
|
+
import('../../addon/async/pg/PgTransactionAdapter.js'),
|
|
215
|
+
hasCommandHandlers || hasCronHandlers
|
|
216
|
+
? import('../../addon/async/pg/PgJobRepository.js')
|
|
217
|
+
: Promise.resolve(null),
|
|
218
|
+
hasCronHandlers
|
|
219
|
+
? import('../../addon/async/pg/PgCronJobRepository.js')
|
|
220
|
+
: Promise.resolve(null),
|
|
207
221
|
]);
|
|
208
222
|
container.register(ChatRepository, { useToken: chatBotMod.PgChatRepository });
|
|
209
|
-
container.register(Locker, { useToken:
|
|
210
|
-
const pgAdapter = new
|
|
223
|
+
container.register(Locker, { useToken: lockerMod.PgLocker });
|
|
224
|
+
const pgAdapter = new repoAdapterMod.PgJsonRepositoryAdapter(this.pool);
|
|
211
225
|
container.resolve(RepositoryAdapterRegistry).setDefault(pgAdapter);
|
|
212
226
|
container.resolve(RepositoryMetadataStore).validateExtensionsRegistered(pgAdapter.id);
|
|
213
227
|
const transactionStore = container.resolve(TransactionMetadataStore);
|
|
214
|
-
transactionStore.registerAdapter('default', new
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if (hasCommandHandlers || hasCronHandlers) {
|
|
218
|
-
container.register(JobRepository, { useToken: asyncMod.PgJobRepository });
|
|
228
|
+
transactionStore.registerAdapter('default', new txMod.PgTransactionAdapter(this.pool));
|
|
229
|
+
if (jobMod) {
|
|
230
|
+
container.register(JobRepository, { useToken: jobMod.PgJobRepository });
|
|
219
231
|
}
|
|
220
|
-
if (
|
|
221
|
-
container.register(CronJobRepository, { useToken:
|
|
232
|
+
if (cronJobMod) {
|
|
233
|
+
container.register(CronJobRepository, { useToken: cronJobMod.PgCronJobRepository });
|
|
222
234
|
}
|
|
223
235
|
logger.info('Configured with PostgreSQL adapters');
|
|
224
236
|
}
|
package/package.json
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { PG_ADAPTER_ID, pgExtension } from './@pgExtension.js';
|
|
2
|
-
export { PgCrudRepository } from './PgCrudRepository.js';
|
|
3
|
-
export { PgJsonRepositoryAdapter } from './PgJsonRepositoryAdapter.js';
|
|
4
|
-
export { PgLocker } from './PgLocker.js';
|
|
5
|
-
export { PgLockKey } from './PgLockKey.js';
|
|
6
|
-
export { PgRepositoryBase, PgRepositoryBase as PgRepositoryExtension } from './PgRepositoryBase.js';
|
|
7
|
-
export { getClientMap, pgStorage } from './pgStorage.js';
|
|
8
|
-
export { buildQuerySql } from './buildQuerySql.js';
|
|
9
|
-
export { getPgClient, withPgClient } from './withPgClient.js';
|
|
10
|
-
export { withPgTransaction } from './withPgTransaction.js';
|