Hello , To experiment with the wonderful brand new dynamic-import-plugin I decided to try implementing this new feature on my generator for 164K first names of people , which you can find here .

The source of the names can be found here : https://github.com/Debdut/names.io

My goal here was to find a “good general solution” with the dynamic-import-plugin that I can implement for more important generators with larger datasets in the future.

The dynamic-import-plugin great improvement ; I can get access to the full list of names without long loading times. But I also have some new problems.

Question 1 (main issue)

I have this issue where the the imported values will occasionally read as ‘undefined’ when I import stuff. You can see it in the image above.

Here is what the sub-generator fusion-t2i-names-12 looks like :

What are the recommendations to solving this?

EDIT: Many names in this dataset contain non-standard letters , e.g different from A-Z. I am starting to suspect that might be the issue. In which case , should I just put [String(“…”)] over every name with non-standard letters or is there a better way?

Question 2 (secondary)

TLDR : “Am I coding this correctly?”

When I request 100 values at once from a loaded generator I initially get the “freeze” mentioned in the Dynamic Import Plugin Guide.

I’d like for an entire 10K dataset to be loaded when the generator opens . How do I do this?

Reading the code , my interpretation is that I am already doing this.

But it feels like I’m missing something here since I still get a significant “freeze” when requesting items after startup, hence the question.

Question 3 (non-essential)

In the fusion-t2i-names-12 I have this textfields where a user can press a button and get some some values for the dataset.

It would be nice to be able to display these values fusion-t2i-names-12 but I have no idea how to do this since the “_data” is placed in the $output field.

I don’t want to copy paste _data as that would mean my 10K sub-set of words is now a 20K subset of words.

I assume that would impact the “main generator” if I did this and cause even more loading times.

But I’m not sure. I’m fine with copy-pasting as long as it won’t affect the main generator. What should I do here?

  • perchance@lemmy.worldM
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    3 months ago

    Question 1: After some investigation, I’m pretty sure this is because some of your names lists like https://perchance.org/fusion-t2i-names-10#edit have this structure:

    $output
      _firstNames
        _data
          lauren-rose
          ...
    

    Whereas the others have:

    $output
      _data
        lauren-rose
        ...
    

    Also, I’m curious where you’ve ran into problems that required you to add [String("blah")] instead of just ["blah"] or even just blah for an individual list item like in your _firstNameGenerators list? Asking this just in case it was because you were working around a bug in the perchance engine that could be fixed.

    Question 2: I think you’d want to use the “preload” feature here - check the dynamic-import-plugin page for info on that and let me know if that doesn’t help. Basically it allows you to load a gen’s data in the background by just executing [dynamicImport('animal', 'preload')] wherever/whenever, so that when it comes to actually using the animal gen with e.g. [a = dynamicImport('animal').selectOne], you don’t get a freeze. The preloads can run concurrently/in-parallel, whereas when you just do a plain dynamic import, they need to happen one-by-one, which means that the freeze will be 17x longer if you’re dynamically importing 17 (non-preloaded) generators back-to-back, like your gen is doing here.

    Question 3: I might need you to expand on the problem here or explain it with a simple example, or maybe someone else can chime in. Note that you can use $output directly just like you would a normal list. So you can write e.g. [foo = $output._data.selectOne]

    • AdComfortable1514@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      3 months ago

      Thanks for the help! I followed your advice things work fine now. https://perchance.org/fusion-t2i-names.

      The reason why I wrote [String(“…”)] earlier was as an extra precaution , not due to any import issues. I’ve removed them in this version.

      The dynamic-import-plugin is a really good plugin :)!

    • allo@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 months ago

      chimed

      edit: tho now reading your full comment i think i just repeated what you said basically except wronger

  • allo@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago

    chime chime chime

    time to chime in

    for question 3:

    wouldn’t it be just [$output._data]?

    i say because i learned in plugins like this to just do [$output()] and in your case the $output instead of being a function is an object with a subobject that is a list