Socket
Socket
Sign inDemoInstall

vinyl

Package Overview
Dependencies
3
Maintainers
2
Versions
30
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    vinyl

A virtual file format


Version published
Maintainers
2
Install size
36.5 kB
Created

Package description

What is vinyl?

The vinyl npm package is a virtual file format used in Node.js streams. It is commonly used in build systems like Gulp to represent files, allowing for easy manipulation and transformation of file contents and metadata.

What are vinyl's main functionalities?

Creating a Vinyl File

This feature allows you to create a new Vinyl file object. The code sample demonstrates how to create a Vinyl file with a specified current working directory, base path, file path, and contents.

const Vinyl = require('vinyl');
const file = new Vinyl({
  cwd: "/",
  base: "/test/",
  path: "/test/file.js",
  contents: Buffer.from("console.log('Hello, world!');")
});
console.log(file);

Reading File Contents

This feature allows you to read the contents of a Vinyl file. The code sample demonstrates how to create a Vinyl file and then read its contents as a string.

const Vinyl = require('vinyl');
const file = new Vinyl({
  cwd: "/",
  base: "/test/",
  path: "/test/file.js",
  contents: Buffer.from("console.log('Hello, world!');")
});
console.log(file.contents.toString());

Checking File Properties

This feature allows you to check various properties of a Vinyl file, such as whether its contents are a buffer, a stream, or null. The code sample demonstrates how to create a Vinyl file and check these properties.

const Vinyl = require('vinyl');
const file = new Vinyl({
  cwd: "/",
  base: "/test/",
  path: "/test/file.js",
  contents: Buffer.from("console.log('Hello, world!');")
});
console.log(file.isBuffer());
console.log(file.isStream());
console.log(file.isNull());

Other packages similar to vinyl

Readme

Source

vinyl NPM version Build Status Coveralls Status Dependency Status

Information

Packagevinyl
DescriptionA virtual file format
Node Version>= 0.9

What is this?

Read this for more info about how this plays into the grand scheme of things https://medium.com/@eschoff/3828e8126466

File

var File = require('vinyl');

var coffeeFile = new File({
  cwd: "/",
  base: "/test/",
  path: "/test/file.coffee",
  contents: new Buffer("test = 123")
});

isVinyl

When checking if an object is a vinyl file, you should not use instanceof. Use the isVinyl function instead.

var File = require('vinyl');

var dummy = new File({stuff});
var notAFile = {};

File.isVinyl(dummy); // true
File.isVinyl(notAFile); // false

constructor(options)

options.cwd

Type: String

Default: process.cwd()

options.base

Used for relative pathing. Typically where a glob starts.

Type: String

Default: options.cwd

options.path

Full path to the file.

Type: String

Default: undefined

options.history

Path history. Has no effect if options.path is passed.

Type: Array

Default: options.path ? [options.path] : []

options.stat

The result of an fs.stat call. See fs.Stats for more information.

Type: fs.Stats

Default: null

options.contents

File contents.

Type: Buffer, Stream, or null

Default: null

isBuffer()

Returns true if file.contents is a Buffer.

isStream()

Returns true if file.contents is a Stream.

isNull()

Returns true if file.contents is null.

clone([opt])

Returns a new File object with all attributes cloned.
By default custom attributes are deep-cloned.

If opt or opt.deep is false, custom attributes will not be deep-cloned.

If opt.contents is false, it will copy file.contents Buffer's reference.

pipe(stream[, opt])

If file.contents is a Buffer, it will write it to the stream.

If file.contents is a Stream, it will pipe it to the stream.

If file.contents is null, it will do nothing.

If opt.end is false, the destination stream will not be ended (same as node core).

Returns the stream.

inspect()

Returns a pretty String interpretation of the File. Useful for console.log.

contents

The Stream or Buffer of the file as it was passed in via options, or as the result of modification.

For example:

if (file.isBuffer()) {
    console.log(file.contents.toString()); // logs out the string of contents
}

path

Absolute pathname string or undefined. Setting to a different value pushes the old value to history.

history

Array of path values the file object has had, from history[0] (original) through history[history.length - 1] (current). history and its elements should normally be treated as read-only and only altered indirectly by setting path.

relative

Returns path.relative for the file base and file path.

Example:

var file = new File({
  cwd: "/",
  base: "/test/",
  path: "/test/file.coffee"
});

console.log(file.relative); // file.coffee

dirname

Gets and sets path.dirname for the file path.

Example:

var file = new File({
  cwd: "/",
  base: "/test/",
  path: "/test/file.coffee"
});

console.log(file.dirname); // /test

file.dirname = '/specs';

console.log(file.dirname); // /specs
console.log(file.path); // /specs/file.coffee
`

basename

Gets and sets path.basename for the file path.

Example:

var file = new File({
  cwd: "/",
  base: "/test/",
  path: "/test/file.coffee"
});

console.log(file.basename); // file.coffee

file.basename = 'file.js';

console.log(file.basename); // file.js
console.log(file.path); // /test/file.js
`

extname

Gets and sets path.extname for the file path.

Example:

var file = new File({
  cwd: "/",
  base: "/test/",
  path: "/test/file.coffee"
});

console.log(file.extname); // .coffee

file.extname = '.js';

console.log(file.extname); // .js
console.log(file.path); // /test/file.js
`

FAQs

Last updated on 25 Sep 2015

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc