mirror of
https://github.com/eliasrenman/gardentron.git
synced 2026-03-16 20:46:07 +01:00
chore: setup featherjs project
This commit is contained in:
38
server/src/channels.ts
Normal file
38
server/src/channels.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
// For more information about this file see https://dove.feathersjs.com/guides/cli/channels.html
|
||||
import type { RealTimeConnection, Params } from '@feathersjs/feathers'
|
||||
import type { AuthenticationResult } from '@feathersjs/authentication'
|
||||
import '@feathersjs/transport-commons'
|
||||
import type { Application, HookContext } from './declarations'
|
||||
import { logger } from './logger'
|
||||
|
||||
export const channels = (app: Application) => {
|
||||
logger.warn(
|
||||
'Publishing all events to all authenticated users. See `channels.ts` and https://dove.feathersjs.com/api/channels.html for more information.'
|
||||
)
|
||||
|
||||
app.on('connection', (connection: RealTimeConnection) => {
|
||||
// On a new real-time connection, add it to the anonymous channel
|
||||
app.channel('anonymous').join(connection)
|
||||
})
|
||||
|
||||
app.on('login', (authResult: AuthenticationResult, { connection }: Params) => {
|
||||
// connection can be undefined if there is no
|
||||
// real-time connection, e.g. when logging in via REST
|
||||
if (connection) {
|
||||
// The connection is no longer anonymous, remove it
|
||||
app.channel('anonymous').leave(connection)
|
||||
|
||||
// Add it to the authenticated user channel
|
||||
app.channel('authenticated').join(connection)
|
||||
}
|
||||
})
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
app.publish((data: any, context: HookContext) => {
|
||||
// Here you can add event publishers to channels set up in `channels.js`
|
||||
// To publish only for a specific event use `app.publish(eventname, () => {})`
|
||||
|
||||
// e.g. to publish all service events to all authenticated users use
|
||||
return app.channel('authenticated')
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user