| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- 'use strict';
- const typeOf = require('kind-of');
- const stringify = require('./stringify');
- const utils = require('./utils');
- /**
- * Normalize the given value to ensure an object is returned
- * with the expected properties.
- */
- module.exports = function(file) {
- if (typeOf(file) !== 'object') {
- file = { content: file };
- }
- if (typeOf(file.data) !== 'object') {
- file.data = {};
- }
- // if file was passed as an object, ensure that
- // "file.content" is set
- if (file.contents && file.content == null) {
- file.content = file.contents;
- }
- // set non-enumerable properties on the file object
- utils.define(file, 'orig', utils.toBuffer(file.content));
- utils.define(file, 'language', file.language || '');
- utils.define(file, 'matter', file.matter || '');
- utils.define(file, 'stringify', function(data, options) {
- if (options && options.language) {
- file.language = options.language;
- }
- return stringify(file, data, options);
- });
- // strip BOM and ensure that "file.content" is a string
- file.content = utils.toString(file.content);
- file.isEmpty = false;
- file.excerpt = '';
- return file;
- };
|