forked from GeorgeSapkin/pubsub-store
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsubjects.js
More file actions
41 lines (35 loc) · 902 Bytes
/
subjects.js
File metadata and controls
41 lines (35 loc) · 902 Bytes
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
'use strict';
const Prefixes = {
count: 'count',
create: 'create',
find: 'find',
update: 'update'
};
function getSubjects(name, { prefixes = Prefixes, suffix = '' } = {}) {
const _name = name.toLowerCase();
const _suffix = (suffix != null && suffix !== '')
? `.${suffix}`
: '';
return Object.freeze({
count: Object.freeze([
`${prefixes.count}.${_name}${_suffix}`,
`${prefixes.count}.${_name}${_suffix}.>`
]),
create: Object.freeze([
`${prefixes.create}.${_name}${_suffix}`,
`${prefixes.create}.${_name}${_suffix}.>`
]),
find: Object.freeze([
`${prefixes.find}.${_name}${_suffix}`,
`${prefixes.find}.${_name}${_suffix}.>`
]),
update: Object.freeze([
`${prefixes.update}.${_name}${_suffix}`,
`${prefixes.update}.${_name}${_suffix}.>`
])
});
}
module.exports = {
getSubjects,
Prefixes
};