From e139f0ba7dacccaaa4534d19313a024e82bcdd57 Mon Sep 17 00:00:00 2001 From: Borewit Date: Thu, 11 Apr 2019 20:05:40 +0200 Subject: [PATCH 1/6] #199 Prevent repeating Ogg format event --- src/ogg/OggParser.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/ogg/OggParser.ts b/src/ogg/OggParser.ts index f9467e695..37dd97814 100644 --- a/src/ogg/OggParser.ts +++ b/src/ogg/OggParser.ts @@ -1,5 +1,6 @@ import * as Token from 'token-types'; import * as initDebug from 'debug'; +import * as assert from 'assert'; import common from '../common/Util'; import * as Ogg from './Ogg'; @@ -40,10 +41,6 @@ export class SegmentTable implements Token.IGetToken { */ export class OggParser extends BasicParser { - public static getInstance(): OggParser { - return new OggParser(); - } - private static Header: Token.IGetToken = { len: 27, @@ -82,9 +79,7 @@ export class OggParser extends BasicParser { do { header = await this.tokenizer.readToken(OggParser.Header); - if (header.capturePattern !== 'OggS') { // Capture pattern - throw new Error('expected ogg header but was not found'); - } + assert.strictEqual(header.capturePattern, 'OggS', 'Ogg capture pattern'); this.header = header; this.pageNumber = header.pageSequenceNo; @@ -112,8 +107,8 @@ export class OggParser extends BasicParser { default: throw new Error('gg audio-codec not recognized (id=' + id + ')'); } + this.metadata.setFormat('dataformat', 'Ogg/' + this.pageConsumer.codecName); } - this.metadata.setFormat('dataformat', 'Ogg/' + this.pageConsumer.codecName); this.pageConsumer.parsePage(header, pageData); } while (!header.headerType.lastPage); } catch (err) { From cbcc5f05a9d3a3df4a82d93129264cf35d2b9d97 Mon Sep 17 00:00:00 2001 From: Borewit Date: Thu, 11 Apr 2019 20:28:28 +0200 Subject: [PATCH 2/6] 3.5.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6ab44faf9..31a646b3b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "music-metadata", "description": "Streaming music metadata parser for node and the browser.", - "version": "3.5.3", + "version": "3.5.4", "author": { "name": "Borewit", "url": "https://github.com/Borewit" From ebd1713414371158fbdaeb9117f7b5ffac663809 Mon Sep 17 00:00:00 2001 From: Borewit Date: Fri, 12 Apr 2019 08:33:54 +0200 Subject: [PATCH 3/6] Fix source-mapping in code coverage --- package.json | 15 ++++++++------- src/tsconfig.json | 2 +- test/test-file-aiff.ts | 2 +- test/test-file-ape.ts | 3 +-- test/test-file-asf.ts | 3 +-- yarn.lock | 7 +++++++ 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 31a646b3b..893696400 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "lint-ts": "tslint 'src/**/*.ts' 'example/typescript/*.ts' --exclude 'src/**/*.d.ts' 'test/**/*.ts' --exclude 'test/**/*.d.ts' 'doc-gen/**/*.ts'", "lint-md": "remark -u preset-lint-recommended .", "lint": "npm run lint-md && npm run lint-ts", - "test": "mocha --require ts-node/register --full-trace test", + "test": "mocha --compilers ts-node/register --require source-map-support/register --full-trace test/test-*.ts", "build": "npm run clean && npm run compile && npm run doc-gen", "start": "npm-run-all compile lint cover-test", "test-coverage": "nyc npm run test", @@ -83,6 +83,7 @@ "nyc": "^13.1.0", "remark-cli": "^6.0.1", "remark-preset-lint-recommended": "^3.0.2", + "source-map-support": "^0.5.12", "ts-lint": "^4.5.1", "ts-node": "^8.0.2", "tslint": "^5.11.0", @@ -111,14 +112,14 @@ "url": "https://github.com/Borewit/music-metadata/issues" }, "nyc": { - "check-coverage": true, "include": [ - "src/**/*" + "src/**/*.ts", + "test/**/*.ts" ], - "reporter": [ - "lcov", - "text" + "extension": [ + ".ts" ], - "report-dir": "coverage" + "sourceMap": true, + "instrument": true } } diff --git a/src/tsconfig.json b/src/tsconfig.json index 2350c6193..71512c1f1 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "sourceMap": false, + "sourceMap": true, "outDir": "../lib", "declaration": true } diff --git a/test/test-file-aiff.ts b/test/test-file-aiff.ts index 6db5e129b..fb4353ede 100644 --- a/test/test-file-aiff.ts +++ b/test/test-file-aiff.ts @@ -1,7 +1,7 @@ import * as path from 'path'; import {Parsers} from './metadata-parsers'; import {assert} from 'chai'; -import {IFormat} from '../src/type'; +import {IFormat} from '../src'; const t = assert; diff --git a/test/test-file-ape.ts b/test/test-file-ape.ts index 79dc3fea5..ffcfa114e 100644 --- a/test/test-file-ape.ts +++ b/test/test-file-ape.ts @@ -2,7 +2,6 @@ import {assert} from 'chai'; import * as mm from '../src'; import * as path from 'path'; import {Parsers} from './metadata-parsers'; -import {INativeTagDict} from '../src/type'; const t = assert; @@ -34,7 +33,7 @@ describe("Parse APE (Monkey's Audio)", () => { t.strictEqual(common.picture[1].data.length, 48658, 'common.picture 1 length'); } - function checkNative(ape: INativeTagDict) { + function checkNative(ape: mm.INativeTagDict) { t.deepEqual(ape.ENSEMBLE, ['Audioslave']); t.deepEqual(ape.Artist, ['Audioslave', 'Chris Cornell']); t.strictEqual(ape['Cover Art (Front)'][0].data.length, 48658, 'raw cover art (front) length'); diff --git a/test/test-file-asf.ts b/test/test-file-asf.ts index 496057c12..3fa04f1bc 100644 --- a/test/test-file-asf.ts +++ b/test/test-file-asf.ts @@ -5,7 +5,6 @@ import GUID from "../src/asf/GUID"; import {AsfUtil} from "../src/asf/AsfUtil"; import {DataType} from "../src/asf/AsfObject"; import {Parsers} from './metadata-parsers'; -import {INativeTagDict} from '../src/type'; const t = assert; @@ -90,7 +89,7 @@ describe("Parse ASF", () => { t.deepEqual(common.genre, ['Rock'], 'common.genre'); } - function checkNative(native: INativeTagDict) { + function checkNative(native: mm.INativeTagDict) { t.deepEqual(native['WM/AlbumTitle'], ['Discovery'], 'native: WM/AlbumTitle'); t.deepEqual(native['WM/BeatsPerMinute'], [117], 'native: WM/BeatsPerMinute'); diff --git a/yarn.lock b/yarn.lock index 299037d03..6983d9ac9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3283,6 +3283,13 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.5.12: + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-support@^0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" From 43ccece3b3ae0ce5c8706e0691219226a5b29a8f Mon Sep 17 00:00:00 2001 From: Borewit Date: Fri, 12 Apr 2019 08:42:44 +0200 Subject: [PATCH 4/6] USe constructor --- test/test-id3v2.3.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test-id3v2.3.ts b/test/test-id3v2.3.ts index add9e9e9e..cad8f2b56 100644 --- a/test/test-id3v2.3.ts +++ b/test/test-id3v2.3.ts @@ -18,7 +18,7 @@ describe("Extract metadata from ID3v2.3 header", () => { const metadata = new MetadataCollector({}); return strtok.fromFile(filePath).then(tokenizer => { - return ID3v2Parser.getInstance().parse(metadata, tokenizer, {}).then(() => { + return new ID3v2Parser().parse(metadata, tokenizer, {}).then(() => { t.strictEqual(33, metadata.native['ID3v2.3'].length); From a135cf19fe95f4ae319c3e722d40a85eef331749 Mon Sep 17 00:00:00 2001 From: Borewit Date: Fri, 12 Apr 2019 08:51:06 +0200 Subject: [PATCH 5/6] Fix lcov report output --- package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 893696400..9bd6e84b3 100644 --- a/package.json +++ b/package.json @@ -120,6 +120,11 @@ ".ts" ], "sourceMap": true, - "instrument": true + "instrument": true, + "reporter": [ + "lcov", + "text" + ], + "report-dir": "coverage" } } From c27c0296a9b070853e98fea5b85d9cb3a4bfab19 Mon Sep 17 00:00:00 2001 From: Borewit Date: Fri, 12 Apr 2019 09:02:44 +0200 Subject: [PATCH 6/6] Fix send code coverage --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 9bd6e84b3..04d68cd3e 100644 --- a/package.json +++ b/package.json @@ -116,6 +116,9 @@ "src/**/*.ts", "test/**/*.ts" ], + "exclude": [ + "lib/**" + ], "extension": [ ".ts" ],