@ryn-bsd/is-file
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

JS Library helps to check file formats, in node and web.

API

  • isApplication
  • isImage
  • isVideo
  • isAudio
  • isModel
  • isText
  • isFont

Those functions need one parameter, exactly file. Files can be passed as path string, Buffer, Readable

If you want a custom one, call

  • isCustom Accept file and the mime or extension

How to import

import isFile from "@ryn-bsd/is-file"; // base on your environment it will import node or web functionalities

Examples

// Single //

import isFile from "@ryn-bsd/is-file";

isFile.isApplication("text.xml");
// => true, otherwise false

isFile.isImage("image.png");
// => true, otherwise false

isFile.isVideo("video.mp4");
// => true, otherwise false

isFile.isAudio("audio.mp3");
// => true, otherwise false

isFile.isFont("font.ttf");
// => true, otherwise false

isFile.isModel("model.glb");
// => true, otherwise false

isFile.isCustom("custom.png", "image/png");
// => true, otherwise false

isFile.isCustom("custom.png", "png");
// => true, otherwise false
// Multiple //

import isFile from "@ryn-bsd/is-file";

isFile.isApplication(["application.xml", "application.pdf"]);
// => [{ valid: true, value: "application.xml" }, { valid: true, value: "application.pdf" }]

isFile.isCustom(["custom.png", "custom.xml", "custom.glb"], "image/png");
// => [{ valid: true, value: "custom.png" }, { valid: false, value: "custom.xml" }, { valid: false, value: "custom.glb" }]

Core

// Core //

import { Node } from "@ryn-bsd/is-file"; // Node core
import { Web } from "@ryn-bsd/is-file"; // Web core
import { typeFn } from "@ryn-bsd/is-file";

// This is the core function for the library you can import it like this,
// and use it, If it detect the file format if return an object
// otherwise undefined

typeFn("image.png");
// => { mime: "image/png", ext: png }, otherwise undefined

How it work?

The library check file format by it signature (not extension), to ensure the exact file format. In case you pass multiple files in array the library use concurrency model to optimize the performance.

Package Sidebar

Install

npm i @ryn-bsd/is-file

Weekly Downloads

86

Version

1.2.1

License

ISC

Unpacked Size

34.8 kB

Total Files

34

Last publish

Collaborators

  • ryn__bsd