12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /**
- * Module dependencies
- */
- var _ = require('@sailshq/lodash');
- /**
- * getPatternFromExemplar()
- *
- * Determine the pattern from the specified array exemplar.
- *
- * @param {Array} arrayExemplar
- * The array exemplar whose pattern should be deduced.
- * (must be a valid RTTC exemplar!)
- *
- * @returns {JSON}
- * An RTTC exemplar.
- *
- * @throws {Error} If `arrayExemplar` is not actually an array.
- * @throws {Error} If `arrayExemplar` is not actually an exemplar because it has >1 items.
- */
- module.exports = function getPatternFromExemplar(arrayExemplar){
- if (!_.isArray(arrayExemplar)) {
- throw new Error('Provided "array exemplar" is not actually an array (it is a `'+typeof arrayExemplar+'`).');
- }
- // Generic arrays (`[]`) are the same thing as generic JSON arrays (`['*']`),
- // so as you might expect, they have a `*` pattern.
- if (arrayExemplar.length === 0) {
- return '*';
- }
- // If there is only one single item, just use that.
- else if (arrayExemplar.length === 1){
- return arrayExemplar[0];
- }
- // Otherwise, this isn't actually an exemplar because it has >1 items.
- else {
- throw new Error('Provided "array exemplar" is not actually an exemplar because it has too many items ('+arrayExemplar.length+').');
- }
- };
|