@techlution/form-builder

0.2.7 • Public • Published

Techlution Form Builder

npm

A Form Builder service Powered by Techlution Version: Alpha Snyk Vulnerabilities for npm package

node-current (scoped) npm peer dependency version (scoped)

Install

$ npm install @techlution/form-builder

Setup

At your system entry point, you will have to initiate and provide your API key.

require('@techlution/form-builder').config({
    apiKey: '<your api key>',
    env: 'dev|stag|prod'
})

Quick Start Guide

Form

const { Form } = require('@techlution/form-builder');

// create a Form instance
const form = new Form({
     name: '<form name>', 
     description: '<form description>', 
});

Section

// add a Section with default behaviour
const section = await form.addSection();

// or create a standalone Section and add it to the form
const { Section } = require('@techlution/form-builder');
const section2 = new Section();
await form.addSection(section2);

Question

// finally, add a Question to the Section
const question = await section.addQuestion({
    displayText: 'Testing Question',
    key: 'test',
});

// or, similar to Section, create a Question and add it to the section
const { Question } = require('@techlution/form-builder');
const question2 = new Question({
   displayText: 'Testing Question',
   key: 'test',
});
await section.addQuestion(question2);

// how about a list of questions?
const Questions = await section.addQuestions([
    {
        displayText: 'Testing Question',
        key: 'test',
    },
    new Question({
        displayText: 'Testing Question',
        key: 'test',
    }),
]);

Form Usage

// start a form filling session
const { Session } = require('@techlution/form-builder');

const session = await Session.start({ Form: form.id });

// then get the current section and questions
const section = await session.getSection();
const questions = section.Questions;

// skipping a section
const nextSection = await session.getNextSection();

// go back to the previous section
const previousSection = await nextSection.getPreviousSection();
section.id === previousSection.id // true

// submit answer
const answers = { answer1: true }
await session.submit(answers);

// retrieve all answers
const { Values } = session;

Deletion

await Question.delete(id);
await questionInstance.delete();

await Section.delete(id);
await sectionInstance.delete();

await Form.delete(id);
await formInstance.delete();

await Session.delete(id);
await sessionInstance.delete();

Road Map

  • [x] Create a Form
  • [x] Create Sections in a Form
  • [x] Create Questions in a Section
  • [x] Create a Form filling Session
  • [x] Create a Section in a Form
  • [x] Resume a Section
  • [x] Skip a Section
  • [x] Go back to Previous Section
  • [x] Submit Answers
  • [x] Finish the Form
  • [x] Export the values
  • [x] Delete Resources
  • [ ] Create Question Template
  • [ ] Create Session Template

Readme

Keywords

none

Package Sidebar

Install

npm i @techlution/form-builder

Weekly Downloads

7

Version

0.2.7

License

ISC

Unpacked Size

35.2 kB

Total Files

25

Last publish

Collaborators

  • uzelux.techlution