aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarak <[email protected]>2020-08-25 15:45:18 -0500
committerGitHub <[email protected]>2020-08-25 15:45:18 -0500
commit4644f370b69412fea3d1d8471a14a040e30265b3 (patch)
tree7fe283598ded985f2b7c5b5206c5dfc28e823304 /lib
parent95b1c095d4feb3275b1fbc345e26ff371bf24640 (diff)
parent8f4c8322f299940e741eb2391a714bcad87a9474 (diff)
downloadfaker-4644f370b69412fea3d1d8471a14a040e30265b3.tar.xz
faker-4644f370b69412fea3d1d8471a14a040e30265b3.zip
Merge pull request #855 from abnersajr/fix-797
Adds Lorem Picsum as image provider
Diffstat (limited to 'lib')
-rw-r--r--lib/image.js3
-rw-r--r--lib/image_providers/lorempicsum.js108
2 files changed, 111 insertions, 0 deletions
diff --git a/lib/image.js b/lib/image.js
index 271b62f6..3f50d78f 100644
--- a/lib/image.js
+++ b/lib/image.js
@@ -3,6 +3,7 @@
* @namespace faker.image
* @property {object} lorempixel - faker.image.lorempixel
* @property {object} unsplash - faker.image.unsplash
+ * @property {object} unsplash - faker.image.lorempicsum
* @default Default provider is unsplash image provider
*/
var Image = function (faker) {
@@ -10,6 +11,7 @@ var Image = function (faker) {
var self = this;
var Lorempixel = require('./image_providers/lorempixel');
var Unsplash = require('./image_providers/unsplash');
+ var LoremPicsum = require('./image_providers/lorempicsum');
/**
* image
@@ -218,6 +220,7 @@ var Image = function (faker) {
self.lorempixel = new Lorempixel(faker);
self.unsplash = new Unsplash(faker);
+ self.lorempicsum = new LoremPicsum(faker);
// Object.assign(self, self.unsplash);
// How to set default as unsplash? should be image.default?
diff --git a/lib/image_providers/lorempicsum.js b/lib/image_providers/lorempicsum.js
new file mode 100644
index 00000000..fbb6b65f
--- /dev/null
+++ b/lib/image_providers/lorempicsum.js
@@ -0,0 +1,108 @@
+/**
+ *
+ * @namespace lorempicsum
+ * @memberof faker.image
+ */
+var LoremPicsum = function (faker) {
+
+ var self = this;
+
+ /**
+ * image
+ *
+ * @param {number} width
+ * @param {number} height
+ * @param {boolean} grayscale
+ * @param {number} blur 1-10
+ * @method faker.image.lorempicsum.image
+ * @description search image from unsplash
+ */
+ self.image = function (width, height, grayscale, blur) {
+ return self.imageUrl(width, height, grayscale, blur);
+ };
+ /**
+ * imageGrayscaled
+ *
+ * @param {number} width
+ * @param {number} height
+ * @param {boolean} grayscale
+ * @method faker.image.lorempicsum.imageGrayscaled
+ * @description search grayscale image from unsplash
+ */
+ self.imageGrayscale = function (width, height, grayscale) {
+ return self.imageUrl(width, height, grayscale);
+ };
+ /**
+ * imageBlurred
+ *
+ * @param {number} width
+ * @param {number} height
+ * @param {number} blur 1-10
+ * @method faker.image.lorempicsum.imageBlurred
+ * @description search blurred image from unsplash
+ */
+ self.imageBlurred = function (width, height, blur) {
+ return self.imageUrl(width, height, undefined, blur);
+ };
+ /**
+ * imageRandomSeeded
+ *
+ * @param {number} width
+ * @param {number} height
+ * @param {boolean} grayscale
+ * @param {number} blur 1-10
+ * @param {string} seed
+ * @method faker.image.lorempicsum.imageRandomSeeded
+ * @description search same random image from unsplash, based on a seed
+ */
+ self.imageRandomSeeded = function (width, height, grayscale, blur, seed) {
+ return self.imageUrl(width, height, grayscale, blur, seed);
+ };
+ /**
+ * avatar
+ *
+ * @method faker.image.lorempicsum.avatar
+ */
+ self.avatar = function () {
+ return faker.internet.avatar();
+ };
+ /**
+ * imageUrl
+ *
+ * @param {number} width
+ * @param {number} height
+ * @param {boolean} grayscale
+ * @param {number} blur 1-10
+ * @param {string} seed
+ * @method faker.image.lorempicsum.imageUrl
+ */
+ self.imageUrl = function (width, height, grayscale, blur, seed) {
+ var width = width || 640;
+ var height = height || 480;
+
+ var url = 'https://picsum.photos';
+
+ if (seed) {
+ url += '/seed/' + seed;
+ }
+
+ url += '/' + width + '/' + height;
+
+ if (grayscale && blur) {
+ return url + '?grayscale' + '&blur=' + blur;
+ }
+
+ if (grayscale) {
+ return url + '?grayscale';
+ }
+
+ if (blur) {
+ return url + '?blur=' + blur;
+ }
+
+ return url;
+ };
+ }
+
+ module["exports"] = LoremPicsum;
+ \ No newline at end of file