Skip to content

Commit

Permalink
Merge pull request #9 from mikiymk/include-packages
Browse files Browse the repository at this point in the history
Include packages
  • Loading branch information
mikiymk committed Jun 11, 2022
2 parents bda146d + 336d48e commit cb811ee
Show file tree
Hide file tree
Showing 307 changed files with 19,825 additions and 299 deletions.
6 changes: 5 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@
],
"ignorePatterns": [
"dest/**/*.d.ts",
"**/*.js"
"**/*.js",
"test/file-type/fixture/*",
"test/peek-readable/resources/*",
"test/strtok3/resources/*",
"test/samples/**/*"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
Expand Down
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
test/samples/
test/peek-readable/resources/
test/strtok3/resources/
test/file-type/fixture/
30 changes: 30 additions & 0 deletions lib/@tokenizer/token/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* Read-only token
* See https://github.com/Borewit/strtok3 for more information
*/
export interface IGetToken<V, VS extends Uint8Array = Uint8Array> {
/**
* Length of encoded token in bytes
*/
len: number;

/**
* Decode value from buffer at offset
* @param array - Uint8Array to read the decoded value from
* @param offset - Decode offset
* @return decoded value
*/
get(array: VS, offset: number): V;
}

export interface IToken<V, VS extends Uint8Array = Uint8Array>
extends IGetToken<V, VS> {
/**
* Encode value to buffer
* @param array - Uint8Array to write the encoded value to
* @param offset - Buffer write offset
* @param value - Value to decode of type T
* @return offset plus number of bytes written
*/
put(array: VS, offset: number, value: V): number;
}
4 changes: 2 additions & 2 deletions lib/ParserFactory.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { IOptions, IAudioMetadata, ParserType } from "./type";
import { ITokenizer } from "strtok3/lib/core";
import { fileTypeFromBuffer } from "file-type/core";
import { ITokenizer } from "./strtok3/core";
import { fileTypeFromBuffer } from "./file-type/core";
import * as ContentType from "content-type";
import * as MimeType from "media-typer";

Expand Down
4 changes: 2 additions & 2 deletions lib/aiff/AiffParser.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as Token from "token-types";
import * as Token from "../token-types";
import initDebug from "debug";
import * as strtok3 from "strtok3/lib/core";
import * as strtok3 from "../strtok3/core";

import { ID3v2Parser } from "../id3v2/ID3v2Parser";
import { FourCcToken } from "../common/FourCC";
Expand Down
4 changes: 2 additions & 2 deletions lib/aiff/AiffToken.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as Token from "token-types";
import { IGetToken } from "strtok3";
import * as Token from "../token-types";
import { IGetToken } from "../strtok3";

import { FourCcToken } from "../common/FourCC";
import * as iff from "../iff";
Expand Down
4 changes: 2 additions & 2 deletions lib/apev2/APEv2Parser.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import initDebug from "debug";
import * as strtok3 from "strtok3/lib/core";
import { StringType } from "token-types";
import * as strtok3 from "../strtok3/core";
import { StringType } from "../token-types";

import * as util from "../common/Util";
import { IOptions, IRandomReader, IApeHeader } from "../type";
Expand Down
4 changes: 2 additions & 2 deletions lib/apev2/APEv2Token.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as Token from "token-types";
import { IGetToken } from "strtok3/lib/core";
import * as Token from "../token-types";
import { IGetToken } from "../strtok3/core";

import { FourCcToken } from "../common/FourCC";

Expand Down
4 changes: 2 additions & 2 deletions lib/asf/AsfObject.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// ASF Objects

import { IGetToken, ITokenizer } from "strtok3/lib/core";
import { IGetToken, ITokenizer } from "../strtok3/core";

import * as util from "../common/Util";
import { IPicture, ITag } from "../type";
import * as Token from "token-types";
import * as Token from "../token-types";
import GUID from "./GUID";
import { AsfUtil } from "./AsfUtil";
import { AttachedPictureType } from "../id3v2/ID3v2Token";
Expand Down
2 changes: 1 addition & 1 deletion lib/asf/AsfUtil.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as Token from "token-types";
import * as Token from "../token-types";

import * as util from "../common/Util";
import { DataType } from "./AsfObject";
Expand Down
2 changes: 1 addition & 1 deletion lib/common/BasicParser.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ITokenizer } from "strtok3/lib/core";
import { ITokenizer } from "../strtok3/core";

import { ITokenParser } from "../ParserFactory";
import { IOptions, IPrivateOptions } from "../type";
Expand Down
2 changes: 1 addition & 1 deletion lib/common/FourCC.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as util from "./Util";
import { IToken } from "strtok3/lib/core";
import { IToken } from "../strtok3/core";

const validFourCC = /^[\x21-\x7e©][\x20-\x7e\x00()]{3}/;

Expand Down
2 changes: 1 addition & 1 deletion lib/common/MetadataCollector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { IGenericTag, TagType, isSingleton, isUnique } from "./GenericTagTypes";
import { CombinedTagMapper } from "./CombinedTagMapper";
import { CommonTagMapper } from "./GenericTagMapper";
import { toRatio } from "./Util";
import { fileTypeFromBuffer } from "file-type/core";
import { fileTypeFromBuffer } from "../file-type/core";

const debug = initDebug("music-metadata:collector");

Expand Down
4 changes: 2 additions & 2 deletions lib/core.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Readable } from "stream";
import * as strtok3 from "strtok3/lib/core";
import * as strtok3 from "./strtok3/core";

import { ParserFactory } from "./ParserFactory";
import {
Expand All @@ -16,7 +16,7 @@ import { APEv2Parser } from "./apev2/APEv2Parser";
import { hasID3v1Header } from "./id3v1/ID3v1Parser";
import { getLyricsHeaderLength } from "./lyrics3/Lyrics3";

export { IFileInfo } from "strtok3/lib/core";
export { IFileInfo } from "./strtok3/core";

/**
* Parse audio from Node Stream.Readable
Expand Down
4 changes: 2 additions & 2 deletions lib/dsdiff/DsdiffParser.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as Token from "token-types";
import * as Token from "../token-types";
import initDebug from "debug";
import * as strtok3 from "strtok3/lib/core";
import * as strtok3 from "../strtok3/core";

import { FourCcToken } from "../common/FourCC";
import { BasicParser } from "../common/BasicParser";
Expand Down
4 changes: 2 additions & 2 deletions lib/dsdiff/DsdiffToken.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as Token from "token-types";
import { IGetToken } from "strtok3/lib/core";
import * as Token from "../token-types";
import { IGetToken } from "../strtok3/core";

import { FourCcToken } from "../common/FourCC";
import { IChunkHeader64 } from "../iff";
Expand Down
4 changes: 2 additions & 2 deletions lib/dsf/DsfChunk.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as Token from "token-types";
import { IGetToken } from "strtok3/lib/core";
import * as Token from "../token-types";
import { IGetToken } from "../strtok3/core";

import { FourCcToken } from "../common/FourCC";

Expand Down
68 changes: 68 additions & 0 deletions lib/file-type/browser.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import { Buffer } from "node:buffer";
import { fileTypeFromBuffer, FileTypeResult } from "./core";

/**
* Convert Blobs to ArrayBuffer.
* @param blob - Web API Blob.
* @returns
*/
function blobToArrayBuffer(blob: Blob): Promise<ArrayBuffer> {
if (blob.arrayBuffer) {
return blob.arrayBuffer();
}

// TODO: Remove when stop supporting older environments
return new Promise((resolve, reject) => {
const fileReader = new FileReader();
fileReader.addEventListener("loadend", (event) => {
resolve(event.target.result as ArrayBuffer);
});

fileReader.addEventListener("error", (event) => {
reject(new Error(event.toString()));
});

fileReader.addEventListener("abort", (event) => {
reject(new Error(event.type));
});

fileReader.readAsArrayBuffer(blob);
});
}

/**
* Detect the file type of a [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob).
*
* __Note:__ This method is only available in the browser.
* @example
* ```
* import {fileTypeFromBlob} from 'file-type';
*
* const blob = new Blob(['<?xml version="1.0" encoding="ISO-8859-1" ?>'], {
* type: 'plain/text',
* endings: 'native'
* });
*
* console.log(await fileTypeFromBlob(blob));
* //=> {ext: 'txt', mime: 'plain/text'}
* ```
*/
export async function fileTypeFromBlob(
blob: Blob
): Promise<FileTypeResult | undefined> {
const buffer = await blobToArrayBuffer(blob);
return fileTypeFromBuffer(Buffer.from(buffer));
}

export {
fileTypeFromTokenizer,
fileTypeFromBuffer,
fileTypeStream,
} from "./core";
export {
supportedExtensions,
supportedMimeTypes,
FileTypeResult,
FileExtension,
MimeType,
} from "./core";
Loading

0 comments on commit cb811ee

Please sign in to comment.