diff --git a/package.json b/package.json index 0336725bda..6a9e7e26f0 100644 --- a/package.json +++ b/package.json @@ -64,14 +64,15 @@ "@types/webpack": "3.0.13", "@types/webpack-stream": "3.2.7", "@types/websocket": "0.0.34", + "awesome-typescript-loader": "^3.2.3", "chai": "4.1.2", "chai-http": "3.0.0", "css-loader": "0.28.7", "event-stream": "3.3.4", "gulp": "3.9.1", "gulp-cssnano": "2.1.2", - "gulp-imagemin": "3.4.0", "gulp-htmlmin": "3.0.0", + "gulp-imagemin": "3.4.0", "gulp-mocha": "4.3.1", "gulp-pug": "3.3.0", "gulp-rename": "1.2.2", diff --git a/src/api/bot/core.ts b/src/api/bot/core.ts index cf2bdef1dc..57330e67eb 100644 --- a/src/api/bot/core.ts +++ b/src/api/bot/core.ts @@ -3,7 +3,7 @@ import * as bcrypt from 'bcryptjs'; import User, { IUser } from '../models/user'; -import getPostSummary from '../../common/get-post-summary.js'; +import getPostSummary from '../../common/get-post-summary'; export default class BotCore extends EventEmitter { public user: IUser = null; @@ -109,7 +109,9 @@ export default class BotCore extends EventEmitter { public async getTl() { if (this.user == null) return 'まずサインインしてください。'; - const tl = await require('../endpoints/posts/timeline')({}, this.user); + const tl = await require('../endpoints/posts/timeline')({ + limit: 5 + }, this.user); const text = tl .map(post => getPostSummary(post)) diff --git a/src/common/get-post-summary.js b/src/common/get-post-summary.ts similarity index 94% rename from src/common/get-post-summary.js rename to src/common/get-post-summary.ts index f7a481a164..f628a32b41 100644 --- a/src/common/get-post-summary.js +++ b/src/common/get-post-summary.ts @@ -2,7 +2,7 @@ * 投稿を表す文字列を取得します。 * @param {*} post 投稿 */ -const summarize = post => { +const summarize = (post: any): string => { let summary = post.text ? post.text : ''; // メディアが添付されているとき diff --git a/src/web/app/desktop/script.js b/src/web/app/desktop/script.js index e3dc8b7d96..46a7fce700 100644 --- a/src/web/app/desktop/script.js +++ b/src/web/app/desktop/script.js @@ -11,7 +11,7 @@ import * as riot from 'riot'; import init from '../init'; import route from './router'; import fuckAdBlock from './scripts/fuck-ad-block'; -import getPostSummary from '../../../common/get-post-summary'; +import getPostSummary from '../../../common/get-post-summary.ts'; /** * init diff --git a/src/web/app/desktop/tags/notifications.tag b/src/web/app/desktop/tags/notifications.tag index 4747d1c0f4..1046358ce9 100644 --- a/src/web/app/desktop/tags/notifications.tag +++ b/src/web/app/desktop/tags/notifications.tag @@ -207,7 +207,7 @@ </style> <script> - import getPostSummary from '../../../../common/get-post-summary'; + import getPostSummary from '../../../../common/get-post-summary.ts'; this.getPostSummary = getPostSummary; this.mixin('i'); diff --git a/src/web/app/desktop/tags/pages/home.tag b/src/web/app/desktop/tags/pages/home.tag index a56c546059..e8ba4023de 100644 --- a/src/web/app/desktop/tags/pages/home.tag +++ b/src/web/app/desktop/tags/pages/home.tag @@ -8,7 +8,7 @@ </style> <script> import Progress from '../../../common/scripts/loading'; - import getPostSummary from '../../../../../common/get-post-summary'; + import getPostSummary from '../../../../../common/get-post-summary.ts'; this.mixin('i'); this.mixin('api'); diff --git a/src/web/app/mobile/tags/notification-preview.tag b/src/web/app/mobile/tags/notification-preview.tag index 36b4f5eda7..1fdcc57641 100644 --- a/src/web/app/mobile/tags/notification-preview.tag +++ b/src/web/app/mobile/tags/notification-preview.tag @@ -110,7 +110,7 @@ </style> <script> - import getPostSummary from '../../../../common/get-post-summary'; + import getPostSummary from '../../../../common/get-post-summary.ts'; this.getPostSummary = getPostSummary; this.notification = this.opts.notification; </script> diff --git a/src/web/app/mobile/tags/notification.tag b/src/web/app/mobile/tags/notification.tag index 416493ee23..53222b9dbe 100644 --- a/src/web/app/mobile/tags/notification.tag +++ b/src/web/app/mobile/tags/notification.tag @@ -163,7 +163,7 @@ </style> <script> - import getPostSummary from '../../../../common/get-post-summary'; + import getPostSummary from '../../../../common/get-post-summary.ts'; this.getPostSummary = getPostSummary; this.notification = this.opts.notification; </script> diff --git a/src/web/app/mobile/tags/notifications.tag b/src/web/app/mobile/tags/notifications.tag index 9985b3351c..7370aa84d3 100644 --- a/src/web/app/mobile/tags/notifications.tag +++ b/src/web/app/mobile/tags/notifications.tag @@ -78,7 +78,7 @@ </style> <script> - import getPostSummary from '../../../../common/get-post-summary'; + import getPostSummary from '../../../../common/get-post-summary.ts'; this.getPostSummary = getPostSummary; this.mixin('api'); diff --git a/src/web/app/mobile/tags/page/home.tag b/src/web/app/mobile/tags/page/home.tag index 6f7369798e..3b0255b293 100644 --- a/src/web/app/mobile/tags/page/home.tag +++ b/src/web/app/mobile/tags/page/home.tag @@ -9,7 +9,7 @@ <script> import ui from '../../scripts/ui-event'; import Progress from '../../../common/scripts/loading'; - import getPostSummary from '../../../../../common/get-post-summary'; + import getPostSummary from '../../../../../common/get-post-summary.ts'; import openPostForm from '../../scripts/open-post-form'; this.mixin('i'); diff --git a/src/web/app/mobile/tags/post-detail.tag b/src/web/app/mobile/tags/post-detail.tag index 4be1a8080a..ed275749ec 100644 --- a/src/web/app/mobile/tags/post-detail.tag +++ b/src/web/app/mobile/tags/post-detail.tag @@ -264,7 +264,7 @@ </style> <script> import compile from '../../common/scripts/text-compiler'; - import getPostSummary from '../../../../common/get-post-summary'; + import getPostSummary from '../../../../common/get-post-summary.ts'; import openPostForm from '../scripts/open-post-form'; this.mixin('api'); diff --git a/src/web/app/mobile/tags/timeline.tag b/src/web/app/mobile/tags/timeline.tag index 80debbf66e..5ecc2df9d1 100644 --- a/src/web/app/mobile/tags/timeline.tag +++ b/src/web/app/mobile/tags/timeline.tag @@ -464,7 +464,7 @@ </style> <script> import compile from '../../common/scripts/text-compiler'; - import getPostSummary from '../../../../common/get-post-summary'; + import getPostSummary from '../../../../common/get-post-summary.ts'; import openPostForm from '../scripts/open-post-form'; this.mixin('api'); diff --git a/src/web/app/mobile/tags/user.tag b/src/web/app/mobile/tags/user.tag index cc34074218..a332e930e2 100644 --- a/src/web/app/mobile/tags/user.tag +++ b/src/web/app/mobile/tags/user.tag @@ -428,7 +428,7 @@ </style> <script> - import summary from '../../../../common/get-post-summary'; + import summary from '../../../../common/get-post-summary.ts'; this.post = this.opts.post; this.text = summary(this.post); diff --git a/webpack/module/rules/index.ts b/webpack/module/rules/index.ts index 2308f4e535..2707a9c2f1 100644 --- a/webpack/module/rules/index.ts +++ b/webpack/module/rules/index.ts @@ -2,10 +2,12 @@ import i18n from './i18n'; import themeColor from './theme-color'; import tag from './tag'; import stylus from './stylus'; +import typescript from './typescript'; export default (lang, locale) => [ i18n(lang, locale), themeColor(), tag(), - stylus() + stylus(), + typescript() ]; diff --git a/webpack/module/rules/typescript.ts b/webpack/module/rules/typescript.ts new file mode 100644 index 0000000000..eb2b279a55 --- /dev/null +++ b/webpack/module/rules/typescript.ts @@ -0,0 +1,8 @@ +/** + * TypeScript + */ + +export default () => ({ + test: /\.ts$/, + use: 'awesome-typescript-loader' +});