npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@berkozturk/filequery

v1.0.0

Published

Query files with size or type

Downloads

3

Readme

filequery

file query utility for nodejs

Installation

npm i @berkozturk/filequery

Options

  {
    directory: 'C:/Project',              // Parent directory. Query returns files starting this directory. REQUIRED.
    fileType : fq.FileTypeOptions.video,  // Currently only supports video and image. If video is selected returns video files
    isRecursive: true,                    // Should query search subfolders of parent directory. DEFAULT: false
    returnFolders: true,                  // Should query return folders with files. DEFAULT: true
    includeBaseDirectoryOnReturn: true,   // Should return path values start with directory string. DEFAULT: true
    extension: '.pdf',                    // Filter file extensions. Only returns pdf files. DEFAULT: '*'
    sizeQuery: '$gt 1 $BYTE'              // Size query. This example returns files that size greater than 1 BYTE.  
  }

Size query format

Query formats

  // Only these operators supported. Greater than, equals and less than.
  const OPERATORS = {
    GT: '$gt',
    EQ: '$eq',
    LT: '$lt',
  };
  // Only these file size types supported.
  const SIZE_TYPES = {
    BYTE: '$BYTE',
    KB: '$KB',
    MB: '$MB',
    GB: '$GB',
  };

Query syntax

Query syntax should follow like `OPERATOR AMOUNT FILE_SIZE_TYPE'. Each token should seperated with 1 whitespace character.

Example queries

  sizeQuery : '$gt 1 $MB' // Returns file size greater than 1 MB files.
  sizeQuery : '$eq 1 $GB' // Returns file size equals 1 Gigabyte files.
  sizeQuery : '$lt 10 $KB'// Returns file size less than 10 Kilobytes files.

Example Usage

    const fq = require("filequery");

    (async() => {
      // This query returns javascript files with size greater than 1 Kilobytes.
      // Only searches directory and doesn't includes subfolders.
      // No folders will be on resultset
      const result = await fq.query({
        directory: 'C:/Project',              // Query directory
        extension: '.js',                     // Only javascript files
        isRecursive: false,                   // Don't search subfolders
        includeBaseDirectoryOnReturn: false,  // Don't include directory path on result paths. 
        returnFolders: false,                 // Only return files. Can be blank because extension property is provided.
        sizeQuery: '$gt 1 $KB'                // Return only files that size greater than 1 Kilobytes.
      });
    })();