diff options
author | eug-vs <eug-vs@keemail.me> | 2020-06-09 14:16:15 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2020-06-09 14:16:15 +0300 |
commit | e9d0438f6c02664c652a593c686564361fa0de6b (patch) | |
tree | 5bc0a1e78cf72c6e1ae48f5ee3954511748c81b1 | |
parent | 24f0d8709fc5e90a92d9c3940e693f76cd653bf4 (diff) | |
download | which-api-e9d0438f6c02664c652a593c686564361fa0de6b.tar.gz |
refactor: structurize feathers app
-rw-r--r-- | app.ts | 26 | ||||
-rw-r--r-- | index.ts | 14 | ||||
-rw-r--r-- | services/index.ts | 8 | ||||
-rw-r--r-- | services/polls/polls.class.ts (renamed from services/PollService.ts) | 4 | ||||
-rw-r--r-- | services/polls/polls.service.ts | 7 | ||||
-rw-r--r-- | services/users/users.class.ts (renamed from services/UserService.ts) | 2 | ||||
-rw-r--r-- | services/users/users.service.ts | 7 |
7 files changed, 46 insertions, 22 deletions
@@ -1,10 +1,10 @@ import feathers from '@feathersjs/feathers'; -import '@feathersjs/transport-commons'; import express from '@feathersjs/express'; import socketio from '@feathersjs/socketio'; +import '@feathersjs/transport-commons'; + +import services from './services'; -import { PollService } from './PollService'; -import {UserService} from "./UserService"; const app = express(feathers()); @@ -14,24 +14,10 @@ app.use(express.static(__dirname)); app.configure(express.rest()); app.configure(socketio()); app.use(express.errorHandler()); +app.configure(services); -app.use('/polls', new PollService()); -app.use('/users', new UserService()); - -// Add any new real-time connection to the `everybody` channel -app.on('connection', connection => - app.channel('everybody').join(connection) -); -// Publish all events to the `everybody` channel -app.publish(data => app.channel('everybody')); - -app.listen(3030).on('listening', () => - console.log('Feathers server listening on localhost:3030') -); - -// For good measure let's create a message -// So our API doesn't look so empty +// Mock data app.service('polls').create({ contents: { left: { @@ -51,3 +37,5 @@ app.service('users').create({ avatarUrl: 'https://github.com/ilyayudovin.png' }); +export default app; + diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..35d1411 --- /dev/null +++ b/index.ts @@ -0,0 +1,14 @@ +import app from './app'; + +// Add any new real-time connection to the `everybody` channel +app.on('connection', connection => + app.channel('everybody').join(connection) +); +// Publish all events to the `everybody` channel +app.publish(data => app.channel('everybody')); + + +app.listen(3030).on('listening', () => + console.log('Feathers server listening on localhost:3030') +); + diff --git a/services/index.ts b/services/index.ts new file mode 100644 index 0000000..eeaf485 --- /dev/null +++ b/services/index.ts @@ -0,0 +1,8 @@ +import Users from './users/users.service'; +import Polls from './polls/polls.service'; + +export default (app: Application): void => { + app.configure(Users); + app.configure(Polls); +}; + diff --git a/services/PollService.ts b/services/polls/polls.class.ts index 2944af3..82ef155 100644 --- a/services/PollService.ts +++ b/services/polls/polls.class.ts @@ -8,7 +8,7 @@ interface User { avatarUrl: string; } -export interface Poll { +interface Poll { author: User; contents: { left: ImageData; @@ -22,7 +22,7 @@ const defaultUser: User = { }; -export class PollService { +export default class Polls { polls: Poll[] = []; async find () { diff --git a/services/polls/polls.service.ts b/services/polls/polls.service.ts new file mode 100644 index 0000000..a4bd816 --- /dev/null +++ b/services/polls/polls.service.ts @@ -0,0 +1,7 @@ +import { Application } from '@feathersjs/express'; +import Polls from './polls.class'; + +export default (app: Application): void => { + app.use('/polls', new Polls()); +}; + diff --git a/services/UserService.ts b/services/users/users.class.ts index 57a883c..db6b5a9 100644 --- a/services/UserService.ts +++ b/services/users/users.class.ts @@ -4,7 +4,7 @@ interface User { age?: number; } -export class UserService { +export default class Users { users: User[] = []; async find (){ diff --git a/services/users/users.service.ts b/services/users/users.service.ts new file mode 100644 index 0000000..bf608fe --- /dev/null +++ b/services/users/users.service.ts @@ -0,0 +1,7 @@ +import { Application } from '@feathersjs/express'; +import Users from './users.class'; + +export default (app: Application): void => { + app.use('/users', new Users()); +}; + |