This may be due to intestinal upset from a change in food, intestinal parasites such as worms, coccidia, or giardia, or he could have a viral infection starting too if he is not up to date on shots.
This could also be due to a swallowed non food item, ingestion of something toxic including plants, mushrooms, chemicals etc.
With a small dog another issue may be pancreatic inflammation which you can read about here
Pancreas issues are a known problem in this breed so that might be the issue particularly if he had a fatty treat before the episode began.
So seeing the vet to find out what is going on should be a priority.
An over the counter med you might try would be Pepcid or Tagamet or Zantac.
Be sure to tell the vet when you see them if you use any of these.
You can read about dose amounts (and cautions) scrolling down on the pages here
If that helps then you can see if some bland food and plain pedialyte added to the water bowl will help.
I would suggest trying boiled chicken meat or hamburger with the fat drained off, mixed with really well cooked rice in a ratio of 1/3 meat to 2/3 rice to see if that works. It's not a balanced diet but OK to use for a few meals while working on controlling digestive upset.
But if he is vomiting a lot, then if you can see your vet with him today you should try to do so.
Dogs that are vomiting can end up dehydrated pretty quickly.
You can check for dehydration by pulling the skin gently up over his shoulders in a 'tent' and release it. If it goes right back down that is good but if some stays stuck up that’s a dehydration indicator.
Hope this helps you!