From ff8b4983fab2491ebe85ef23cc4d671e14a24b56 Mon Sep 17 00:00:00 2001 From: Xavier Stouder Date: Tue, 30 Aug 2016 14:21:56 +0200 Subject: [PATCH] Defintions for musicmetadata package (#10841) * Add Music Metadata * Fix some errors --- musicmetadata/musicmetadata-tests.ts | 10 ++++++ musicmetadata/musicmetadata.d.ts | 48 ++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 musicmetadata/musicmetadata-tests.ts create mode 100644 musicmetadata/musicmetadata.d.ts diff --git a/musicmetadata/musicmetadata-tests.ts b/musicmetadata/musicmetadata-tests.ts new file mode 100644 index 0000000000..bc99ba0900 --- /dev/null +++ b/musicmetadata/musicmetadata-tests.ts @@ -0,0 +1,10 @@ +/// +/// + +import * as fs from "fs"; +import * as mm from "musicmetadata"; + +mm(fs.createReadStream("hype-train.mp3"), (err: Error, metadata: MM.Metadata) => { + if (err) throw err; + console.log(`Parsed song ${metadata.title}`); +}); diff --git a/musicmetadata/musicmetadata.d.ts b/musicmetadata/musicmetadata.d.ts new file mode 100644 index 0000000000..b772468546 --- /dev/null +++ b/musicmetadata/musicmetadata.d.ts @@ -0,0 +1,48 @@ +// Type definitions for musicmetadata 2.0.4 +// Project: https://www.npmjs.com/package/musicmetadata +// Definitions by: Xavier Stouder +// Definitions: https://github.com/DefinitelyTyped/ + +/// + +declare module "musicmetadata" { + import {Readable} from "stream"; + import {EventEmitter} from "events"; + + function mm(readStream: Readable, callback: (err: Error, metadata: MM.Metadata) => void): EventEmitter; + function mm(readStream: Readable, options: MM.Options, callback: (err: Error, metadata: MM.Metadata) => void): EventEmitter; + + namespace mm { } + + export = mm; +} + +declare namespace MM { + export interface Options { + duration: boolean; + fileSize: number; + } + + export interface Metadata { + artist: string[]; + album: string; + albumartist: string[]; + title: string; + year: string; + track: NoOf; + disk: NoOf; + genre: string; + picture: Picture[]; + duration: number; + } + + export interface NoOf { + no: number; + of: number; + } + + export interface Picture { + format: string; + data: Buffer; + } +} \ No newline at end of file