Storing URIs within contract before mint

Hello, I'm very new to solidity, any help on this is appreciated.

I have a typescript file I'm running that uploads all my contract level metadata, photos and images for an NFT project to IPFS, and deploys the contract onto Cronos blockchain. I wanted to add a feature to the script that will upload all of the URIs into the contract as well. The goal is to store the URIs, before any minting actually occurs because I want others to be able to mint from my webpage.

Is it possible to pass in an array of URIs from my typescript into the contract for storage?

Any insight or explanation appreciated.

Just create your base uri to your json file

I don't think there is an issue with base URI.

My mint function requires tokenID and TokenURI to be passed in. TokenID is not an issue because I'm using a counter and just incrementing it each mint within the contract. I am unsure if I should provide a tokenURI when the mint button is clicked from a json file externally, or if instead a tokenURI can be called from storage within the contract where I have stored it prior to minting?

Hopefully this explains my question better.

A json file externally is more better, it would help you save has and you can store on ipfs

I also have the same question. Personally, it's ok for users to save their own tokenURI in a marketplace, where their NFTs are created by themselves. But the tokenURIs of the NFTs are created by the system, so only that system is responsible for setting them. So my temporary solution is using the owner role for that function, but that URI can only be set once.

Is only saved on the market to be easier for the marketplace to access the nft image.... Which they don't have to be loading from ipfs Everytime