UNPKG

736 BPlain TextView Raw
1import { hostname } from 'os';
2
3import buildAssets from './build';
4
5const nconf = require.main.require('nconf');
6const winston = require.main.require('winston');
7const pubsub = require.main.require('./src/pubsub');
8
9const primary = nconf.get('isPrimary') === 'true' || nconf.get('isPrimary') === true;
10
11export async function build() {
12 if (pubsub.pubClient) {
13 pubsub.publish('emoji:build', {
14 hostname: hostname(),
15 });
16 }
17
18 if (primary) {
19 await buildAssets();
20 }
21}
22
23const logErrors = (err: Error) => {
24 if (err) {
25 winston.error(err);
26 }
27};
28
29if (primary) {
30 pubsub.on('emoji:build', (data: { hostname: string }) => {
31 if (data.hostname !== hostname()) {
32 buildAssets().catch(logErrors);
33 }
34 });
35}