Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow Faker to Take Initial Seed on Construction #3008

Closed
xDivisionByZerox opened this issue Jul 12, 2024 · 2 comments · Fixed by #3220
Closed

Allow Faker to Take Initial Seed on Construction #3008

xDivisionByZerox opened this issue Jul 12, 2024 · 2 comments · Fixed by #3220
Assignees
Labels
c: feature Request for new feature p: 1-normal Nothing urgent
Milestone

Comments

@xDivisionByZerox
Copy link
Member

Clear and concise description of the problem

As a developer I want to be able to directly provide a seed when creating a new faker instance. Currently I have to write a separate line mutation the faker instance to configure it the way I want. I feel like it would be good DX to directly create a desired faker instance without having to call additional configuration methods.

Suggested solution

Add initialSeed property to the faker constructor, which will set the seed of the internal randomizer instance on creation.

const faker = new Faker({ locale: [base] });
faker.seed(123);

// alternative
const faker = new Faker({ locale: [base], initialSeed: 123 });

Alternative

Make Faker#seed chainable and return a reference to the current instance. That way I can at leas write it in a shorter way.

// now
const faker = new Faker({ locale: [base] });
faker.seed(123);

// alternative
const faker = new Faker({ locale: [base] }).seed(123);

Additional context

Same could be argued for setDefaultRefDate which could be present as a parameter in Fakers constructor.

@xDivisionByZerox xDivisionByZerox added c: feature Request for new feature s: waiting for user interest Waiting for more users interested in this feature labels Jul 12, 2024
Copy link
Contributor

Thank you for your feature proposal.

We marked it as "waiting for user interest" for now to gather some feedback from our community:

  • If you would like to see this feature be implemented, please react to the description with an up-vote (:+1:).
  • If you have a suggestion or want to point out some special cases that need to be considered, please leave a comment, so we are aware about them.

We would also like to hear about other community members' use cases for the feature to give us a better understanding of their potential implicit or explicit requirements.

We will start the implementation based on:

  • the number of votes (:+1:) and comments
  • the relevance for the ecosystem
  • availability of alternatives and workarounds
  • and the complexity of the requested feature

We do this because:

  • There are plenty of languages/countries out there and we would like to ensure that every method can cover all or almost all of them.
  • Every feature we add to faker has "costs" associated to it:
    • initial costs: design, implementation, reviews, documentation
    • running costs: awareness of the feature itself, more complex module structure, increased bundle size, more work during refactors

View more issues which are waiting for user interest

@ST-DDT ST-DDT added the p: 1-normal Nothing urgent label Jul 12, 2024
@ST-DDT ST-DDT added this to the vFuture milestone Jul 12, 2024
@ST-DDT ST-DDT self-assigned this Oct 24, 2024
@ST-DDT ST-DDT removed the s: waiting for user interest Waiting for more users interested in this feature label Oct 24, 2024
@ST-DDT ST-DDT modified the milestones: vFuture, vAnytime Oct 24, 2024
@ST-DDT
Copy link
Member

ST-DDT commented Oct 24, 2024

This looks sufficiently requested by our users and looks like it is relatively easy to add.

I'll go ahead and provide a PR to implement this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: feature Request for new feature p: 1-normal Nothing urgent
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants