1.1.0 • Published 3 years ago

@kkday/web-js-lib v1.1.0

Weekly downloads
15
License
MIT
Repository
github
Last release
3 years ago

@kkday/web-js-lib

npm (scoped)

Install

$ npm install @kkday/web-js-lib

Usage

SkuCalculator

Calculate valid sku, amount, price and detail status of each spec according to selected specs.

// load SkuCalculator into project
import { SkuCalculator } from '@kkday/web-js-lib';

// specs
const specs = {
	depart: [
		'Taipei',
		'Kaohsiung',
	],
	arrive: [
		'Taipei',
		'Kaohsiung',
	],
	age: [
		'adult',
		'child',
	],
};

// skus composed with spec combination, amount and price
const skus = [
	{
		spec: {
			age: 'adult',
			depart: 'Taipei',
			arrive: 'Kaohsiung'
		},
		amount: 5,
		price: 1000,
	},
	{
		spec: {
			age: 'child',
			depart: 'Taipei',
			arrive: 'Kaohsiung'
		},
		amount: 3,
		price: 500,
	},
	{
		spec: {
			age: 'adult',
			depart: 'Kaohsiung',
			arrive: 'Taipei'
		},
		amount: 4,
		price: 800,
	},
	{
		spec: {
			age: 'child',
			depart: 'Kaohsiung',
			arrive: 'Taipei'
		},
		amount: 2,
		price: 400,
	},
];

// define which spec(s) make sku(s) primary
const primarySpecs = {
	age: 'adult'
};

// skus data contain amount or not
const hasAmount = true;

// define which spec(s) can be selected with multiple values
const multiSpecs = ['age'];

// create SkuCalculator instance
const skuCalculator = new SkuCalculator({
	specs,
	skus,
	primarySpecs,
	hasAmount,
	multiSpecs
});

// set selected specs
const selectionArray = [
	{
		amount: 2,
		spec: {
			age: 'adult',
			depart: 'Taipei',
			arrive: 'Kaohsiung',
		},
	},
	{
		amount: 3,
		spec: {
			age: 'child',
			depart: 'Taipei',
			arrive: 'Kaohsiung',
		},
	}
];
skuCalculator.setSelectionArray(selectionArray);

// print calculation result
console.log(skuCalculator.specStatus);
console.log(skuCalculator.statistics);
console.log(skuCalculator.selectionSpecStatus);
1.1.0

3 years ago

1.0.11-rc.2

3 years ago

1.0.11-rc.0

3 years ago

1.0.11-rc1

3 years ago

1.0.10-rc2

4 years ago

1.0.10

4 years ago

1.0.10-rc1

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.5-0

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago