1 | 'use strict';
|
2 |
|
3 | const settings = require('../../shared/settings');
|
4 |
|
5 | const only = {
|
6 | ifNotExists() {
|
7 | return settings({ autoCreate: true });
|
8 | },
|
9 | ifExists() {
|
10 | return settings({ autoCreate: false });
|
11 | },
|
12 | };
|
13 |
|
14 | const extendPreEvent = (extender) => {
|
15 | if (!extender || typeof extender !== 'function')
|
16 | throw new Error('Extender is missing or not a function.');
|
17 |
|
18 | return {
|
19 | preEventExtender(event) {
|
20 | return Promise.resolve(extender(event));
|
21 | },
|
22 | };
|
23 | };
|
24 |
|
25 | const extendEvent = (extender) => {
|
26 | if (!extender || typeof extender !== 'function')
|
27 | throw new Error('Extender is missing or not a function.');
|
28 |
|
29 | return {
|
30 | eventExtender(event) {
|
31 | return Promise.resolve(extender(event));
|
32 | },
|
33 | };
|
34 | };
|
35 |
|
36 | const identifier = (identifierFunction) => {
|
37 | if (!identifierFunction || (typeof identifierFunction !== 'function' && typeof identifierFunction !== 'string'))
|
38 | throw new Error('No identifier valid supplied!');
|
39 |
|
40 | return { useAsId: identifierFunction };
|
41 | };
|
42 |
|
43 |
|
44 | module.exports = {
|
45 | settings,
|
46 | only,
|
47 | extendPreEvent,
|
48 | extendEvent,
|
49 | identifier,
|
50 | };
|