iam-medvedev / dosya

Module for creating buffer for the requested file type.

Home Page:https://npmjs.com/package/dosya

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dosya

dosya (Turkish) — file n.

Module for creating buffer for the requested file type.

This module is heavily inspired by file-type and does the reverse work.

For example:

import { createFile } from "dosya";
import { fileTypeFromBuffer } from "file-type";

const buffer = createFile("mp4");
console.log(await fileTypeFromBuffer(buffer));
// => { ext: 'mp4', mime: 'video/mp4' }

Benefits

  • 130 extensions are available
  • Written in Deno
  • Fully typed
  • Available for Deno / Node.js / CLI

Node.js Usage

$ yarn add -D dosya
import { createFile } from "dosya";

const buffer = createFile("mp4");

Deno Usage

import { createFile } from "https://deno.land/x/dosya/mod.ts";

const buffer = createFile("mp4");

CLI Usage

$ deno install -n dosya --allow-write --allow-read https://deno.land/x/dosya/cli.ts
$ dosya --ext mp3 ./example.mp3
$ file ./example.mp3
example.mp3: Audio file with ID3 version 2.0.0

Why?

This module is very useful for writing tests.

import { createFile } from "dosya";
import nock from "nock";
import fetch from "isomorphic-fetch";

nock("https://example.com")
  .get("/video.mp4")
  .replyWithFile(200, createFile("mp4"));

it("should get video from url", async () => {
  const buffer = await fetch("https://example.com/video.mp4").then((res) =>
    res.arrayBuffer()
  );

  const fileType = await fileTypeFromBuffer(buffer);
  expect(fileType.ext).toEqual("mp4"); // true
});

License

dosya is WTFPL licensed.

About

Module for creating buffer for the requested file type.

https://npmjs.com/package/dosya

License:Do What The F*ck You Want To Public License


Languages

Language:TypeScript 100.0%