Skip to content

Commit

Permalink
Merge pull request #799 from clavin/convert-typescript
Browse files Browse the repository at this point in the history
Convert `@slack/events-api` and `@slack/interactive-messages` to TypeScript
  • Loading branch information
clavin committed Jul 23, 2019
2 parents c3f910b + b806e32 commit d903789
Show file tree
Hide file tree
Showing 48 changed files with 1,909 additions and 1,438 deletions.
6 changes: 0 additions & 6 deletions packages/events-api/.babelrc

This file was deleted.

4 changes: 0 additions & 4 deletions packages/events-api/.eslintignore

This file was deleted.

3 changes: 3 additions & 0 deletions packages/events-api/.mocharc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"require": ["ts-node/register", "source-map-support/register"]
}
14 changes: 14 additions & 0 deletions packages/events-api/.nycrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"include": [
"src/**/*.ts"
],
"exclude": [
"**/*.spec.js"
],
"reporter": ["lcov"],
"extension": [
".ts"
],
"all": false,
"cache": true
}
3 changes: 3 additions & 0 deletions packages/events-api/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"typescript.tsdk": "./node_modules/typescript/lib"
}
34 changes: 18 additions & 16 deletions packages/events-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,40 +36,42 @@
},
"scripts": {
"prepare": "npm run build",
"build": "babel src -d dist --source-maps both",
"lint": "eslint src test",
"test": "npm run build && nyc --reporter=html mocha test/**/*.js",
"coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov -F eventsapi"
"build": "npm run build:clean && tsc",
"build:clean": "shx rm -rf ./dist ./coverage ./.nyc_output",
"lint": "tslint --project .",
"test": "nyc mocha --config .mocharc.json src/*.spec.js test/integration/*.js",
"coverage": "codecov -F eventsapi --root=$PWD"
},
"dependencies": {
"@types/debug": "^4.1.4",
"@types/express": "^4.17.0",
"@types/lodash.isstring": "^4.0.6",
"@types/node": ">=4.2.0",
"@types/yargs": "^13.0.0",
"debug": "^2.6.1",
"lodash.isstring": "^4.0.1",
"raw-body": "^2.3.3",
"tsscmp": "^1.0.6",
"yargs": "^6.6.0"
},
"devDependencies": {
"babel-cli": "^6.18.0",
"babel-eslint": "^7.1.1",
"babel-preset-es2015": "^6.18.0",
"babel-preset-es2016": "^6.16.0",
"chai": "^4.1.2",
"chai": "^4.2.0",
"codecov": "^3.0.4",
"eslint": "^3.12.2",
"eslint-config-airbnb": "^13.0.0",
"eslint-config-airbnb-base": "^11.0.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jsx-a11y": "^2.2.3",
"eslint-plugin-react": "^6.8.0",
"express": "^4.14.0",
"get-random-port": "0.0.1",
"lodash.isfunction": "^3.0.8",
"mocha": "^5.2.0",
"mocha": "^6.1.4",
"nop": "^1.0.0",
"nyc": "^14.1.1",
"proxyquire": "^1.7.10",
"shx": "^0.3.2",
"sinon": "^4.5.0",
"source-map-support": "^0.5.12",
"superagent": "^3.3.1",
"ts-node": "^8.2.0",
"tslint": "^5.17.0",
"tslint-config-airbnb": "^5.11.1",
"typescript": "^3.5.1",
"uncaughtException": "^1.0.0"
},
"optionalDependencies": {
Expand Down
7 changes: 0 additions & 7 deletions packages/events-api/src/.eslintrc

This file was deleted.

81 changes: 0 additions & 81 deletions packages/events-api/src/adapter.js

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@
var http = require('http');
var assert = require('chai').assert;
var sinon = require('sinon');
var noop = require('nop');
var getRandomPort = require('get-random-port');
var EventEmitter = require('events');
var systemUnderTest = require('../../dist/adapter');
var createStreamRequest = require('../helpers').createStreamRequest;
var SlackEventAdapter = systemUnderTest.default;
require('mocha');
const EventEmitter = require('events');
const http = require('http');
const { assert } = require('chai');
const sinon = require('sinon');
const noop = require('nop');
const getRandomPort = require('get-random-port');

const { createStreamRequest } = require('../test/helpers');
const { SlackEventAdapter } = require('./adapter');

// fixtures and test helpers
var workingSigningSecret = 'SIGNING_SECRET';
const workingSigningSecret = 'SIGNING_SECRET';

describe('SlackEventAdapter', function () {
describe('constructor', function () {
it('should be an EventEmitter subclass', function () {
var adapter = new SlackEventAdapter(workingSigningSecret);
const adapter = new SlackEventAdapter(workingSigningSecret);
assert(adapter instanceof EventEmitter);
});
it('should fail without a signing secret', function () {
assert.throws(function () {
var adapter = new SlackEventAdapter(); // eslint-disable-line no-unused-vars
const adapter = new SlackEventAdapter();
}, TypeError);
});
it('should store the signing secret', function () {
var adapter = new SlackEventAdapter(workingSigningSecret);
const adapter = new SlackEventAdapter(workingSigningSecret);
assert.equal(adapter.signingSecret, workingSigningSecret);
});
});
Expand All @@ -42,7 +43,7 @@ describe('SlackEventAdapter', function () {

describe('#start()', function () {
beforeEach(function (done) {
var self = this;
const self = this;
self.adapter = new SlackEventAdapter(workingSigningSecret);
getRandomPort(function (error, port) {
if (error) return done(error);
Expand All @@ -54,7 +55,7 @@ describe('SlackEventAdapter', function () {
return this.adapter.stop().catch();
});
it('should return a Promise for a started http.Server', function () {
var self = this;
const self = this;
return this.adapter.start(self.portNumber).then(function (server) {
// only works in node >= 5.7.0
// assert(server.listening);
Expand All @@ -77,25 +78,25 @@ describe('SlackEventAdapter', function () {
});

it('should return a function', function () {
var middleware = this.adapter.expressMiddleware();
const middleware = this.adapter.expressMiddleware();
assert.isFunction(middleware);
});
it('should emit on the adapter', function (done) {
var middleware = this.adapter.expressMiddleware();
var emit = this.emit;
var ts = Math.floor(Date.now() / 1000);
var eventName = 'eventName';
var event = {
const middleware = this.adapter.expressMiddleware();
const emit = this.emit;
const ts = Math.floor(Date.now() / 1000);
const eventName = 'eventName';
const event = {
type: eventName,
key: 'value'
};
var rawReq = {
const rawReq = {
body: {
event: event
}
};
var req = createStreamRequest(workingSigningSecret, ts, JSON.stringify(rawReq.body));
var res = sinon.stub({
const req = createStreamRequest(workingSigningSecret, ts, JSON.stringify(rawReq.body));
const res = sinon.stub({
setHeader: noop,
end: noop
});
Expand All @@ -117,7 +118,7 @@ describe('SlackEventAdapter', function () {
this.adapter = new SlackEventAdapter(workingSigningSecret);
});
it('should return a function', function () {
var requestListener = this.adapter.requestListener();
const requestListener = this.adapter.requestListener();
assert.isFunction(requestListener);
});
});
Expand Down
Loading

0 comments on commit d903789

Please sign in to comment.