diff --git a/page-icon/page-icon-tests.ts b/page-icon/page-icon-tests.ts
new file mode 100644
index 0000000000..88dac1b6aa
--- /dev/null
+++ b/page-icon/page-icon-tests.ts
@@ -0,0 +1,25 @@
+///
+
+import * as pageIcon from "page-icon";
+
+const siteUrl = "https://www.facebook.com/";
+pageIcon(siteUrl)
+ .then(function(icon) {
+ // do things with icon object
+ console.log(icon);
+ })
+ .catch(error => {
+ console.error(error);
+ });
+
+const twUrl = "https://twitter.com";
+pageIcon(twUrl, {ext: ".png"})
+ .then(icon => {
+ if (!icon) {
+ return;
+ }
+ console.log(icon.source, icon.name, icon.data, icon.size, icon.ext, icon.mime);
+ })
+ .catch(err => {
+ console.error(err);
+ });
diff --git a/page-icon/page-icon.d.ts b/page-icon/page-icon.d.ts
new file mode 100644
index 0000000000..1e183ea289
--- /dev/null
+++ b/page-icon/page-icon.d.ts
@@ -0,0 +1,25 @@
+// Type definitions for page-icon 0.3.0
+// Project: https://github.com/jiahaog/page-icon
+// Definitions by: rhysd
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare namespace PageIcon {
+ interface Icon {
+ source: string;
+ name: string;
+ data: Buffer;
+ size: number;
+ ext: string;
+ mime: string;
+ }
+ interface FetchOptions {
+ ext?: string;
+ }
+}
+
+declare module "page-icon" {
+ const mod: (url: string, opts?: PageIcon.FetchOptions) => Promise;
+ export = mod;
+}