diff options
| author | Shinigami <[email protected]> | 2022-05-03 15:48:20 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-05-03 15:48:20 +0200 |
| commit | a2da7c496e9a3741d165ddfe6128b50837fec361 (patch) | |
| tree | 88d371bc19487bc8a34d9043035aed8e4fedd7d5 /src/commerce.ts | |
| parent | cc46a0c19af2752b6210c24b715fcce20197b6d9 (diff) | |
| download | faker-a2da7c496e9a3741d165ddfe6128b50837fec361.tar.xz faker-a2da7c496e9a3741d165ddfe6128b50837fec361.zip | |
refactor!: reorganize src folder (#909)
Diffstat (limited to 'src/commerce.ts')
| -rw-r--r-- | src/commerce.ts | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/src/commerce.ts b/src/commerce.ts deleted file mode 100644 index 754fe73a..00000000 --- a/src/commerce.ts +++ /dev/null @@ -1,133 +0,0 @@ -import type { Faker } from '.'; - -/** - * Module to generate commerce and product related entries. - */ -export class Commerce { - constructor(private readonly faker: Faker) { - // Bind `this` so namespaced is working correctly - for (const name of Object.getOwnPropertyNames(Commerce.prototype)) { - if (name === 'constructor' || typeof this[name] !== 'function') { - continue; - } - this[name] = this[name].bind(this); - } - } - - /** - * Returns a human readable color name. - * - * @example - * faker.commerce.color() // 'red' - */ - color(): string { - return this.faker.helpers.arrayElement( - this.faker.definitions.commerce.color - ); - } - - /** - * Returns a department inside a shop. - * - * @example - * faker.commerce.department() // 'Garden' - */ - department(): string { - return this.faker.helpers.arrayElement( - this.faker.definitions.commerce.department - ); - } - - /** - * Generates a random descriptive product name. - * - * @example - * faker.commerce.productName() // 'Incredible Soft Gloves' - */ - productName(): string { - return `${this.productAdjective()} ${this.productMaterial()} ${this.product()}`; - } - - /** - * Generates a price between min and max (inclusive). - * - * @param min The minimum price. Defaults to `1`. - * @param max The maximum price. Defaults to `1000`. - * @param dec The number of decimal places. Defaults to `2`. - * @param symbol The currency value to use. Defaults to `''`. - * - * @example - * faker.commerce.price() // 828.00 - * faker.commerce.price(100) // 904.00 - * faker.commerce.price(100, 200) // 154.00 - * faker.commerce.price(100, 200, 0) // 133 - * faker.commerce.price(100, 200, 0, '$') // $114 - */ - price( - min: number = 1, - max: number = 1000, - dec: number = 2, - symbol: string = '' - ): string { - if (min < 0 || max < 0) { - return `${symbol}${0.0}`; - } - - const randValue = this.faker.datatype.number({ max: max, min: min }); - - return ( - symbol + - (Math.round(randValue * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed( - dec - ) - ); - } - - /** - * Returns an adjective describing a product. - * - * @example - * faker.commerce.productAdjective() // 'Handcrafted' - */ - productAdjective(): string { - return this.faker.helpers.arrayElement( - this.faker.definitions.commerce.product_name.adjective - ); - } - - /** - * Returns a material of a product. - * - * @example - * faker.commerce.productMaterial() // 'Rubber' - */ - productMaterial(): string { - return this.faker.helpers.arrayElement( - this.faker.definitions.commerce.product_name.material - ); - } - - /** - * Returns a short product name. - * - * @example - * faker.commerce.product() // 'Computer' - */ - product(): string { - return this.faker.helpers.arrayElement( - this.faker.definitions.commerce.product_name.product - ); - } - - /** - * Returns a product description. - * - * @example - * faker.commerce.productDescription() // 'Andy shoes are designed to keeping...' - */ - productDescription(): string { - return this.faker.helpers.arrayElement( - this.faker.definitions.commerce.product_description - ); - } -} |
