devsite/node_modules/gray-matter/lib/to-file.js
2024-07-07 18:49:38 -07:00

44 lines
1.1 KiB
JavaScript

'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;
};