Vinyl.isCustomProp()#

プロパティがVinylによって内部的に管理されているかどうかを判断します。コンストラクタ内で値を設定したり、clone()インスタンスメソッドでプロパティをコピーしたりする際にVinylによって使用されます。

このメソッドは、Vinylクラスを拡張する際に役立ちます。詳細は以下のVinylの拡張で説明します。

使用法#

const Vinyl = require('vinyl');
Vinyl.isCustomProp('sourceMap') === true;
Vinyl.isCustomProp('path') === false;

署名#

Vinyl.isCustomProp(property)

パラメータ#

パラメータタイプ備考
propertystringチェックするプロパティ名。

戻り値#

プロパティが内部的に管理されていない場合は true。

Vinylの拡張#

カスタムプロパティが内部的に管理されている場合、静的なisCustomPropメソッドを拡張し、カスタムプロパティのいずれかがクエリされたときにfalseを返す必要があります。

const Vinyl = require('vinyl');
const builtInProps = ['foo', '_foo'];
class SuperFile extends Vinyl {
constructor(options) {
super(options);
this._foo = 'example internal read-only value';
}
get foo() {
return this._foo;
}
static isCustomProp(name) {
return super.isCustomProp(name) && builtInProps.indexOf(name) === -1;
}
}

上記の例では、foo_fooは、クローン作成時に新しいオブジェクトに割り当てられず、new SuperFile(options)optionsで渡されません。

カスタムプロパティまたはロジックがクローン作成中に特別な処理を必要とする場合は、Vinylを拡張しながらcloneメソッドをオーバーライドしてください。