123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 'use strict';
- const format = require('./format');
- function cascade(formats) {
- if (!formats.every(isValidFormat)) {
- return;
- }
- return info => {
- let obj = info;
- for (let i = 0; i < formats.length; i++) {
- obj = formats[i].transform(obj, formats[i].options);
- if (!obj) {
- return false;
- }
- }
- return obj;
- };
- }
- function isValidFormat(fmt) {
- if (typeof fmt.transform !== 'function') {
- throw new Error([
- 'No transform function found on format. Did you create a format instance?',
- 'const myFormat = format(formatFn);',
- 'const instance = myFormat();'
- ].join('\n'));
- }
- return true;
- }
- module.exports = (...formats) => {
- const combinedFormat = format(cascade(formats));
- const instance = combinedFormat();
- instance.Format = combinedFormat.Format;
- return instance;
- };
- module.exports.cascade = cascade;
|