UNPKG

vegan-ipsum

Version:

Generates passages of vegan-themed placeholder text suitable for use in web pages, graphics, and more. Works in the browser, NodeJS, and React Native.

131 lines (124 loc) 17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _formats = require("../constants/formats"); var _lineEndings = require("../constants/lineEndings"); var _util = require("../util"); var _generator = _interopRequireDefault(require("./generator")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /** * A class for generating vegan ipsum text in various formats and units. */ var VeganIpsum = /*#__PURE__*/function () { /** * Creates an instance of the `VeganIpsum` class. * * @param {IGeneratorOptions} options - Configuration options for the text generator. * @param {LoremFormat} format - The format of the generated text (e.g., plain or HTML). * @param {string} [suffix] - A custom line ending or suffix for the generated text. * @throws {Error} If the provided format is invalid. */ function VeganIpsum() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _formats.FORMAT_PLAIN; var suffix = arguments.length > 2 ? arguments[2] : undefined; _classCallCheck(this, VeganIpsum); this.format = format; this.suffix = suffix; _defineProperty(this, "generator", void 0); if (_formats.FORMATS.indexOf(format.toLowerCase()) === -1) { throw new Error("".concat(format, " is an invalid format. Please use ").concat(_formats.FORMATS.join(" or "), ".")); } this.generator = new _generator["default"](options); } /** * Determines the appropriate line ending based on the environment and suffix. * * @returns {string} The line ending to use. */ return _createClass(VeganIpsum, [{ key: "getLineEnding", value: function getLineEnding() { if (this.suffix) { return this.suffix; } if (!(0, _util.isReactNative)() && (0, _util.isNode)() && (0, _util.isWindows)()) { return _lineEndings.LINE_ENDINGS.WIN32; } return _lineEndings.LINE_ENDINGS.POSIX; } /** * Formats a single string based on the specified format (e.g., wraps in HTML tags if needed). * * @param {string} str - The string to format. * @returns {string} The formatted string. */ }, { key: "formatString", value: function formatString(str) { if (this.format === _formats.FORMAT_HTML) { return "<p>".concat(str, "</p>"); } return str; } /** * Formats an array of strings based on the specified format. * * @param {string[]} strings - The array of strings to format. * @returns {string[]} The array of formatted strings. */ }, { key: "formatStrings", value: function formatStrings(strings) { var _this = this; return strings.map(function (str) { return _this.formatString(str); }); } /** * Generates a specified number of words and formats them. * * @param {number} [num] - The number of words to generate. If not provided, a random number is used. * @returns {string} A formatted string of generated words. */ }, { key: "generateWords", value: function generateWords(num) { return this.formatString(this.generator.generateRandomWords(num)); } /** * Generates a specified number of sentences and formats them. * * @param {number} [num] - The number of sentences to generate. If not provided, a random number is used. * @returns {string} A formatted string of generated sentences. */ }, { key: "generateSentences", value: function generateSentences(num) { return this.formatString(this.generator.generateRandomParagraph(num)); } /** * Generates a specified number of paragraphs and formats them. * * @param {number} num - The number of paragraphs to generate. * @returns {string} A formatted string of generated paragraphs. */ }, { key: "generateParagraphs", value: function generateParagraphs(num) { var makeString = this.generator.generateRandomParagraph.bind(this.generator); return this.formatStrings((0, _util.makeArrayOfStrings)(num, makeString)).join(this.getLineEnding()); } }]); }(); var _default = exports["default"] = VeganIpsum; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZm9ybWF0cyIsInJlcXVpcmUiLCJfbGluZUVuZGluZ3MiLCJfdXRpbCIsIl9nZW5lcmF0b3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfY2xhc3NDYWxsQ2hlY2siLCJhIiwibiIsIlR5cGVFcnJvciIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiciIsInQiLCJsZW5ndGgiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwiX2RlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiU3RyaW5nIiwiTnVtYmVyIiwiVmVnYW5JcHN1bSIsIm9wdGlvbnMiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJmb3JtYXQiLCJGT1JNQVRfUExBSU4iLCJzdWZmaXgiLCJGT1JNQVRTIiwiaW5kZXhPZiIsInRvTG93ZXJDYXNlIiwiRXJyb3IiLCJjb25jYXQiLCJqb2luIiwiZ2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2V0TGluZUVuZGluZyIsImlzUmVhY3ROYXRpdmUiLCJpc05vZGUiLCJpc1dpbmRvd3MiLCJMSU5FX0VORElOR1MiLCJXSU4zMiIsIlBPU0lYIiwiZm9ybWF0U3RyaW5nIiwic3RyIiwiRk9STUFUX0hUTUwiLCJmb3JtYXRTdHJpbmdzIiwic3RyaW5ncyIsIl90aGlzIiwibWFwIiwiZ2VuZXJhdGVXb3JkcyIsIm51bSIsImdlbmVyYXRlUmFuZG9tV29yZHMiLCJnZW5lcmF0ZVNlbnRlbmNlcyIsImdlbmVyYXRlUmFuZG9tUGFyYWdyYXBoIiwiZ2VuZXJhdGVQYXJhZ3JhcGhzIiwibWFrZVN0cmluZyIsImJpbmQiLCJtYWtlQXJyYXlPZlN0cmluZ3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1ZlZ2FuSXBzdW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk9STUFUX0hUTUwsIEZPUk1BVF9QTEFJTiwgRk9STUFUUywgTG9yZW1Gb3JtYXQgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2Zvcm1hdHNcIjtcbmltcG9ydCB7IExJTkVfRU5ESU5HUyB9IGZyb20gXCIuLi9jb25zdGFudHMvbGluZUVuZGluZ3NcIjtcbmltcG9ydCB7IGlzTm9kZSwgaXNSZWFjdE5hdGl2ZSwgaXNXaW5kb3dzLCBtYWtlQXJyYXlPZlN0cmluZ3MgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG5pbXBvcnQgR2VuZXJhdG9yLCB7IElHZW5lcmF0b3JPcHRpb25zIH0gZnJvbSBcIi4vZ2VuZXJhdG9yXCI7XG5cbi8qKlxuICogQSBjbGFzcyBmb3IgZ2VuZXJhdGluZyB2ZWdhbiBpcHN1bSB0ZXh0IGluIHZhcmlvdXMgZm9ybWF0cyBhbmQgdW5pdHMuXG4gKi9cbmNsYXNzIFZlZ2FuSXBzdW0ge1xuICBwdWJsaWMgZ2VuZXJhdG9yOiBHZW5lcmF0b3I7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIGBWZWdhbklwc3VtYCBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHtJR2VuZXJhdG9yT3B0aW9uc30gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRleHQgZ2VuZXJhdG9yLlxuICAgKiBAcGFyYW0ge0xvcmVtRm9ybWF0fSBmb3JtYXQgLSBUaGUgZm9ybWF0IG9mIHRoZSBnZW5lcmF0ZWQgdGV4dCAoZS5nLiwgcGxhaW4gb3IgSFRNTCkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbc3VmZml4XSAtIEEgY3VzdG9tIGxpbmUgZW5kaW5nIG9yIHN1ZmZpeCBmb3IgdGhlIGdlbmVyYXRlZCB0ZXh0LlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHByb3ZpZGVkIGZvcm1hdCBpcyBpbnZhbGlkLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgb3B0aW9uczogSUdlbmVyYXRvck9wdGlvbnMgPSB7fSxcbiAgICBwdWJsaWMgZm9ybWF0OiBMb3JlbUZvcm1hdCA9IEZPUk1BVF9QTEFJTixcbiAgICBwdWJsaWMgc3VmZml4Pzogc3RyaW5nXG4gICkge1xuICAgIGlmIChGT1JNQVRTLmluZGV4T2YoZm9ybWF0LnRvTG93ZXJDYXNlKCkpID09PSAtMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2Zvcm1hdH0gaXMgYW4gaW52YWxpZCBmb3JtYXQuIFBsZWFzZSB1c2UgJHtGT1JNQVRTLmpvaW4oXCIgb3IgXCIpfS5gKTtcbiAgICB9XG4gICAgdGhpcy5nZW5lcmF0b3IgPSBuZXcgR2VuZXJhdG9yKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIGFwcHJvcHJpYXRlIGxpbmUgZW5kaW5nIGJhc2VkIG9uIHRoZSBlbnZpcm9ubWVudCBhbmQgc3VmZml4LlxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgbGluZSBlbmRpbmcgdG8gdXNlLlxuICAgKi9cbiAgcHVibGljIGdldExpbmVFbmRpbmcoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdWZmaXgpIHtcbiAgICAgIHJldHVybiB0aGlzLnN1ZmZpeDtcbiAgICB9XG5cbiAgICBpZiAoIWlzUmVhY3ROYXRpdmUoKSAmJiBpc05vZGUoKSAmJiBpc1dpbmRvd3MoKSkge1xuICAgICAgcmV0dXJuIExJTkVfRU5ESU5HUy5XSU4zMjtcbiAgICB9XG5cbiAgICByZXR1cm4gTElORV9FTkRJTkdTLlBPU0lYO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBzaW5nbGUgc3RyaW5nIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgZm9ybWF0IChlLmcuLCB3cmFwcyBpbiBIVE1MIHRhZ3MgaWYgbmVlZGVkKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIFRoZSBzdHJpbmcgdG8gZm9ybWF0LlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRTdHJpbmcoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gRk9STUFUX0hUTUwpIHtcbiAgICAgIHJldHVybiBgPHA+JHtzdHJ9PC9wPmA7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0cyBhbiBhcnJheSBvZiBzdHJpbmdzIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBzdHJpbmdzIC0gVGhlIGFycmF5IG9mIHN0cmluZ3MgdG8gZm9ybWF0LlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119IFRoZSBhcnJheSBvZiBmb3JtYXR0ZWQgc3RyaW5ncy5cbiAgICovXG4gIHB1YmxpYyBmb3JtYXRTdHJpbmdzKHN0cmluZ3M6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBzdHJpbmdzLm1hcCgoc3RyKSA9PiB0aGlzLmZvcm1hdFN0cmluZyhzdHIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIHdvcmRzIGFuZCBmb3JtYXRzIHRoZW0uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbnVtXSAtIFRoZSBudW1iZXIgb2Ygd29yZHMgdG8gZ2VuZXJhdGUuIElmIG5vdCBwcm92aWRlZCwgYSByYW5kb20gbnVtYmVyIGlzIHVzZWQuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEEgZm9ybWF0dGVkIHN0cmluZyBvZiBnZW5lcmF0ZWQgd29yZHMuXG4gICAqL1xuICBwdWJsaWMgZ2VuZXJhdGVXb3JkcyhudW0/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFN0cmluZyh0aGlzLmdlbmVyYXRvci5nZW5lcmF0ZVJhbmRvbVdvcmRzKG51bSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHNwZWNpZmllZCBudW1iZXIgb2Ygc2VudGVuY2VzIGFuZCBmb3JtYXRzIHRoZW0uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbnVtXSAtIFRoZSBudW1iZXIgb2Ygc2VudGVuY2VzIHRvIGdlbmVyYXRlLiBJZiBub3QgcHJvdmlkZWQsIGEgcmFuZG9tIG51bWJlciBpcyB1c2VkLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBBIGZvcm1hdHRlZCBzdHJpbmcgb2YgZ2VuZXJhdGVkIHNlbnRlbmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZW5lcmF0ZVNlbnRlbmNlcyhudW0/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFN0cmluZyh0aGlzLmdlbmVyYXRvci5nZW5lcmF0ZVJhbmRvbVBhcmFncmFwaChudW0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIHBhcmFncmFwaHMgYW5kIGZvcm1hdHMgdGhlbS5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG51bSAtIFRoZSBudW1iZXIgb2YgcGFyYWdyYXBocyB0byBnZW5lcmF0ZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gQSBmb3JtYXR0ZWQgc3RyaW5nIG9mIGdlbmVyYXRlZCBwYXJhZ3JhcGhzLlxuICAgKi9cbiAgcHVibGljIGdlbmVyYXRlUGFyYWdyYXBocyhudW06IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgbWFrZVN0cmluZyA9IHRoaXMuZ2VuZXJhdG9yLmdlbmVyYXRlUmFuZG9tUGFyYWdyYXBoLmJpbmQodGhpcy5nZW5lcmF0b3IpO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFN0cmluZ3MobWFrZUFycmF5T2ZTdHJpbmdzKG51bSwgbWFrZVN0cmluZykpLmpvaW4odGhpcy5nZXRMaW5lRW5kaW5nKCkpO1xuICB9XG59XG5c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