json-contract
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

json-contract

NPM version

Установка

Модуль может быть использовать как для NodeJs, так и для браузера. Уставнока с помощью npm:

npm i json-contract --save

Краткое описание

Данный модуль создания продаж "сложных" (комплексных, составных) продуктов. Продукт может содержать в себе вложенные продукты, которые в свою очередь могут менять стоимость, время и доставки и прочие параметры итогового продукта. Например, продаётся ПК. ПК с одной стороны является единицей, а с другой стороны он состоит из разных частей, каждая из которых влияет на итоговый продукт. Предположим, что пользователю дано первым выбрать одну из материнских плат, указанных в списке. От этого выбора сильно зависят последующие варианты выбора при заполнении данного продукта (ПК). Для этого и создан этот модуль -- реализовать создание таких составных продуктов.

Использование

// require classes
const ProductContractD = require('json-contract').ProductContractD;
const DiscountContract = require('json-contract').DiscountContract;
const DocumentD = require('json-contract').DocumentD;

// create contract from JSON file
const pcdJson = require('json-contract/example/contracts/contract1');
const pc1 = ProductContractD.build(pcdJson);

// create document from JSON file
const doc1 = new DocumentD(pc1);

// create discount from JSON file
const discountJson = require('json-contract/example/discounts/discount1');
const dc1 = DiscountContract.build(discountJson);

//add new value to document
doc1.addOption('name', 'Some name'); // return true is success

// validate document
doc1.check(); // return true is success

// get rejection reason
doc1.getRejectReason(); // return Reason

// get value of `name`
doc1.getValue('name'); // return `Some name` 

// add discount to document
doc1.addDiscount(dc1); // return true is success

// processing
doc1.processing(); // return true is success

// `dry` document
const result = doc1.dry(); 
console.log(result);

Больше примеров

Больше примеров в папке /example. Файл index.js содержит 5 функций-примеров использования, в остальных папках разложены Documents, ProductContracts и DiscountContracts для этих примеров.

/json-contract/

    Package Sidebar

    Install

    npm i json-contract

    Weekly Downloads

    0

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    580 kB

    Total Files

    154

    Last publish

    Collaborators

    • xziy