Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop

master
rob 11 months ago
commit f8788f151e

@ -30,6 +30,27 @@
"console": "integratedTerminal", "console": "integratedTerminal",
"args": ["--action=reset-indexes", "all"] "args": ["--action=reset-indexes", "all"]
}, },
{
"type": "node",
"request": "launch",
"name": "worker:newsletter",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder:dtp-base}/app/workers/newsletter.js",
"console": "integratedTerminal",
},
{
"type": "node",
"request": "launch",
"name": "worker:newsroom",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder:dtp-base}/app/workers/newsroom.js",
"console": "integratedTerminal",
},
{ {
"type": "node", "type": "node",
"request": "launch", "request": "launch",

@ -123,7 +123,7 @@ class AdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin', logId: 'ctl:admin',
index: 'admin', index: 'admin',
className: 'AdminController', className: 'AdminController',
create: async (dtp) => { return new AdminController(dtp); }, create: async (dtp) => { return new AdminController(dtp); },

@ -158,8 +158,8 @@ class AnnouncementAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'announcement', logId: 'ctl:admin:announcement',
index: 'announcement', index: 'adminAnnouncement',
className: 'AnnouncementAdminController', className: 'AnnouncementAdminController',
create: async (dtp) => { return new AnnouncementAdminController(dtp); }, create: async (dtp) => { return new AnnouncementAdminController(dtp); },
}; };

@ -130,7 +130,7 @@ class AttachmentAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-attachment', logId: 'ctl:admin:attachment',
index: 'adminAttachment', index: 'adminAttachment',
className: 'AttachmentAdminController', className: 'AttachmentAdminController',
create: async (dtp) => { return new AttachmentAdminController(dtp); }, create: async (dtp) => { return new AttachmentAdminController(dtp); },

@ -87,7 +87,7 @@ class ContentReportAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-content-report', logId: 'ctl:admin:content-report',
index: 'adminContentReport', index: 'adminContentReport',
className: 'ContentReportAdminController', className: 'ContentReportAdminController',
create: async (dtp) => { return new ContentReportAdminController(dtp); }, create: async (dtp) => { return new ContentReportAdminController(dtp); },

@ -159,7 +159,7 @@ class CoreNodeAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-core-node', logId: 'ctl:admin:core-node',
index: 'adminCoreNode', index: 'adminCoreNode',
className: 'CoreNodeAdminController', className: 'CoreNodeAdminController',
create: async (dtp) => { return new CoreNodeAdminController(dtp); }, create: async (dtp) => { return new CoreNodeAdminController(dtp); },

@ -88,7 +88,7 @@ class CoreUserAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-core-user', logId: 'ctl:admin:core-user',
index: 'adminCoreUser', index: 'adminCoreUser',
className: 'CoreUserAdminController', className: 'CoreUserAdminController',
create: async (dtp) => { return new CoreUserAdminController(dtp); }, create: async (dtp) => { return new CoreUserAdminController(dtp); },

@ -116,7 +116,7 @@ class HostAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-host', logId: 'ctl:admin:host',
index: 'adminHost', index: 'adminHost',
className: 'HostAdminController', className: 'HostAdminController',
create: async (dtp) => { return new HostAdminController(dtp); }, create: async (dtp) => { return new HostAdminController(dtp); },

@ -114,7 +114,7 @@ class ImageAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-image', logId: 'ctl:admin:image',
index: 'adminImage', index: 'adminImage',
className: 'ImageAdminController', className: 'ImageAdminController',
create: async (dtp) => { return new ImageAdminController(dtp); }, create: async (dtp) => { return new ImageAdminController(dtp); },

@ -119,7 +119,7 @@ class JobQueueAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-job-queue', logId: 'ctl:admin:job-queue',
index: 'adminJobQueue', index: 'adminJobQueue',
className: 'JobQueueAdminController', className: 'JobQueueAdminController',
create: async (dtp) => { return new JobQueueAdminController(dtp); }, create: async (dtp) => { return new JobQueueAdminController(dtp); },

@ -37,7 +37,7 @@ class LogAdminController extends SiteController {
const search = { }; const search = { };
if (req.query.component) { if (req.query.component) {
search.component = { slug: req.query.component }; search.component = { logId: req.query.component };
} }
res.locals.logs = await logService.getRecords(search, res.locals.pagination); res.locals.logs = await logService.getRecords(search, res.locals.pagination);
@ -51,7 +51,7 @@ class LogAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-log', logId: 'ctl:admin:log',
index: 'adminLog', index: 'adminLog',
className: 'LogAdminController', className: 'LogAdminController',
create: async (dtp) => { return new LogAdminController(dtp); }, create: async (dtp) => { return new LogAdminController(dtp); },

@ -167,7 +167,7 @@ class NewsletterAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-newsletter', logId: 'ctl:admin:newsletter',
index: 'adminNewsletter', index: 'adminNewsletter',
className: 'NewsletterAdminController', className: 'NewsletterAdminController',
create: async (dtp) => { return new NewsletterAdminController(dtp); }, create: async (dtp) => { return new NewsletterAdminController(dtp); },

@ -158,8 +158,8 @@ class NewsroomAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'newsroom-admin', logId: 'ctl:admin:newsroom',
index: 'newsroomAdmin', index: 'adminNewsroomAdmin',
className: 'NewsroomAdminController', className: 'NewsroomAdminController',
create: async (dtp) => { return new NewsroomAdminController(dtp); }, create: async (dtp) => { return new NewsroomAdminController(dtp); },
}; };

@ -49,7 +49,7 @@ class OtpAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-otp', logId: 'ctl:admin:otp',
index: 'adminOtp', index: 'adminOtp',
className: 'OtpAdminController', className: 'OtpAdminController',
create: async (dtp) => { return new OtpAdminController(dtp); }, create: async (dtp) => { return new OtpAdminController(dtp); },

@ -128,7 +128,7 @@ class ServiceNodeAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-service-node', logId: 'ctl:admin:service-node',
index: 'adminServiceNode', index: 'adminServiceNode',
className: 'ServiceNodeAdminController', className: 'ServiceNodeAdminController',
create: async (dtp) => { return new ServiceNodeAdminController(dtp); }, create: async (dtp) => { return new ServiceNodeAdminController(dtp); },

@ -125,7 +125,7 @@ class SettingsAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-settings', logId: 'ctl:admin:settings',
index: 'adminSettings', index: 'adminSettings',
className: 'SettingsAdminController', className: 'SettingsAdminController',
create: async (dtp) => { return new SettingsAdminController(dtp); }, create: async (dtp) => { return new SettingsAdminController(dtp); },

@ -338,7 +338,7 @@ class UserAdminController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'admin-user', logId: 'ctl:admin:user',
index: 'adminUser', index: 'adminUser',
className: 'UserAdminController', className: 'UserAdminController',
create: async (dtp) => { return new UserAdminController(dtp); }, create: async (dtp) => { return new UserAdminController(dtp); },

@ -76,7 +76,7 @@ class AnnouncementController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'announcement', logId: 'ctl:announcement',
index: 'announcement', index: 'announcement',
className: 'AnnouncementController', className: 'AnnouncementController',
create: async (dtp) => { return new AnnouncementController(dtp); }, create: async (dtp) => { return new AnnouncementController(dtp); },

@ -339,7 +339,7 @@ class AuthController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'auth', logId: 'ctl:auth',
index: 'auth', index: 'auth',
className: 'AuthController', className: 'AuthController',
create: async (dtp) => { return new AuthController(dtp); }, create: async (dtp) => { return new AuthController(dtp); },

@ -648,7 +648,7 @@ class ChatController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'chat', logId: 'ctl:chat',
index: 'chat', index: 'chat',
className: 'ChatController', className: 'ChatController',
create: async (dtp) => { return new ChatController(dtp); }, create: async (dtp) => { return new ChatController(dtp); },

@ -151,7 +151,7 @@ class CommentController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'comment', logId: 'ctl:comment',
index: 'comment', index: 'comment',
className: 'CommentController', className: 'CommentController',
create: async (dtp) => { return new CommentController(dtp); }, create: async (dtp) => { return new CommentController(dtp); },

@ -81,7 +81,7 @@ class EmailController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'email', logId: 'ctl:email',
index: 'email', index: 'email',
className: 'EmailController', className: 'EmailController',
create: async (dtp) => { return new EmailController(dtp); }, create: async (dtp) => { return new EmailController(dtp); },

@ -64,7 +64,7 @@ class FormController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'form', logId: 'ctl:form',
index: 'form', index: 'form',
className: 'FormController', className: 'FormController',
create: async (dtp) => { return new FormController(dtp); }, create: async (dtp) => { return new FormController(dtp); },

@ -57,7 +57,7 @@ class HiveController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'hive', logId: 'ctl:hive',
index: 'hive', index: 'hive',
className: 'HiveController', className: 'HiveController',
create: async (dtp) => { return new HiveController(dtp); }, create: async (dtp) => { return new HiveController(dtp); },

@ -93,7 +93,7 @@ class HiveKaleidoscopeController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'hive-kaleidoscope', logId: 'ctl:hive:kaleidoscope',
index: 'hiveKaleidoscope', index: 'hiveKaleidoscope',
className: 'HiveKaleidoscopeController', className: 'HiveKaleidoscopeController',
create: async (dtp) => { return new HiveKaleidoscopeController(dtp); }, create: async (dtp) => { return new HiveKaleidoscopeController(dtp); },

@ -149,7 +149,7 @@ class HiveUserController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'hive-user', logId: 'ctl:hive:user',
index: 'hiveUser', index: 'hiveUser',
className: 'HiveUserController', className: 'HiveUserController',
create: async (dtp) => { return new HiveUserController(dtp); }, create: async (dtp) => { return new HiveUserController(dtp); },

@ -96,7 +96,7 @@ class HomeController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'home', logId: 'ctl:home',
index: 'home', index: 'home',
className: 'HomeController', className: 'HomeController',
create: async (dtp) => { return new HomeController(dtp); }, create: async (dtp) => { return new HomeController(dtp); },

@ -135,7 +135,7 @@ class ImageController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'image', logId: 'ctl:image',
index: 'image', index: 'image',
className: 'ImageController', className: 'ImageController',
create: async (dtp) => { return new ImageController(dtp); }, create: async (dtp) => { return new ImageController(dtp); },

@ -64,7 +64,7 @@ class ManifestController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'manifest', logId: 'ctl:manifest',
index: 'manifest', index: 'manifest',
className: 'ManifestController', className: 'ManifestController',
create: async (dtp) => { return new ManifestController(dtp); }, create: async (dtp) => { return new ManifestController(dtp); },

@ -92,7 +92,7 @@ class NewsletterController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'newsletter', logId: 'ctl:newsletter',
index: 'newsletter', index: 'newsletter',
className: 'NewsletterController', className: 'NewsletterController',
create: async (dtp) => { return new NewsletterController(dtp); }, create: async (dtp) => { return new NewsletterController(dtp); },

@ -165,7 +165,7 @@ class NewsroomController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'newsroom', logId: 'ctl:newsroom',
index: 'newsroom', index: 'newsroom',
className: 'NewsroomController', className: 'NewsroomController',
create: (dtp) => { return new NewsroomController(dtp); }, create: (dtp) => { return new NewsroomController(dtp); },

@ -72,7 +72,7 @@ class NotificationController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'notification', logId: 'ctl:notification',
index: 'notification', index: 'notification',
className: 'NotificationController', className: 'NotificationController',
create: async (dtp) => { return new NotificationController(dtp); }, create: async (dtp) => { return new NotificationController(dtp); },

@ -645,7 +645,7 @@ class UserController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'user', logId: 'ctl:user',
index: 'user', index: 'user',
className: 'UserController', className: 'UserController',
create: async (dtp) => { return new UserController(dtp); }, create: async (dtp) => { return new UserController(dtp); },

@ -120,7 +120,7 @@ class WelcomeController extends SiteController {
} }
module.exports = { module.exports = {
logId: 'welcome', logId: 'ctl:welcome',
index: 'welcome', index: 'welcome',
className: 'WelcomeController', className: 'WelcomeController',
create: async (dtp) => { return new WelcomeController(dtp); }, create: async (dtp) => { return new WelcomeController(dtp); },

@ -116,7 +116,7 @@ class AnnouncementService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'announcement', logId: 'svc:announcement',
index: 'announcement', index: 'announcement',
className: 'AnnouncementService', className: 'AnnouncementService',
create: (dtp) => { return new AnnouncementService(dtp); }, create: (dtp) => { return new AnnouncementService(dtp); },

@ -211,7 +211,7 @@ class AttachmentService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'attachment', logId: 'svc:attachment',
index: 'attachment', index: 'attachment',
className: 'AttachmentService', className: 'AttachmentService',
create: (dtp) => { return new AttachmentService(dtp); }, create: (dtp) => { return new AttachmentService(dtp); },

@ -57,7 +57,7 @@ class CacheService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'cache', logId: 'svc:cache',
index: 'cache', index: 'cache',
className: 'CacheService', className: 'CacheService',
create: (dtp) => { return new CacheService(dtp); }, create: (dtp) => { return new CacheService(dtp); },

@ -862,7 +862,7 @@ class ChatService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'chat', logId: 'svc:chat',
index: 'chat', index: 'chat',
className: 'ChatService', className: 'ChatService',
create: (dtp) => { return new ChatService(dtp); }, create: (dtp) => { return new ChatService(dtp); },

@ -350,7 +350,7 @@ class CommentService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'comment', logId: 'svc:comment',
index: 'comment', index: 'comment',
className: 'CommentService', className: 'CommentService',
create: (dtp) => { return new CommentService(dtp); }, create: (dtp) => { return new CommentService(dtp); },

@ -127,7 +127,7 @@ class ContentReportService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'content-report', logId: 'svc:content-report',
index: 'contentReport', index: 'contentReport',
className: 'ContentReportService', className: 'ContentReportService',
create: (dtp) => { return new ContentReportService(dtp); }, create: (dtp) => { return new ContentReportService(dtp); },

@ -117,7 +117,7 @@ class ContentVoteService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'content-vote', logId: 'svc:content-vote',
index: 'contentVote', index: 'contentVote',
className: 'ContentVoteService', className: 'ContentVoteService',
create: (dtp) => { return new ContentVoteService(dtp); }, create: (dtp) => { return new ContentVoteService(dtp); },

@ -812,7 +812,7 @@ class CoreNodeService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'core-node', logId: 'svc:core-node',
index: 'coreNode', index: 'coreNode',
className: 'CoreNodeService', className: 'CoreNodeService',
create: (dtp) => { return new CoreNodeService(dtp); }, create: (dtp) => { return new CoreNodeService(dtp); },

@ -58,7 +58,7 @@ class CryptoService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'crypto', logId: 'svc:crypto',
index: 'crypto', index: 'crypto',
className: 'CryptoService', className: 'CryptoService',
create: (dtp) => { return new CryptoService(dtp); }, create: (dtp) => { return new CryptoService(dtp); },

@ -76,7 +76,7 @@ class CsrfTokenService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'csrf-token', logId: 'svc:csrf-token',
index: 'csrfToken', index: 'csrfToken',
className: 'CsrfTokenService', className: 'CsrfTokenService',
create: (dtp) => { return new CsrfTokenService(dtp); }, create: (dtp) => { return new CsrfTokenService(dtp); },

@ -270,7 +270,7 @@ class DashboardService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'dashboard', logId: 'svc:dashboard',
index: 'dashboard', index: 'dashboard',
className: 'DashboardService', className: 'DashboardService',
create: (dtp) => { return new DashboardService(dtp); }, create: (dtp) => { return new DashboardService(dtp); },

@ -150,7 +150,7 @@ class DisplayEngineService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'display-engine', logId: 'svc:display-engine',
index: 'displayEngine', index: 'displayEngine',
className: 'DisplayEngineService', className: 'DisplayEngineService',
create: (dtp) => { return new DisplayEngineService(dtp); }, create: (dtp) => { return new DisplayEngineService(dtp); },

@ -171,7 +171,7 @@ class EmailService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'email', logId: 'svc:email',
index: 'email', index: 'email',
className: 'EmailService', className: 'EmailService',
create: (dtp) => { return new EmailService(dtp); }, create: (dtp) => { return new EmailService(dtp); },

@ -296,7 +296,7 @@ class FeedService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'feed', logId: 'svc:feed',
index: 'feed', index: 'feed',
className: 'FeedService', className: 'FeedService',
create: (dtp) => { return new FeedService(dtp); }, create: (dtp) => { return new FeedService(dtp); },

@ -330,7 +330,7 @@ class HiveService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'hive', logId: 'svc:hive',
index: 'hive', index: 'hive',
className: 'HiveService', className: 'HiveService',
create: (dtp) => { return new HiveService(dtp); }, create: (dtp) => { return new HiveService(dtp); },

@ -97,7 +97,7 @@ class HostCacheService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'host-cache', logId: 'svc:host-cache',
index: 'hostCache', index: 'hostCache',
className: 'HostCacheService', className: 'HostCacheService',
create: (dtp) => { return new HostCacheService(dtp); }, create: (dtp) => { return new HostCacheService(dtp); },

@ -371,7 +371,7 @@ class ImageService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'image', logId: 'svc:image',
index: 'image', index: 'image',
className: 'ImageService', className: 'ImageService',
create: (dtp) => { return new ImageService(dtp); }, create: (dtp) => { return new ImageService(dtp); },

@ -62,7 +62,7 @@ class JobQueueService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'job-queue', logId: 'svc:job-queue',
index: 'jobQueue', index: 'jobQueue',
className: 'JobQueueService', className: 'JobQueueService',
create: (dtp) => { return new JobQueueService(dtp); }, create: (dtp) => { return new JobQueueService(dtp); },

@ -69,7 +69,7 @@ class LimiterService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'limiter', logId: 'svc:limiter',
index: 'limiter', index: 'limiter',
className: 'LimiterService', className: 'LimiterService',
create: (dtp) => { return new LimiterService(dtp); }, create: (dtp) => { return new LimiterService(dtp); },

@ -38,7 +38,7 @@ class SystemLogService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'log', logId: 'svc:log',
index: 'log', index: 'log',
className: 'SystemLogService', className: 'SystemLogService',
create: (dtp) => { return new SystemLogService(dtp); }, create: (dtp) => { return new SystemLogService(dtp); },

@ -68,7 +68,7 @@ class LoganService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'logan', logId: 'svc:logan',
index: 'logan', index: 'logan',
className: 'LoganService', className: 'LoganService',
create: (dtp) => { return new LoganService(dtp); }, create: (dtp) => { return new LoganService(dtp); },

@ -32,7 +32,7 @@ class MarkdownService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'markdown', logId: 'svc:markdown',
index: 'markdown', index: 'markdown',
className: 'MarkdownService', className: 'MarkdownService',
create: (dtp) => { return new MarkdownService(dtp); }, create: (dtp) => { return new MarkdownService(dtp); },

@ -94,7 +94,7 @@ class MediaService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'media', logId: 'svc:media',
index: 'media', index: 'media',
className: 'MediaService', className: 'MediaService',
create: (dtp) => { return new MediaService(dtp); }, create: (dtp) => { return new MediaService(dtp); },

@ -97,7 +97,7 @@ class MinioService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'minio', logId: 'svc:minio',
index: 'minio', index: 'minio',
className: 'MinioService', className: 'MinioService',
create: (dtp) => { return new MinioService(dtp); }, create: (dtp) => { return new MinioService(dtp); },

@ -117,7 +117,7 @@ class NewsletterService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'newsletter', logId: 'svc:newsletter',
index: 'newsletter', index: 'newsletter',
className: 'NewsletterService', className: 'NewsletterService',
create: (dtp) => { return new NewsletterService(dtp); }, create: (dtp) => { return new NewsletterService(dtp); },

@ -474,7 +474,7 @@ class OAuth2Service extends SiteService {
} }
module.exports = { module.exports = {
logId: 'oauth2', logId: 'svc:oauth2',
index: 'oauth2', index: 'oauth2',
className: 'OAuth2Service', className: 'OAuth2Service',
create: (dtp) => { return new OAuth2Service(dtp); }, create: (dtp) => { return new OAuth2Service(dtp); },

@ -238,7 +238,7 @@ class OtpAuthService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'otp-auth', logId: 'svc:otp-auth',
index: 'otpAuth', index: 'otpAuth',
className: 'OtpAuthService', className: 'OtpAuthService',
create: (dtp) => { return new OtpAuthService(dtp); }, create: (dtp) => { return new OtpAuthService(dtp); },

@ -55,7 +55,7 @@ class PhoneService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'phone', logId: 'svc:phone',
index: 'phone', index: 'phone',
className: 'PhoneService', className: 'PhoneService',
create: (dtp) => { return new PhoneService(dtp); }, create: (dtp) => { return new PhoneService(dtp); },

@ -118,7 +118,7 @@ class ResourceService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'resource', logId: 'svc:resource',
index: 'resource', index: 'resource',
className: 'ResourceService', className: 'ResourceService',
create: (dtp) => { return new ResourceService(dtp); }, create: (dtp) => { return new ResourceService(dtp); },

@ -110,7 +110,7 @@ class SessionService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'session', logId: 'svc:session',
index: 'session', index: 'session',
className: 'SessionService', className: 'SessionService',
create: (dtp) => { return new SessionService(dtp); }, create: (dtp) => { return new SessionService(dtp); },

@ -47,7 +47,7 @@ class SmsService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'sms', logId: 'svc:sms',
index: 'sms', index: 'sms',
className: 'SmsService', className: 'SmsService',
create: (dtp) => { return new SmsService(dtp); }, create: (dtp) => { return new SmsService(dtp); },

@ -11,7 +11,7 @@ const mongoose = require('mongoose');
const Sticker = mongoose.model('Sticker'); const Sticker = mongoose.model('Sticker');
const User = mongoose.model('User'); const User = mongoose.model('User');
const { SiteService, SiteError, SiteAsync } = require('../../lib/site-lib'); const { SiteService, SiteError } = require('../../lib/site-lib');
const MAX_CHANNEL_STICKERS = 50; const MAX_CHANNEL_STICKERS = 50;
const MAX_USER_STICKERS = 10; const MAX_USER_STICKERS = 10;
@ -144,18 +144,42 @@ class StickerService extends SiteService {
await Sticker.updateOne({ _id: sticker._id }, { $set: { status } }); await Sticker.updateOne({ _id: sticker._id }, { $set: { status } });
} }
/**
* Fetch and populate an Array of Sticker documents matching the input slugs.
*
* The returned Array may be smaller than the input Array (or empty) if some
* or none of the stickers have been deleted or simply don't exist.
*
* @param {Array} slugs an Array of sticker slugs
* @returns Array of populated matching Sticker documents
*/
async resolveStickerSlugs (slugs) { async resolveStickerSlugs (slugs) {
const stickers = [ ]; const stickers = await Sticker
await SiteAsync.each(slugs, async (slug) => { .find({ slug: { $in: slugs } })
const sticker = await Sticker.findOne({ slug: slug }); .populate(this.populateSticker)
if (!sticker) { .lean();
return;
}
stickers.push(sticker);
});
return stickers; return stickers;
} }
/**
* Convert an array of sticker slugs to an array of sticker _id values. This
* is used during chat message ingest where the whole populated sticker just
* isn't needed and is all discarded.
*
* The returned Array may be smaller than the input Array (or empty) if some
* or none of the stickers have been deleted or simply don't exist.
*
* @param {Array} slugs an Array of sticker slugs
* @returns an Array of sticker IDs
*/
async resolveStickerSlugIds (slugs) {
const stickers = await Sticker
.find({ slug: { $in: slugs } })
.select('_id')
.lean();
return stickers.map((sticker) => sticker._id);
}
async removeSticker (sticker) { async removeSticker (sticker) {
const stickerId = sticker._id; const stickerId = sticker._id;
this.log.info('creating sticker delete job', { stickerId }); this.log.info('creating sticker delete job', { stickerId });
@ -208,7 +232,7 @@ class StickerService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'sticker', logId: 'svc:sticker',
index: 'sticker', index: 'sticker',
className: 'StickerService', className: 'StickerService',
create: (dtp) => { return new StickerService(dtp); }, create: (dtp) => { return new StickerService(dtp); },

@ -135,7 +135,7 @@ class UserNotificationService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'user-notification', logId: 'svc:user-notification',
index: 'userNotification', index: 'userNotification',
className: 'UserNotificationService', className: 'UserNotificationService',
create: (dtp) => { return new UserNotificationService(dtp); }, create: (dtp) => { return new UserNotificationService(dtp); },

@ -1079,7 +1079,7 @@ class UserService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'user', logId: 'svc:user',
index: 'user', index: 'user',
className: 'UserService', className: 'UserService',
create: (dtp) => { return new UserService(dtp); }, create: (dtp) => { return new UserService(dtp); },

@ -17,7 +17,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { logId: 'chat-worker', index: 'chatWorker', className: 'ChatWorker' }, component: { logId: 'wrk:chat', index: 'chatWorker', className: 'ChatWorker' },
}; };
module.config.site = require(path.join(module.rootPath, 'config', 'site')); module.config.site = require(path.join(module.rootPath, 'config', 'site'));

@ -16,7 +16,7 @@ class ChatRoomClearJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'chat-room-clear-job', logId: 'wrk:chat:room-clear:job',
index: 'charRoomClearJob', index: 'charRoomClearJob',
className: 'ChatRoomClearJob', className: 'ChatRoomClearJob',
}; };

@ -15,18 +15,12 @@ const EmojiReaction = mongoose.model('EmojiReaction');
const { SiteWorkerProcess } = require(path.join(__dirname, '..', '..', '..', '..', 'lib', 'site-lib')); const { SiteWorkerProcess } = require(path.join(__dirname, '..', '..', '..', '..', 'lib', 'site-lib'));
/**
* DTP Core Chat sticker processor can receive requests to ingest and delete
* stickers to be executed as background jobs in a queue. This processor
* attaches to the `media` queue and registers processors for `sticker-ingest`
* and `sticker-delete`.
*/
class ChatRoomDeleteJob extends SiteWorkerProcess { class ChatRoomDeleteJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'chat-room-processor', logId: 'wrk:chat:room-delete:job',
index: 'chatRoomProcessor', index: 'chatRoomDeleteJob',
className: 'ChatRoomDeleteJob', className: 'ChatRoomDeleteJob',
}; };
} }

@ -34,7 +34,7 @@ module.config = {
root: module.rootPath, root: module.rootPath,
site: require(path.join(module.rootPath, 'config', 'site')), site: require(path.join(module.rootPath, 'config', 'site')),
http: require(path.join(module.rootPath, 'config', 'http')), http: require(path.join(module.rootPath, 'config', 'http')),
component: { logId: 'host-services-worker', index: 'hostServicesWorker', className: 'HostServicesWorker' }, component: { logId: 'wrk:host-services', index: 'hostServicesWorker', className: 'HostServicesWorker' },
}; };
module.log = new SiteLog(module, module.config.component); module.log = new SiteLog(module, module.config.component);

@ -16,7 +16,7 @@ module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
site: require(path.join(module.rootPath, 'config', 'site')), site: require(path.join(module.rootPath, 'config', 'site')),
component: { logId: 'logan-site-worker', index: 'LoganSiteWorker', className: 'LoganSiteWorker' }, component: { logId: 'wrk:logan-site', index: 'loganSite', className: 'LoganSiteWorker' },
}; };
class LoganSiteWorker extends SiteWorker { class LoganSiteWorker extends SiteWorker {

@ -15,7 +15,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: path.resolve(__dirname, '..', '..'), root: path.resolve(__dirname, '..', '..'),
component: { logId: 'media-worker', index: 'mediaWorker', className: 'MediaWorker' }, component: { logId: 'wrk:media', index: 'media', className: 'MediaWorker' },
}; };
/** /**

@ -15,7 +15,7 @@ class AttachmentDeleteJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'attachment-delete-job', logId: 'wrk:chat:attachment-delete:job',
index: 'attachmentDeleteJob', index: 'attachmentDeleteJob',
className: 'AttachmentDeleteJob', className: 'AttachmentDeleteJob',
}; };

@ -19,7 +19,7 @@ class AttachmentIngestJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'attachment-ingest-job', logId: 'wrk:chat:attachment-ingest:job',
index: 'attachmentIngestJob', index: 'attachmentIngestJob',
className: 'AttachmentIngestJob', className: 'AttachmentIngestJob',
}; };

@ -15,7 +15,7 @@ class StickerDeleteJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'sticker-delete-job', logId: 'wrk:chat:sticker-delete:job',
index: 'stickerDeleteJob', index: 'stickerDeleteJob',
className: 'StickerDeleteJob', className: 'StickerDeleteJob',
}; };

@ -20,7 +20,7 @@ class StickerIngestJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'sticker-ingest-job', logId: 'wrk:chat:sticker-ingest:job',
index: 'stickerIngestJob', index: 'stickerIngestJob',
className: 'StickerIngestJob', className: 'StickerIngestJob',
}; };

@ -17,7 +17,7 @@ class WebpageScreenshotJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'webpage-screenshot-job', logId: 'wrk:chat:webpage-screenshot:job',
index: 'webpageScreenshotJob', index: 'webpageScreenshotJob',
className: 'WebpageScreenshotJob', className: 'WebpageScreenshotJob',
}; };

@ -12,7 +12,7 @@ const { SiteWorker, SiteLog } = require(path.join(__dirname, '..', '..', 'lib',
module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json')); module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
root: path.resolve(__dirname, '..', '..'), root: path.resolve(__dirname, '..', '..'),
component: { logId: 'newsletter-worker', index: 'newsletterWorker', className: 'NewsletterWorker' }, component: { logId: 'wrk:newsletter', index: 'newsletter', className: 'NewsletterWorker' },
}; };
class NewsletterWorker extends SiteWorker { class NewsletterWorker extends SiteWorker {

@ -12,7 +12,7 @@ class NewsletterEmailSendJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'newsletter-email-send-job', logId: 'wrk:newsletter:email-send:job',
index: 'newsletterEmailSendJob', index: 'newsletterEmailSendJob',
className: 'NewsletterEmailSendJob', className: 'NewsletterEmailSendJob',
}; };

@ -17,7 +17,7 @@ class NewsletterTransmitJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'newsletter-transmit-job', logId: 'wrk:newsletter:transmit:job',
index: 'newsletterTransmitJob', index: 'newsletterTransmitJob',
className: 'NewsletterTransmitJob', className: 'NewsletterTransmitJob',
}; };

@ -9,6 +9,8 @@ const path = require('path');
require('dotenv').config({ path: path.resolve(__dirname, '..', '..', '.env') }); require('dotenv').config({ path: path.resolve(__dirname, '..', '..', '.env') });
const mongoose = require('mongoose'); const mongoose = require('mongoose');
const moment = require('moment');
const { read: feedReader } = require('feed-reader'); const { read: feedReader } = require('feed-reader');
const { const {
@ -23,7 +25,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { logId: 'newsroom', index: 'newsroom', className: 'NewsroomWorker' }, component: { logId: 'wrk:newsroom', index: 'newsroom', className: 'NewsroomWorker' },
}; };
module.config.site = require(path.join(module.rootPath, 'config', 'site')); module.config.site = require(path.join(module.rootPath, 'config', 'site'));
@ -53,14 +55,30 @@ class NewsroomWorker extends SiteWorker {
const NOW = new Date(); const NOW = new Date();
const { feed: feedService } = this.dtp.services; const { feed: feedService } = this.dtp.services;
try { try {
this.log.info('loading latest feed data', { feedId: feed._id, title: feed.title }); this.log.info('loading latest feed data', {
feed: {
_id: feed._id,
title: feed.title,
published: {
date: feed.published,
moment: moment(feed.published).fromNow(),
},
},
});
await feedService.updateFavicon(feed); await feedService.updateFavicon(feed);
const response = await feedReader(feed.url); const response = await feedReader(feed.url);
await SiteAsync.each(response.entries, async (entry) => { await SiteAsync.each(response.entries, async (entry) => {
await Feed.updateOne({ _id: feed._id }, { $set: { published: feed.published || NOW }}); await Feed.updateOne({ _id: feed._id }, { $set: { published: feed.published || NOW }});
await feedService.createEntry(feed, entry); await feedService.createEntry(feed, entry);
}, 4); }, 4);
this.log.info('feed updated', { entries: response.entries.length });
this.log.info('feed updated', {
feed: {
_id: feed._id,
title: feed.title,
},
entryCount: response.entries.length,
});
} catch (error) { } catch (error) {
this.log.error('failed to update feed', { feedId: feed._id, title: feed.title, error }); this.log.error('failed to update feed', { feedId: feed._id, title: feed.title, error });
} }

@ -17,7 +17,7 @@ class UpdateFeedsCron extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'update-feeds-cron', logId: 'wrk:newsroom:update-feeds:cron',
index: 'updateFeeds', index: 'updateFeeds',
className: 'UpdateFeedsCron', className: 'UpdateFeedsCron',
}; };

@ -12,7 +12,7 @@ class UpdateFeedJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'newsroom-update-feed-job', logId: 'wrk:newsroom:update-feed:job',
index: 'newsroomUpdateFeedJob', index: 'newsroomUpdateFeedJob',
className: 'UpdateFeedJob', className: 'UpdateFeedJob',
}; };

@ -19,7 +19,7 @@ module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,
root: module.rootPath, root: module.rootPath,
component: { logId: 'reeeper', index: 'reeeper', className: 'ReeeperWorker' }, component: { logId: 'wrk:reeeper', index: 'reeeper', className: 'ReeeperWorker' },
}; };
module.config.site = require(path.join(module.rootPath, 'config', 'site')); module.config.site = require(path.join(module.rootPath, 'config', 'site'));

@ -29,7 +29,7 @@ class ExpiredAnnouncementsCron extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'expired-announcements-cron', logId: 'wrk:chat:expired-announcements:cron',
index: 'expiredAnnouncementsCron', index: 'expiredAnnouncementsCron',
className: 'ExpiredAnnouncementsCron', className: 'ExpiredAnnouncementsCron',
}; };

@ -28,7 +28,7 @@ class CrashedHostsCron extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'crashed-hosts-cron', logId: 'wrk:reeeper:crashed-hosts:cron',
index: 'crashedHostsCron', index: 'crashedHostsCron',
className: 'CrashedHostsCron', className: 'CrashedHostsCron',
}; };

@ -30,7 +30,7 @@ class ArchiveUserLocalJob extends SiteWorkerProcess {
static get COMPONENT ( ) { static get COMPONENT ( ) {
return { return {
logId: 'archive-user-local-job', logId: 'wrk:reeeper:archive-user-local:job',
index: 'archiveUserLocalJob', index: 'archiveUserLocalJob',
className: 'ArchiveUserLocalJob', className: 'ArchiveUserLocalJob',
}; };

@ -4,7 +4,7 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Site Admin', slug: 'site-admin' }; const DTP_COMPONENT = { logId: 'site-admin-index', index: 'siteAdminIndex', className: 'SiteAdminIndex' };
const dtp = window.dtp = window.dtp || { }; const dtp = window.dtp = window.dtp || { };
dtp.admin = dtp.admin || { }; dtp.admin = dtp.admin || { };
@ -13,11 +13,9 @@ import DtpSiteAdminApp from './site-admin-app.js';
import DtpWebLog from 'dtp/dtp-log.js'; import DtpWebLog from 'dtp/dtp-log.js';
window.addEventListener('load', async ( ) => { window.addEventListener('load', async ( ) => {
// application console log
dtp.admin.log = new DtpWebLog(DTP_COMPONENT); dtp.admin.log = new DtpWebLog(DTP_COMPONENT);
dtp.adminApp = new DtpSiteAdminApp(dtp.user); dtp.adminApp = new DtpSiteAdminApp(dtp.user);
dtp.admin.log.debug('load', 'dispatching load event'); dtp.admin.log.debug('load', 'dispatching admin load event');
window.dispatchEvent(new Event('dtp-load-admin')); window.dispatchEvent(new Event('dtp-load-admin'));
}); });

@ -4,13 +4,12 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Site', slug: 'site' }; const DTP_COMPONENT = { logId: 'site-index', index: 'siteIndex', className: 'SiteIndex' };
const dtp = window. dtp = window.dtp || { }; const dtp = window. dtp = window.dtp || { };
import DtpSiteApp from './site-app.js'; import DtpSiteApp from './site-app.js';
import DtpWebLog from 'dtp/dtp-log.js'; import DtpWebLog from 'dtp/dtp-log.js';
// import UIkit from 'uikit';
/** /**
* Monkeypatch to count characters instead of .length's code point count. * Monkeypatch to count characters instead of .length's code point count.

@ -4,7 +4,6 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Site Admin', slug: 'site-admin-app' };
const dtp = window.dtp = window.dtp || { }; const dtp = window.dtp = window.dtp || { };
const GRID_COLOR = '#a0a0a0'; const GRID_COLOR = '#a0a0a0';
@ -25,10 +24,12 @@ import numeral from 'numeral';
import UIkit from 'uikit'; import UIkit from 'uikit';
// import UIkit from 'uikit'; // import UIkit from 'uikit';
export default class DtpSiteAdminHostStatsApp extends DtpApp { export default class DtpSiteAdminApp extends DtpApp {
static get COMPONENT ( ) { return { logId: 'site-admin-app', index: 'siteAdminApp', className: 'SiteAdminApp' }; }
constructor (user) { constructor (user) {
super(DTP_COMPONENT, user); super(DtpSiteAdminApp.COMPONENT, user);
this.log.debug('constructor', 'app instance created'); this.log.debug('constructor', 'app instance created');
} }
@ -553,4 +554,4 @@ export default class DtpSiteAdminHostStatsApp extends DtpApp {
} }
} }
dtp.DtpSiteAdminHostStatsApp = DtpSiteAdminHostStatsApp; dtp.DtpSiteAdminApp = DtpSiteAdminApp;

@ -4,7 +4,7 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Site App', slug: 'site-app' }; const DTP_COMPONENT = { logId: 'site-app', index: 'siteApp', className: 'DtpSiteApp' };
const dtp = window.dtp = window.dtp || { }; const dtp = window.dtp = window.dtp || { };
import DtpApp from 'dtp/dtp-app.js'; import DtpApp from 'dtp/dtp-app.js';

@ -4,7 +4,6 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Site Chat', slug: 'site-chat' };
const dtp = window.dtp = window.dtp || { }; // jshint ignore:line const dtp = window.dtp = window.dtp || { }; // jshint ignore:line
const EMOJI_EXPLOSION_DURATION = 8000; const EMOJI_EXPLOSION_DURATION = 8000;
@ -17,9 +16,11 @@ import * as picmo from 'picmo';
export default class SiteChat { export default class SiteChat {
static get COMPONENT ( ) { return { logId: 'site-chat', index: 'siteChat', className: 'DtpSiteChat' }; }
constructor (app) { constructor (app) {
this.app = app; this.app = app;
this.log = new DtpLog(DTP_COMPONENT); this.log = new DtpLog(SiteChat.COMPONENT);
this.ui = { this.ui = {
menu: document.querySelector('#chat-room-menu'), menu: document.querySelector('#chat-room-menu'),

@ -14,7 +14,7 @@ export default class SiteComments {
constructor (app) { constructor (app) {
this.app = app; this.app = app;
this.log = new DtpLog({ name: 'Site Comments', slug: 'comments' }); this.log = new DtpLog({ logId: 'site-comments', index: 'siteComments', className: 'SiteComments' });
this.createEmojiPickers(); this.createEmojiPickers();
} }

@ -4,13 +4,14 @@
'use strict'; 'use strict';
const DTP_COMPONENT = { name: 'Site Reactions', slug: 'site-reactions' };
const dtp = window.dtp = window.dtp || { }; // jshint ignore:line const dtp = window.dtp = window.dtp || { }; // jshint ignore:line
import DtpLog from 'dtp/dtp-log'; import DtpLog from 'dtp/dtp-log';
class Reaction { class Reaction {
static get COMPONENT ( ) { return { logId: 'reaction', index: 'reaction', className: 'Reaction' }; }
constructor (container, reaction) { constructor (container, reaction) {
this.container = container; this.container = container;
this.reaction = reaction; this.reaction = reaction;
@ -96,8 +97,10 @@ class Reaction {
export default class SiteReactions { export default class SiteReactions {
static get COMPONENT ( ) { return { logId: 'site-reactions', index: 'siteReactions', className: 'SiteReactions' }; }
constructor ( ) { constructor ( ) {
this.log = new DtpLog(DTP_COMPONENT); this.log = new DtpLog(SiteReactions.COMPONENT);
this.container = document.querySelector('#chat-reactions'); this.container = document.querySelector('#chat-reactions');
this.reactions = [ ]; this.reactions = [ ];

@ -90,8 +90,15 @@ class HomeController extends SiteController {
} }
module.exports = { module.exports = {
slug: 'home', logId: 'home',
name: 'home', index: 'home',
isHome: true, className: 'HomeController',
create: async (dtp) => { return new HomeController(dtp); }, create: async (dtp) => { return new HomeController(dtp); },
/*
* This attribute must exist and be set to true on your Home controller to
* ensure that it is started last. This matters for ensuring that your root
* route is registered to ExpressJS last.
*/
isHome: true,
}; };

@ -62,7 +62,8 @@ class SampleService extends SiteService {
} }
module.exports = { module.exports = {
logId: 'svc:sample',
name: 'sample', name: 'sample',
slug: 'sample', className: 'SampleService',
create: (dtp) => { return new SampleService(dtp); }, create: (dtp) => { return new SampleService(dtp); },
}; };

@ -33,7 +33,7 @@ class SampleWorker extends SiteWorker {
try { try {
module.rootPath = path.resolve(__dirname, '..', '..'); module.rootPath = path.resolve(__dirname, '..', '..');
module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json')); module.pkg = require(path.resolve(__dirname, '..', '..', 'package.json'));
module.component = { name: 'theWorkerName', slug: 'the-worker-name' }; module.component = { logId: 'wrk:sample', index: 'sampleWorker', className: 'SampleWorker' };
module.config = { module.config = {
environment: process.env.NODE_ENV, environment: process.env.NODE_ENV,

@ -33,8 +33,9 @@ class MyService extends SiteService {
} }
module.exports = { module.exports = {
slug: 'my-service', logId: 'my-service',
name: 'myService', index: 'myService',
className: 'MyService',
create: (dtp) => { return new MyService(dtp); }, create: (dtp) => { return new MyService(dtp); },
}; };
``` ```

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save