This library was generated with Angular CLI version 19.2.0.
Trying to think about new user, contact or customer data can be tricky, so here's a simple library to make some of the job a little easier.
If you are using non-standalone components, add the EctRandomDataService to your Modules' or AppComponent's Providers list. If using standalone components, this last sentence can be skipped. Inject the service into the constructor of your class.
As an example, if we want to create a UserRecordFetchService service class to create a random list of User records, this is what we do.
First, let's define a User interface under a models folder, calling the file users.models.ts:
export interface IUser {
id: number;
firstName: string;
lastName: string;
age: number;
dob: Date;
connected: Date,
assets: number;
}
Then to get a create a service class to mock between 100 and 250 records, we use the following:
import { Injectable } from '@angular/core';
import { EctNgLinqService } from 'ect-ng-linq';
import { EctRandomDataService } from 'ect-random-data';
import { IUser, User } from './../models/users.models';
@Injectable()
export class UserRecordFetchService {
private usersList = this.ngLinqService.createNgLinq<IUser>();
constructor(private randomDataService: EctRandomDataService, private ngLinqService: EctNgLinqService) { }
populateUserRecords(): void {
const recordCount = this.randomDataService.getRandomNumberBetweenTwoValues(100, 250);
for(let ii = 1; ii <= recordCount; ii++) {
const userRecord = new User();
userRecord.id = ii;
userRecord.firstName = this.randomDataService.getAnyFirstName();
userRecord.lastName = this.randomDataService.getLastName();
userRecord.dob = this.randomDataService.getDateOfBirth();
userRecord.age = this.randomDataService.getAgeFromDate(userRecord.dob);
const hours = this.randomDataService.getRandomNumberBetweenTwoValues(8, 21);
const minutes = this.randomDataService.getRandomNumberBetweenTwoValues(0, 59);
const seconds = this.randomDataService.getRandomNumberBetweenTwoValues(0, 59);
const day = this.randomDataService.getRandomNumberBetweenTwoValues(1, 28);
const month = this.randomDataService.getRandomNumberBetweenTwoValues(1, 12);
const year = this.randomDataService.getRandomNumberBetweenTwoValues(2010, 2022);
userRecord.connected = new Date(year, month, day, hours, minutes, seconds);
userRecord.assets = this.randomDataService.getRandomNumberBetweenTwoValues(100, 1000000) / this.randomDataService.getRandomNumberBetweenTwoValues(11, 29);
this.usersList.add(userRecord);
}
}
getUserRecords(): NgLinqArray<IUser> {
return this.usersList;
}
}
In the above class we have to import the NgLinqService service dependency and then the EctRandomData service, before we do anything else.
The populateUserRecords sets a recordCount variable to hold a random number between 100 and 250.
The loop then iterates between 1 and recordCount creating a new User record, setting it's properties to use random data, before adding the user record to the userList array.
The following functions are available from the IEctRandomDataService interface:
-
getRandomNumberBetweenTwoValues: Get a random number between 2 whole numbers.
-
getGirlFirstNames: Get a list of girl names.
-
getBoyFirstNames: Get a list of boy names.
-
getAllFirstNames: Get a list of first names, regardless of gender.
-
getLastNames: Get a list of last names.
-
getAnyFirstName: Get a random first name, regardless of gender.
-
getGirlFirstName: Get a random first name for a girl.
-
getBoyFirstName: Get a random first name for a boy.
-
getLastName: Get a random last name.
-
isBoyName: Determine whether a name is for a boy. If false, then it's a girl's name.
-
getDateOfBirth: Get a date of birth from 1970-01-01 onwards.
-
getAgeFromDate: Get the age from a date. Assumes a date from 1970-01-01 onwards.
This library does use, and therefore depends on the ECT NgLinq library. More details can be found here: (https://www.npmjs.com/package/ect-ng-linq)
If you find some benefit from using this package, please consider the time it took to put this together, and why not buy me a coffee? Goodness only knows that most of us would not function without coffee. All donations very much welcomed: (https://www.buymeacoffee.com/exoduscloudtech)
To get more help on the this ECT Random Data, please visit (https://angular-grid.net/free/ect-random-data)