Friendly Project Name Generator with Zeit

J'ai quelques idées de projets qui facilitent la création de sites sur le Web. L'une des idées est de créer un projet netlify-like drag and drop interface pour zeit (j'aime zeit mais cela nécessite un peu de cli magie à déployer).

Cet article ne couvre qu'un petit morceau du casse-tête: créer des noms de projets.

Glitch est un bon exemple. Lorsque vous créez un projet, il lui donne un nom fantaisiste généré aléatoirement. L’équipe a également créé un good dictionary of fairly safe words qui combine bien (et si vous le souhaitez, ils ont un serveur simple à héberger).

Le projet parallèle de ce dimanche consistait donc à créer un micro-service simple permettant de générer des noms de projet aléatoires à l’aide de serverless-functions de Zeit et du dictionnaire de Glitch.

And here it is ( code ), c'est assez court et pas trop complexe.

const words = require("friendly-words");

function generate(count = 1, separator = "-") {
  const { predicates, objects } = words;
  const pCount = predicates.length;
  const oCount = objects.length;
  const output = [];

  for (let i = 0; i < count; i++) {
    const pair = [predicates[Math.floor(Math.random() * pCount)], objects[Math.floor(Math.random() * oCount)]];
    output.push(pair.join(separator));
  }

  return output;
}

module.exports = { generate }

Si vous ne souhaitez pas l'inclure directement dans votre projet, vous pouvez utiliser le point de terminaison HTTP pour générer des noms de projet aléatoires (sous la forme "XY") en envoyant une demande Web à l'adresse https: // nom-projet-convivial. kinlan.now.sh/api/names, qui retournera quelque chose comme ce qui suit.

["momentous-professor"]

Vous pouvez également contrôler le nombre de noms à générer avec le paramètre de chaîne de requête count = x , par exemple https://friendly-project-name.kinlan.now.sh/api/names?count=100.

["melon-tangerine","broad-jury","rebel-hardcover","far-friend","notch-hornet","principled-wildcat","level-pilot","steadfast-bovid","holistic-plant","expensive-ulna","sixth-gear","political-wrench","marred-spatula","aware-weaver","awake-pair","nosy-hub","absorbing-petunia","rhetorical-birth","paint-sprint","stripe-reward","fine-guardian","coconut-jumbo","spangle-eye","sudden-euphonium","familiar-fossa","third-seaplane","workable-cough","hot-light","diligent-ceratonykus","literate-cobalt","tranquil-sandalwood","alabaster-pest","sage-detail","mousy-diascia","burly-food","fern-pie","confusion-capybara","harsh-asterisk","simple-triangle","brindle-collard","destiny-poppy","power-globeflower","ruby-crush","absorbed-trollius","meadow-blackberry","fierce-zipper","coal-mailbox","sponge-language","snow-lawyer","adjoining-bramble","deserted-flower","able-tortoise","equatorial-bugle","neat-evergreen","pointy-quart","occipital-tax","balsam-fork","dear-fairy","polished-produce","darkened-gondola","sugar-pantry","broad-slouch","safe-cormorant","foregoing-ostrich","quasar-mailman","glittery-marble","abalone-titanosaurus","descriptive-arch","nickel-ostrich","historical-candy","mire-mistake","painted-eater","pineapple-sassafras","pastoral-thief","holy-waterlily","mewing-humor","bubbly-cave","pepper-situation","nosy-colony","sprout-aries","cyan-bestseller","humorous-plywood","heavy-beauty","spiral-riverbed","gifted-income","lead-kiwi","pointed-catshark","ninth-ocean","purple-toucan","tundra-cut","coal-geography","icy-lunaria","agate-wildcat","respected-garlic","polar-almandine","periodic-narcissus","carbonated-waiter","lavish-breadfruit","confirmed-brand","repeated-period"]

Vous pouvez contrôler separator avec le paramètre query-string de separator. c'est-à-dire, separator = @, par exemple https://friendly-project-name.kinlan.now.sh/api/names?separator=@

["handsomely@asterisk"]

Un aspect très utile de ce projet est que, si une combinaison de mots a tendance à être offensante, il est facile de mettre à jour le rapport Glitch pour s’assurer que cela ne se reproduise plus.

En supposant que l'hébergement du projet ne soit pas trop coûteux, je maintiendrai le service, mais n'hésitez pas à le cloner vous-même si vous souhaitez un jour créer un micro-service similaire.

Exemple live

Ce qui suit est un exemple très rapide de l’API en action.

const render = (promise, elementId) => {
  promise.then(async(response) => {
    const el = document.getElementById(elementId);
    el.innerText = await response.text();
  })
};


onload = () => {
  render(fetch("https://friendly-project-name.kinlan.now.sh/api/names"), "basic");
  render(fetch("https://friendly-project-name.kinlan.now.sh/api/names?count=100"), "many");
  render(fetch("https://friendly-project-name.kinlan.now.sh/api/names?separator=@"), "separator");
}

réponse unique



Beaucoup de réponses



Séparateurs personnalisés



{{<raw-html>}}

{{</ raw-html>}}

Paul Kinlan

Trying to make the web and developers better.

RSS Github Medium