Skip to content

Commit 3ed22fb

Browse files
committed
add mp4
1 parent 402a2ab commit 3ed22fb

File tree

10 files changed

+413
-192
lines changed

10 files changed

+413
-192
lines changed

package-lock.json

Lines changed: 69 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
{
22
"name": "magic-bytes.js",
3-
"version": "1.0.8",
3+
"version": "1.0.9",
44
"main": "./dist/index.js",
55
"module": "./dist/index.js",
66
"types": "./dist/index.d.ts",
77
"scripts": {
88
"prettier": "prettier --write \"{src,__{tests,mocks}__}/**/*.{tsx,ts}\"",
99
"gen-tree": "ts-node ./src/create-snapshot.ts",
10+
"pre-test": "jest --clear-cache",
1011
"test": "jest",
1112
"build": "tsc"
1213
},
@@ -37,11 +38,11 @@
3738
"@types/jest": "^27.0.1",
3839
"@types/node": "^16.6.2",
3940
"jest": "^27.0.6",
40-
"prettier": "^1.19.1",
41+
"prettier": "^2.6.1",
4142
"regenerator-runtime": "^0.11.1",
4243
"ts-jest": "^27.0.5",
4344
"ts-node": "^10.2.1",
44-
"typescript": "^4.3.5"
45-
},
46-
"dependencies": {}
45+
"typescript": "^4.3.5",
46+
"prettier-plugin-organize-imports": "^2.3.4"
47+
}
4748
}

src/index.spec.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import * as fs from "fs";
12
import {
3+
filetypeextension,
24
filetypeinfo,
3-
filetypename,
45
filetypemime,
5-
filetypeextension
6+
filetypename,
67
} from "./index";
7-
import * as fs from "fs";
88

99
describe("Tests the public API", () => {
1010
it("detects tar with offset", () => {
@@ -14,6 +14,13 @@ describe("Tests the public API", () => {
1414
expect(filetypeinfo(bytes)[0].typename).toBe("tar");
1515
});
1616

17+
it("detects mp4", () => {
18+
const buffer = fs.readFileSync(require.resolve("./testfiles/a.mp4"));
19+
const bytes = Array.prototype.slice.call(buffer, 0);
20+
expect(filetypeinfo(bytes)).toHaveLength(1);
21+
expect(filetypeinfo(bytes)[0].typename).toBe("mp4");
22+
});
23+
1724
it("filetypeinfo", () => {
1825
const bytes = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
1926
expect(filetypeinfo(bytes)).toHaveLength(1);

src/index.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import patternTree from "./pattern-tree.snapshot";
2-
import { GuessedFile, Node, Tree } from "./model/tree";
1+
import createTree from "./model/pattern-tree";
32
import { fromHex, toHex } from "./model/toHex";
3+
import { GuessedFile, Node, Tree } from "./model/tree";
4+
5+
const patternTree = createTree();
46

57
export const filetypeinfo = (
68
bytes: number[] | Uint8Array | Uint8ClampedArray
@@ -13,7 +15,6 @@ export const filetypeinfo = (
1315
continue;
1416
}
1517
const node: Node = (patternTree as any).offset[k];
16-
1718
const guessed = walkTree(offset, bytes, node);
1819
if (guessed.length > 0) {
1920
return guessed;

src/model/pattern-tree.spec.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)