Skip to content

Commit 7d16620

Browse files
committed
feat: remove redundant dev-dependencies & rename state middleware
1 parent c98bfbc commit 7d16620

File tree

4 files changed

+24
-16
lines changed

4 files changed

+24
-16
lines changed

package.json

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,6 @@
6464
"@types/node": "^10.5.1",
6565
"conventional-changelog-cli": "^2.0.0",
6666
"conventional-github-releaser": "^3.1.0",
67-
"eslint": "^4.19.0",
68-
"eslint-config-standard": "^11.0.0",
69-
"eslint-plugin-babel": "^5.1.0",
70-
"eslint-plugin-import": "^2.10.0",
71-
"eslint-plugin-node": "^6.0.1",
72-
"eslint-plugin-promise": "^3.7.0",
73-
"eslint-plugin-standard": "^3.0.1",
7467
"husky": "^0.14.3",
7568
"jest": "^23.2.0",
7669
"prettier": "^1.13.7",

src/alice.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { selectCommand, selectSessionId, isFunction, delay, rejectsIn } from './
1111

1212
import { applyMiddlewares } from './middlewares'
1313

14-
import aliceStateMiddleware from './middlewares/aliceStateMiddleware'
14+
import stateMiddleware from './middlewares/stateMiddleware'
1515

1616
import { IConfig, IAlice } from './types/alice'
1717
import { ICommand } from './types/command'
@@ -52,7 +52,7 @@ export default class Alice implements IAlice {
5252
this.anyCallback = null
5353
this.welcomeCallback = null
5454
this.commands = new Commands(config.fuseOptions || null)
55-
this.middlewares = [aliceStateMiddleware()]
55+
this.middlewares = [stateMiddleware()]
5656
this.scenes = []
5757
this.currentScene = null
5858
this.sessions = new Sessions()

src/middlewares/stateMiddleware.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
export default function stateMiddleware() {
2+
const store = new Map()
3+
4+
return async ctx => {
5+
const key = ctx.session.sessionId
6+
let { state } = store.get(key) || { state: {} }
7+
Object.defineProperty(ctx, 'state', {
8+
get() {
9+
return state
10+
},
11+
set(value) {
12+
state = Object.assign({}, value)
13+
},
14+
})
15+
store.set(key, {
16+
state,
17+
})
18+
19+
return ctx
20+
}
21+
}

tslint.json

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,13 @@
33
"extends": ["tslint:recommended"],
44
"jsRules": {},
55
"rules": {
6-
// We handle this manually
76
"interface-name": [true, "always-prefix"],
8-
9-
// There are some dependencies we have (e.g. shallowequal) that need to be var-required because
10-
// the available typings aren't great
117
"no-var-requires": false,
12-
13-
// These rules are super annoying in this project
148
"object-literal-sort-keys": false,
159
"ordered-imports": false,
1610
"semicolon": [true, "never"],
1711
"quotemark": [true, "single"],
18-
"indent": [true, "spaces", 2],
12+
"indent": [true, "spaces", 2]
1913
},
2014
"rulesDirectory": []
2115
}

0 commit comments

Comments
 (0)