cooky-cutter
Version:
Object factories for testing in TypeScript
26 lines (25 loc) • 908 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.array = exports.ARRAY_FACTORY_KEY = void 0;
exports.ARRAY_FACTORY_KEY = "arrayFactory";
/**
* Define a new array factory function. The return value is a function that can be
* invoked as many times as needed to create an array of object of given type.
*
* @param factory An existing factory object.
* @param size Size of target array can be a static value.
*/
function array(factory, size = 5) {
const arrayFactory = (override) => {
const arr = [];
for (let i = 0; i < size; i++) {
arr.push(factory(override));
}
return arr;
};
// Define a property to differentiate this function during the evaluation
// phase when the factory is later invoked.
arrayFactory.__cooky_cutter = exports.ARRAY_FACTORY_KEY;
return arrayFactory;
}
exports.array = array;