From a560fc5cb169c93e87ae6639363b03b70b93a151 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 31 Jan 2017 00:59:42 +0900 Subject: [PATCH] Improve, Refactor: Add some notes --- src/index.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/index.ts b/src/index.ts index 67ae33b..d4fca0e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,26 +1,41 @@ +/** + * summaly + * https://github.com/syuilo/summaly + */ + import * as URL from 'url'; import tracer from 'trace-redirect'; import ISummary from './isummary'; import IPlugin from './iplugin'; import general from './general'; +// Load plugins const plugins: IPlugin[] = require('require-all')({ dirname: __dirname + '/plugins' }); +/** + * Summary an web page + * @param {string} url URL of web page you want to summary + * @return {Promise} Promised summary + */ export default async (url: string): Promise => { + // Follow redirects const actualUrl = await tracer(url); const _url = URL.parse(actualUrl, true); + // Find matching plugin const match = Object.keys(plugins) .map(key => plugins[key]) .filter(plugin => plugin.test(_url))[0] as IPlugin; + // Get summary const summary = match ? await match.summary(_url) : await general(_url); + // Replace '' to null Object.keys(summary).forEach(k => { if (summary[k]) { summary[k] = summary[k].trim();