{"version":3,"file":"file.cjs","names":[],"sources":["../../../../../node_modules/mock-fs/lib/file.js"],"sourcesContent":["'use strict';\n\nconst util = require('util');\nconst Item = require('./item.js');\nconst constants = require('constants');\n\nconst EMPTY = Buffer.alloc(0);\n\n/**\n * A file.\n * @class\n */\nfunction File() {\n  Item.call(this);\n\n  /**\n   * File content.\n   * @type {Buffer}\n   */\n  this._content = EMPTY;\n}\nutil.inherits(File, Item);\n\n/**\n * Get the file contents.\n * @return {Buffer} File contents.\n */\nFile.prototype.getContent = function () {\n  this.setATime(new Date());\n  return this._content;\n};\n\n/**\n * Set the file contents.\n * @param {string|Buffer} content File contents.\n */\nFile.prototype.setContent = function (content) {\n  if (typeof content === 'string') {\n    content = Buffer.from(content);\n  } else if (!Buffer.isBuffer(content)) {\n    throw new Error('File content must be a string or buffer');\n  }\n  this._content = content;\n  const now = Date.now();\n  this.setCTime(new Date(now));\n  this.setMTime(new Date(now));\n};\n\n/**\n * Get file stats.\n * @param {boolean} bigint Use BigInt.\n * @return {object} Stats properties.\n */\nFile.prototype.getStats = function (bigint) {\n  const size = this._content.length;\n  const stats = Item.prototype.getStats.call(this, bigint);\n  const convert = bigint ? (v) => BigInt(v) : (v) => v;\n\n  stats[1] = convert(this.getMode() | constants.S_IFREG); // mode\n  stats[8] = convert(size); // size\n  stats[9] = convert(Math.ceil(size / 512)); // blocks\n\n  return stats;\n};\n\n/**\n * Export the constructor.\n * @type {function()}\n */\nmodule.exports = File;\nexports = module.exports;\n\n/**\n * Standard input.\n * @class\n */\nfunction StandardInput() {\n  File.call(this);\n  this.setMode(438); // 0666\n}\nutil.inherits(StandardInput, File);\n\nexports.StandardInput = StandardInput;\n\n/**\n * Standard output.\n * @class\n */\nfunction StandardOutput() {\n  File.call(this);\n  this.setMode(438); // 0666\n}\nutil.inherits(StandardOutput, File);\n\n/**\n * Write the contents to stdout.\n * @param {string|Buffer} content File contents.\n */\nStandardOutput.prototype.setContent = function (content) {\n  if (process.stdout.isTTY) {\n    process.stdout.write(content);\n  }\n};\n\nexports.StandardOutput = StandardOutput;\n\n/**\n * Standard error.\n * @class\n */\nfunction StandardError() {\n  File.call(this);\n  this.setMode(438); // 0666\n}\nutil.inherits(StandardError, File);\n\n/**\n * Write the contents to stderr.\n * @param {string|Buffer} content File contents.\n */\nStandardError.prototype.setContent = function (content) {\n  if (process.stderr.isTTY) {\n    process.stderr.write(content);\n  }\n};\n\nexports.StandardError = StandardError;\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;CAEA,MAAM,OAAO,QAAQ,OAAO;CAC5B,MAAM;CACN,MAAM,YAAY,QAAQ,YAAY;CAEtC,MAAM,QAAQ,OAAO,MAAM,EAAE;;;;;CAM7B,SAAS,OAAO;AACd,OAAK,KAAK,KAAK;;;;;AAMf,OAAK,WAAW;;AAElB,MAAK,SAAS,MAAM,KAAK;;;;;AAMzB,MAAK,UAAU,aAAa,WAAY;AACtC,OAAK,yBAAS,IAAI,MAAM,CAAC;AACzB,SAAO,KAAK;;;;;;AAOd,MAAK,UAAU,aAAa,SAAU,SAAS;AAC7C,MAAI,OAAO,YAAY,SACrB,WAAU,OAAO,KAAK,QAAQ;WACrB,CAAC,OAAO,SAAS,QAAQ,CAClC,OAAM,IAAI,MAAM,0CAA0C;AAE5D,OAAK,WAAW;EAChB,MAAM,MAAM,KAAK,KAAK;AACtB,OAAK,SAAS,IAAI,KAAK,IAAI,CAAC;AAC5B,OAAK,SAAS,IAAI,KAAK,IAAI,CAAC;;;;;;;AAQ9B,MAAK,UAAU,WAAW,SAAU,QAAQ;EAC1C,MAAM,OAAO,KAAK,SAAS;EAC3B,MAAM,QAAQ,KAAK,UAAU,SAAS,KAAK,MAAM,OAAO;EACxD,MAAM,UAAU,UAAU,MAAM,OAAO,EAAE,IAAI,MAAM;AAEnD,QAAM,KAAK,QAAQ,KAAK,SAAS,GAAG,UAAU,QAAQ;AACtD,QAAM,KAAK,QAAQ,KAAK;AACxB,QAAM,KAAK,QAAQ,KAAK,KAAK,OAAO,IAAI,CAAC;AAEzC,SAAO;;;;;;AAOT,QAAO,UAAU;AACjB,WAAU,OAAO;;;;;CAMjB,SAAS,gBAAgB;AACvB,OAAK,KAAK,KAAK;AACf,OAAK,QAAQ,IAAI;;AAEnB,MAAK,SAAS,eAAe,KAAK;AAElC,SAAQ,gBAAgB;;;;;CAMxB,SAAS,iBAAiB;AACxB,OAAK,KAAK,KAAK;AACf,OAAK,QAAQ,IAAI;;AAEnB,MAAK,SAAS,gBAAgB,KAAK;;;;;AAMnC,gBAAe,UAAU,aAAa,SAAU,SAAS;AACvD,MAAI,QAAQ,OAAO,MACjB,SAAQ,OAAO,MAAM,QAAQ;;AAIjC,SAAQ,iBAAiB;;;;;CAMzB,SAAS,gBAAgB;AACvB,OAAK,KAAK,KAAK;AACf,OAAK,QAAQ,IAAI;;AAEnB,MAAK,SAAS,eAAe,KAAK;;;;;AAMlC,eAAc,UAAU,aAAa,SAAU,SAAS;AACtD,MAAI,QAAQ,OAAO,MACjB,SAAQ,OAAO,MAAM,QAAQ;;AAIjC,SAAQ,gBAAgB"}