aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShinigami <[email protected]>2022-01-14 17:37:26 +0100
committerDamien Retzinger <[email protected]>2022-01-14 18:37:49 -0500
commit0abec83219a3e070ef9517849df556cad609ec4d (patch)
treee14ff8f81de8cd9596595fb02e63dbb26691955a /src
parent1b1003269ac90db163d4a2c23f5160192add8d6d (diff)
downloadfaker-0abec83219a3e070ef9517849df556cad609ec4d.tar.xz
faker-0abec83219a3e070ef9517849df556cad609ec4d.zip
feat: migrate animal (#105)
Diffstat (limited to 'src')
-rw-r--r--src/animal.ts143
-rw-r--r--src/index.ts3
2 files changed, 145 insertions, 1 deletions
diff --git a/src/animal.ts b/src/animal.ts
new file mode 100644
index 00000000..15932345
--- /dev/null
+++ b/src/animal.ts
@@ -0,0 +1,143 @@
+import type { Faker } from '.';
+
+export class Animal {
+ constructor(private readonly faker: Faker) {
+ // Bind `this` so namespaced is working correctly
+ for (const name of Object.getOwnPropertyNames(Animal.prototype)) {
+ if (name === 'constructor' || typeof this[name] !== 'function') {
+ continue;
+ }
+ this[name] = this[name].bind(this);
+ }
+ }
+
+ /**
+ * dog
+ *
+ * @method faker.animal.dog
+ */
+ dog() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.dog);
+ }
+
+ /**
+ * cat
+ *
+ * @method faker.animal.cat
+ */
+ cat() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.cat);
+ }
+
+ /**
+ * snake
+ *
+ * @method faker.animal.snake
+ */
+ snake() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.snake);
+ }
+
+ /**
+ * bear
+ *
+ * @method faker.animal.bear
+ */
+ bear() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.bear);
+ }
+
+ /**
+ * lion
+ *
+ * @method faker.animal.lion
+ */
+ lion() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.lion);
+ }
+
+ /**
+ * cetacean
+ *
+ * @method faker.animal.cetacean
+ */
+ cetacean() {
+ return this.faker.random.arrayElement(
+ this.faker.definitions.animal.cetacean
+ );
+ }
+
+ /**
+ * horse
+ *
+ * @method faker.animal.horse
+ */
+ horse() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.horse);
+ }
+
+ /**
+ * bird
+ *
+ * @method faker.animal.bird
+ */
+ bird() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.bird);
+ }
+
+ /**
+ * cow
+ *
+ * @method faker.animal.cow
+ */
+ cow() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.cow);
+ }
+
+ /**
+ * fish
+ *
+ * @method faker.animal.fish
+ */
+ fish() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.fish);
+ }
+
+ /**
+ * crocodilia
+ *
+ * @method faker.animal.crocodilia
+ */
+ crocodilia() {
+ return this.faker.random.arrayElement(
+ this.faker.definitions.animal.crocodilia
+ );
+ }
+
+ /**
+ * insect
+ *
+ * @method faker.animal.insect
+ */
+ insect() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.insect);
+ }
+
+ /**
+ * rabbit
+ *
+ * @method faker.animal.rabbit
+ */
+ rabbit() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.rabbit);
+ }
+
+ /**
+ * type
+ *
+ * @method faker.animal.type
+ */
+ type() {
+ return this.faker.random.arrayElement(this.faker.definitions.animal.type);
+ }
+}
diff --git a/src/index.ts b/src/index.ts
index 70f74f4a..0fd77478 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,3 +1,4 @@
+import { Animal } from './animal';
import { Database } from './database';
import { Datatype } from './datatype';
import { _Date } from './date';
@@ -174,7 +175,7 @@ export class Faker {
datatype: Datatype = new Datatype(this);
readonly address = new (require('./address'))(this);
- readonly animal = new (require('./animal'))(this);
+ readonly animal: Animal = new Animal(this);
readonly commerce = new (require('./commerce'))(this);
readonly company = new (require('./company'))(this);
readonly database: Database = new Database(this);