šŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →
Socket
Sign inDemoInstall
Socket

@astropub/vite-plugin-file

Package Overview
Dependencies
Maintainers
0
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@astropub/vite-plugin-file

A Vite plugin for seamless access to file metadata and data streams, supporting modern Web API interfaces like Blob, File, and ArrayBuffer

0.2.1
latest
npm
Version published
Maintainers
0
Created
Source

Vite-Plugin-File

vite-plugin-file enables seamless access to file information and data in Vite projects.

NPM Version NPM Downloads

  • Efficient File Handling: Stream large files without consuming excess memory.
  • Convenient File Formats: Work seamlessly with modern Web APIs.
    • Work with large files efficiently via ReadableStream.
    • Access the entire file as ArrayBuffer, Blob, or File.
  • Simple Metadata Access: Retrieve critical file information with minimal effort.
    • Retrieve file name, type, size, and last modified time.
    • Access metadata as HTTP-style headers and preconfigured responses.
  • Vite Integration: Built specifically for Vite, ensuring seamless integration.
    • Includes automatic TypeScript typings for ?file imports.

Installation

Install the plugin:

npm install @astropub/vite-plugin-file

Add the plugin to your Vite configuration file:

// vite.config.js
import vitePluginFile from "@astropub/vite-plugin-file"

export default {
  plugins: [vitePluginFile()]
}

Usage

Add the ?file suffix to any file import to access its metadata and contents.

import FaviconIco from "./assets/favicon.ico?file"

File Metadata

Retrieve basic metadata about any file.

import FaviconIco from "./assets/favicon.ico?file"

console.log(FaviconIco.name)         // "favicon.ico"
console.log(FaviconIco.type)         // "image/x-icon"
console.log(FaviconIco.size)         // 9608
console.log(FaviconIco.lastModified) // 1735689600000

File Stream

Stream any file efficiently without loading it into memory.

import FaviconIco from "./assets/favicon.ico?file"

const stream = FaviconIco.stream() // ReadableStream

const response = FaviconIco.response() // Response (with pre-configured headers)

Full File Access

Access the file as ArrayBuffer, Blob, or File.

import FaviconIco from "./assets/favicon.ico?file"

const buffer = await FaviconIco.arrayBuffer()
console.log(buffer.byteLength) // 9608

const blob = await FaviconIco.blob()
console.log(blob.type)         // "image/x-icon"

const file = await FaviconIco.file()
console.log(file.name)         // "favicon.ico"
console.log(file.lastModified) // 1735689600000

File Metadata as Headers

Retrieve the file metadata as HTTP-style headers.

import FaviconIco from "./assets/favicon.ico?file"

const headers = FaviconIco.headers()
console.log(headers.get("content-type"))   // "image/x-icon"
console.log(headers.get("content-length")) // "9608"
console.log(headers.get("last-modified"))  // "Wed, 01 Jan 2025 00:00:00 GMT"

License

Licensed under the MIT-0 License.


Enjoy!

Keywords

vite

FAQs

Package last updated on 12 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts