Qoa

Nxitje minimale interaktive të linjës së komandës

Header
Sponsorizuar nga:
Better Stack
Zbulo, Zgjidh dhe Parandaloni Kohën e Pushimit.

Përshkrimi

E lehtë dhe pa asnjë varësi të jashtme, qoa ju mundëson të pranoni lloje të ndryshme input-i nga përdoruesi përmes një grupi porosish intuitive, interaktive dhe të hollësishme të linjës së komandës. Biblioteka përdor një sintaksë të thjeshtë dhe minimale të përdorimit dhe përmban 7 ndërfaqe të konfiguruara të konzolës, si tekst i thjeshtë, porosi konfirmimi dhe fjalëkalimi/sekreti si dhe porosi për shtypje të vetme të tastit, quiz dhe menu të shumta zgjedhjeje që mund të navigohen.

Ju mund të mbështetni procesin e zhvillimit përmes GitHub Sponsors.

Vizitoni udhëzimet e kontributit për të mësuar më shumë si të përktheni këtë dokument në më shumë gjuhë.

Veçoritë Kryesore

Përmbajtja

Instalimi

Yarn

yarn add qoa

NPM

npm install qoa

Përdorimi

Importoni qoa dhe filloni të përdorni cilëndo nga porositë e gatshme:

Për të krijuar dhe shfaqur në mënyrë sekvenciale një seri porosish, përdorni funksionin asinkron qoa.prompt. Funksioni pranon si input një varg objektesh ku secili objekt përmban konfigurimin e porosisë përkatëse. Renditja e shfaqjes së porosive bazohet në rendin në të cilin objektet e konfigurimit janë përcaktuar brenda vargut. Funksioni kthën në fund një objekt të ri që përmban përgjigjet e përdoruesit për çdo porosi.

const qoa = require('qoa');

const {log} = console;

const ps = [
  {
    type: 'input',
    query: 'Shkruani emrin tuaj të përdoruesit:',
    handle: 'username'
  },
  {
    type: 'secure',
    query: 'Shkruani fjalëkalimin tuaj:',
    handle: 'password'
  }
];

qoa.prompt(ps).then(log);
//=> { username: 'klaudiosinani', password: 'token' }
Përdorimi

Në alternativa, për raste jo sekvenciale, çdo porosi mund të inicializohet individualisht përmes funksionit asinkron përkatës, me objektin input që përmban veçoritë/konfigurimin e porosisë.

const qoa = require('qoa');

const {log} = console;

const login = async () => {
  const username = await qoa.input({
    query: 'Shkruani emrin tuaj të përdoruesit:',
    handle: 'username'
  });

  const password = await qoa.secure({
    query: 'Shkruani fjalëkalimin tuaj:',
    handle: 'password'
  });

  return Object.assign({}, username, password);
}

login().then(log);
//=> { username: 'klaudiosinani', password: 'token' }

Porositë

Porosia Konfirmuese

Inicializon një porosi input tekstuale me dy opsione prano & refuzo. Bazuar në input-in e dhënë nga përdoruesi, kërkesa e shfaqur nga porosia konfirmohet ose refuzohet. Për të konfirmuar kërkesën, pra për të kthyer true, përdoruesi duhet të japë saktësisht string-un e caktuar prano (mundësisht përputhje e plotë). Për çdo input tjetër, kërkesa refuzohet dhe kthehet false. Vlera e kthimit është një objekt i ri me rezultatin e porosisë të ruajtur nën pronësinë e veçantë handle.

const qoa = require('qoa');

const {log} = console;

const confirm = {
  type: 'confirm',
  query: 'Të përditësohet Qoa në versionin e fundit?',
  handle: 'update',
  accept: 'Y',
  deny: 'n'
};

// duke përdorur metodën asinkrone `prompt`
qoa.prompt([confirm]).then(log);
//=> { update: true }

// duke përdorur metodën asinkrone `confirm`
qoa.confirm(confirm).then(log);
//=> { update: true }
Porosia Konfirmuese

Porosia e Fshehtë

Inicializon një porosi tekstuale ku çdo karakter i shtypur nga përdoruesi fshihet automatikisht. Vlera e kthimit është një objekt i ri me rezultatin e porosisë të ruajtur nën pronësinë e veçantë handle.

const qoa = require('qoa');

const {log} = console;

const hidden = {
  type: 'hidden',
  query: '[sudo] fjalëkalimi për admin:',
  handle: 'sudo'
};

qoa.prompt([hidden]).then(log);
//=> { sudo: 'admin' }

qoa.hidden(hidden).then(log);
//=> { sudo: 'admin' }
Porosia e Fshehtë

Porosia Input

Inicializon një porosi tekstuale ku input-i mund të jepet lirisht nga përdoruesi. Vlera e kthimit është një objekt i ri me rezultatin e porosisë të ruajtur nën pronësinë e veçantë handle.

const qoa = require('qoa');

const {log} = console;

const input = {
  type: 'input',
  query: 'Zgjidhni emrin tuaj të përdoruesit:',
  handle: 'username'
};

qoa.prompt([input]).then(log);
//=> { username: 'klaudiosinani' }

qoa.input(input).then(log);
//=> { username: 'klaudiosinani' }
Porosia Input

Porosia Interaktive

Inicializon një menu porosi interaktive që mund të navigohet, ku përdoruesi mund të navigojë midis një grupi opsionesh dhe të zgjedhë vetëm njërën prej tyre. Opsionet mund të përcaktohen në vargun menu, ndërsa simboli navigues mund të personalizohet përmes opsionit symbol dhe nëse lihet bosh do të përdoret string-u parazgjedhur '>'. Vlera e kthimit është një objekt i ri me opsionin e zgjedhur të ruajtur nën pronësinë e veçantë handle. Menunë interaktive mund të navigoni me shigjetat lart/poshtë ose me tastat k dhe j.

const qoa = require('qoa');

const {log} = console;

const interactive = {
  type: 'interactive',
  query: 'Cila është ëmbëlsira juaj e preferuar?',
  handle: 'treat',
  symbol: '>',
  menu: [
    'Çokollatë',
    'Kapcake',
    'Akullore'
  ]
};

qoa.prompt([interactive]).then(log);
//=> { treat: 'Kapcake' }

qoa.interactive(interactive).then(log);
//=> { treat: 'Kapcake' }
Porosia Interaktive

Porosia Keypress

Inicializon një menu porosi të pa-navigueshme, ku përdoruesi mund të zgjedhë njërën nga opsionet e përcaktuara në vargun menu duke shtypur tastin unik që i korrespondon asaj. Opsionet mund të jenë deri në 9, dhe tastet janë numra të plotë x ku 1 <= x <= 9. Vlera e kthimit është një objekt i ri me opsionin e zgjedhur të ruajtur nën pronësinë e veçantë handle.

const qoa = require('qoa');

const {log} = console;

const keypress = {
  type: 'keypress',
  query: 'Sa të dobishme janë veçoritë e reja?',
  handle: 'features',
  menu: [
    'Meh',
    'Mesatarisht',
    'Shumë',
    'Super'
  ]
};

qoa.prompt([keypress]).then(log);
//=> { features: 'Shumë' }

qoa.keypress(keypress).then(log);
//=> { features: 'Shumë' }
Porosia Keypress

Porosia Quiz

Inicializon një menu quiz interaktive të navigueshme, ku përdoruesi mund të navigojë midis një grupi opsionesh dhe të zgjedhë vetëm njërën prej tyre. Menuja përbëhet nga një numër opsionesh amount, prej të cilave vlera e answer është automatikisht njëra prej tyre, që korrespondon me përgjigjen e saktë për kërkesën, dhe amount - 1 janë zgjedhur rastësisht nga vargu choices. Simboli navigues mund të personalizohet përmes opsionit symbol dhe nëse lihet bosh përdoret string-u parazgjedhur '>'. Vlera e kthimit është një objekt i ri që përmban opsionin e zgjedhur të ruajtur nën pronësinë e veçantë handle dhe një atribut boolean isCorrect, që tregon nëse zgjedhja e bërë nga përdoruesi ka qenë ajo e saktë. Quiz-i mund të navigohet me shigjetat lart/poshtë ose me tastat k dhe j.

const qoa = require('qoa');

const {log} = console;

const quiz = {
  type: 'quiz',
  query: 'Sa larg është hëna nga Toka?',
  handle: 'distance',
  answer: '333400 km',
  symbol: '>',
  amount: 4,
  choices: [
    '190000 km',
    '280500 km',
    '333400 km',
    '560000 km',
    '890500 km'
  ]
};

qoa.prompt([quiz]).then(log);
//=> { distance: { answer: '333400 km', isCorrect: true } }

qoa.quiz(quiz).then(log);
//=> { distance: { answer: '333400 km', isCorrect: true } }
Porosia Quiz

Porosia Secure

Inicializon një porosi tekstuale ku çdo karakter i shtypur nga përdoruesi zëvendësohet automatikisht me simbolin *. Vlera e kthimit është një objekt me rezultatin e porosisë të ruajtur nën pronësinë e veçantë handle.

const qoa = require('qoa');

const {log} = console;

const secure = {
  type: 'secure',
  query: 'Cili është fjalëkalimi juaj:',
  handle: 'password'
};

qoa.prompt([secure]).then(log);
//=> { password: 'password' }

qoa.secure(secure).then(log);
//=> { password: 'password' }
Porosia Secure

Konfigurimi

Qoa mund të konfigurohet në mënyrë kolektive përmes funksionit qoa.config(), i cili pranon një objekt me dy atribute: prefix dhe underlineQuery. Konfigurimi aplikohet për të gjitha porositë që i përkasin instancës së targetuar qoa.

prefix

String që të përfshihet si prefix në kërkesën e çdo porosie.

underlineQuery

Nënvizon kërkesën e çdo porosie.

const qoa = require('qoa');

qoa.config({
  prefix: '>', // Përdor string-un `>` si prefix në të gjitha kërkesat
  underlineQuery: false // Mos nënvizo kërkesat
})

qoa.secure({
  type: 'secure',
  query: 'Shkruani fjalëkalimin tuaj:',
  handle: 'password'
});
//=> > Shkruani fjalëkalimin tuaj: ******

Për personalizim të veçantë janë të disponueshme funksionet prefix dhe underlineQuery.

const qoa = require('qoa');

qoa.prefix('>');

qoa.underlineQuery(false);

qoa.secure({
  type: 'secure',
  query: 'Shkruani fjalëkalimin tuaj:',
  handle: 'password'
});
//=> > Shkruani fjalëkalimin tuaj: ******

API

qoa.prompt([, configObj])

Krijoni dhe shfaqni në mënyrë sekvenciale një seri porosish.

configObj

Objekt që përmban konfigurimin e një porosie. Mund të përmbajë cilindo nga opsionet e dokumentuara më sipër.

qoa.confirm({ type, query, handle, accept, deny })

Krijo dhe shfaq një porosi confirm.

type

Tregon llojin e porosisë.

query

Kërkesa që shfaqet nga porosia.

handle

Emri i atributit nën të cilin do të ruhen përgjigjet e porosisë në objektin e kthyer.

accept

String që duhet të shtypet për të konfirmuar porosinë.

deny

String që duhet të shtypet për të refuzuar porosinë.

qoa.hidden({ type, query, handle })

Krijo dhe shfaq një porosi hidden.

type

Tregon llojin e porosisë.

query

Kërkesa që shfaqet nga porosia.

handle

Emri i atributit nën të cilin do të ruhen përgjigjet e porosisë në objektin e kthyer.

qoa.input({ type, query, handle })

Krijo dhe shfaq një porosi input.

type

Tregon llojin e porosisë.

query

Kërkesa që shfaqet nga porosia.

handle

Emri i atributit nën të cilin do të ruhen përgjigjet e porosisë në objektin e kthyer.

qoa.interactive({ type, query, handle, symbol, menu })

Krijo dhe shfaq një porosi interactive.

type

Tregon llojin e porosisë.

query

Kërkesa që shfaqet nga porosia.

handle

Emri i atributit nën të cilin do të ruhen përgjigjet e porosisë në objektin e kthyer.

symbol

String që përdoret si simbol navigues për menunë.

Vargu që përmban opsionet e menuseve.

qoa.keypress({ type, query, handle, menu })

Krijo dhe shfaq një porosi keypress.

type

Tregon llojin e porosisë.

query

Kërkesa që shfaqet nga porosia.

handle

Emri i atributit nën të cilin do të ruhen përgjigjet e porosisë në objektin e kthyer.

Vargu që përmban opsionet e menuseve.

qoa.quiz({ type, query, handle, answer, symbol, amount, choices })

Krijo dhe shfaq një porosi quiz.

type

Tregon llojin e porosisë.

query

Kërkesa që shfaqet nga porosia.

handle

Emri i atributit nën të cilin do të ruhen përgjigjet e porosisë në objektin e kthyer.

answer

Përgjigja e saktë për quiz-in.

symbol

String që përdoret si simbol navigues për menunë.

amount

Numri i opsioneve të përfshirë në menunë.

choices

Vargu që përmban opsionet e kandidatit të menuseve.

qoa.secure({ type, query, handle })

Krijo dhe shfaq një porosi secure.

type

Tregon llojin e porosisë.

query

Kërkesa që shfaqet nga porosia.

handle

Emri i atributit nën të cilin do të ruhen përgjigjet e porosisë në objektin e kthyer.

qoa.config({ prefix, underlineQuery })

Konfiguro në mënyrë kolektive instancën e qoa.

prefix

String që përfshihet si prefix për çdo kërkesë të porosive.

underlineQuery

Nënvizon kërkesën e çdo porosie.

qoa.prefix(str)

Shton prefix-in str në çdo kërkesë të porosive të instancës targetuar qoa.

str

String që përfshihet si prefix për çdo kërkesë të porosive.

qoa.underlineQuery(status)

Nënvizon kërkesën e çdo porosie te instancës targetuar qoa.

status

Nënvizon kërkesën e çdo porosie.

qoa.clearScreen()

Lëviz kursorin në këndin lart-majtë të konzolës dhe pastron gjithçka poshtë saj.

Zhvillimi

Për më shumë informacion rreth kontributit në projekt, lexoni udhëzimet e kontributit.

Të lidhura

Ekipi

Sponsorët

Falënderim i madh për të gjithë njerëzit dhe kompanitë që mbështesin punën tonë Open Source:

Licenca

MIT