-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinitBoiler.ts
More file actions
48 lines (44 loc) · 1.85 KB
/
initBoiler.ts
File metadata and controls
48 lines (44 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
* To be called first for any app launch.
* consumerConfigDir: path to the consumer's config/ directory (with default-config.yml).
* If not provided, uses lib-bridge-js's own config/ directory.
*/
import path from 'path';
import { createRequire } from 'module';
import type { Boiler, Config, ExtraConfig } from '@pryv/boiler';
const require = createRequire(import.meta.url);
const bridgeConfigDir = path.resolve(import.meta.dirname, '../config');
export default function initBoiler (appName: string, consumerConfigDir?: string): Boiler {
const extraConfigs: ExtraConfig[] = [];
if (process.env.NODE_ENV === 'test') {
const testConfig = path.resolve(consumerConfigDir || bridgeConfigDir, 'test-config.yml');
extraConfigs.push({ scope: 'test-config', file: testConfig });
}
extraConfigs.push({
pluginAsync: {
load: async function (store: Config): Promise<string> {
const storageDir = store.get<string>('storage:files:directory') || './storage';
const baseDir = consumerConfigDir ? path.resolve(consumerConfigDir, '..') : path.resolve(import.meta.dirname, '..');
const storageDirAbsolute = path.resolve(baseDir, storageDir);
store.set('storage:files:directoryAbsolute', storageDirAbsolute);
return 'plugin-fileDirectoryAbsolute'; // my name
}
}
});
// Use consumer's config dir if provided, with lib-bridge-js defaults as fallback
const configDir = consumerConfigDir || bridgeConfigDir;
const baseFilesDir = consumerConfigDir ? path.resolve(consumerConfigDir, '..') : path.resolve(import.meta.dirname, '..');
const boiler = require('@pryv/boiler').init({
appName,
baseFilesDir,
baseConfigDir: configDir,
extraConfigs
}) as Boiler;
return boiler;
}
// load debug $$ in test mode
if (process.env.NODE_ENV === 'test') {
(async () => {
await import('./lib/debug.ts');
})();
}