Skip to content

Commit

Permalink
v2.1.3 publish
Browse files Browse the repository at this point in the history
  • Loading branch information
Vaporjawn committed Jan 1, 2024
1 parent 810e0bd commit 0b08f73
Show file tree
Hide file tree
Showing 12 changed files with 4,205 additions and 4,218 deletions.
13 changes: 7 additions & 6 deletions src/functions/getFactByNumber/getFactByNumber.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Retrieves a SnappleFact by its number.
* @param {Object} args - The arguments for retrieving the SnappleFact.
Expand All @@ -8,9 +8,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
* @returns {SnappleFact | undefined} - The SnappleFact matching the provided number, or undefined if not found.
* @throws {Error} - Throws an error if the provided number is invalid.
*/
const GetFactByNumber = args => {
const { snappleFacts, number } = args;
if (number < 1 || number > snappleFacts.length) throw new Error('Invalid number');
return snappleFacts.find(fact => fact.number === number);
const GetFactByNumber = (args) => {
const { snappleFacts, number } = args;
if (number < 1 || number > snappleFacts.length)
throw new Error('Invalid number');
return snappleFacts.find(fact => fact.number === number);
};
exports.default = GetFactByNumber;
44 changes: 21 additions & 23 deletions src/functions/getFactByNumber/tests/getFactByNumber.test.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const getFactByNumber_1 = __importDefault(require('../getFactByNumber'));
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const getFactByNumber_1 = __importDefault(require("../getFactByNumber"));
describe('getFactByNumber', () => {
it('should return a fact for a valid number', () => {
const snappleFacts = [
{ number: 1, fact: 'fact 1' },
{ number: 2, fact: 'fact 2' },
];
const fact = (0, getFactByNumber_1.default)({ snappleFacts, number: 1 });
expect(fact).toEqual({ number: 1, fact: 'fact 1' });
});
it('should throw an error for an invalid number', () => {
const snappleFacts = [
{ number: 1, fact: 'fact 1' },
{ number: 2, fact: 'fact 2' },
];
expect(() => (0, getFactByNumber_1.default)({ snappleFacts, number: 3 })).toThrow('Invalid number');
});
it('should return a fact for a valid number', () => {
const snappleFacts = [
{ number: 1, fact: 'fact 1' },
{ number: 2, fact: 'fact 2' },
];
const fact = (0, getFactByNumber_1.default)({ snappleFacts, number: 1 });
expect(fact).toEqual({ number: 1, fact: 'fact 1' });
});
it('should throw an error for an invalid number', () => {
const snappleFacts = [
{ number: 1, fact: 'fact 1' },
{ number: 2, fact: 'fact 2' },
];
expect(() => (0, getFactByNumber_1.default)({ snappleFacts, number: 3 })).toThrow('Invalid number');
});
});
16 changes: 7 additions & 9 deletions src/functions/getFacts/getFacts.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const snappleFacts_1 = __importDefault(require('../../snappleFacts'));
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const snappleFacts_1 = __importDefault(require("../../snappleFacts"));
/**
* Retrieves an array of Snapple facts.
* @returns {SnappleFact[]} An array of Snapple facts.
*/
const GetFacts = () => {
return snappleFacts_1.default;
return snappleFacts_1.default;
};
exports.default = GetFacts;
46 changes: 22 additions & 24 deletions src/functions/getFacts/tests/getFacts.test.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const getFacts_1 = __importDefault(require('../getFacts'));
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const getFacts_1 = __importDefault(require("../getFacts"));
describe('GetFacts', () => {
it('should return an array of SnappleFacts', () => {
const facts = (0, getFacts_1.default)();
expect(facts.length).toBeGreaterThan(0);
});
it('should return an array of SnappleFacts with numbers', () => {
const facts = (0, getFacts_1.default)();
expect(facts[0].number).toBeDefined();
});
it('should return an array of SnappleFacts with facts', () => {
const facts = (0, getFacts_1.default)();
expect(facts[0].fact).toBeDefined();
});
it('should return an array of SnappleFacts with sources', () => {
const facts = (0, getFacts_1.default)();
expect(facts[0].fact).toBeDefined();
});
it('should return an array of SnappleFacts', () => {
const facts = (0, getFacts_1.default)();
expect(facts.length).toBeGreaterThan(0);
});
it('should return an array of SnappleFacts with numbers', () => {
const facts = (0, getFacts_1.default)();
expect(facts[0].number).toBeDefined();
});
it('should return an array of SnappleFacts with facts', () => {
const facts = (0, getFacts_1.default)();
expect(facts[0].fact).toBeDefined();
});
it('should return an array of SnappleFacts with sources', () => {
const facts = (0, getFacts_1.default)();
expect(facts[0].fact).toBeDefined();
});
});
8 changes: 4 additions & 4 deletions src/functions/listFacts/listFacts.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Retrieves an array of fact strings from an array of SnappleFact objects.
*
* @param snappleFacts - An array of SnappleFact objects.
* @returns An array of fact strings.
*/
const ListFacts = snappleFacts => {
return snappleFacts.map(fact => fact.fact);
const ListFacts = (snappleFacts) => {
return snappleFacts.map(fact => fact.fact);
};
exports.default = ListFacts;
46 changes: 22 additions & 24 deletions src/functions/listFacts/tests/listFacts.test.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const listFacts_1 = __importDefault(require('../listFacts'));
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const listFacts_1 = __importDefault(require("../listFacts"));
describe('ListFacts', () => {
it('should return an array of strings', () => {
const snappleFacts = [
{ fact: 'Fact 1', number: 1 },
{ fact: 'Fact 2', number: 2 },
{ fact: 'Fact 3', number: 3 },
];
const expected = ['Fact 1', 'Fact 2', 'Fact 3'];
const actual = (0, listFacts_1.default)(snappleFacts);
expect(actual).toEqual(expected);
});
it('should return an empty array when given an empty array', () => {
const snappleFacts = [];
const expected = [];
const actual = (0, listFacts_1.default)(snappleFacts);
expect(actual).toEqual(expected);
});
it('should return an array of strings', () => {
const snappleFacts = [
{ fact: 'Fact 1', number: 1 },
{ fact: 'Fact 2', number: 2 },
{ fact: 'Fact 3', number: 3 },
];
const expected = ['Fact 1', 'Fact 2', 'Fact 3'];
const actual = (0, listFacts_1.default)(snappleFacts);
expect(actual).toEqual(expected);
});
it('should return an empty array when given an empty array', () => {
const snappleFacts = [];
const expected = [];
const actual = (0, listFacts_1.default)(snappleFacts);
expect(actual).toEqual(expected);
});
});
20 changes: 9 additions & 11 deletions src/functions/randomFact/randomFact.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const crypto_1 = __importDefault(require('crypto'));
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const crypto_1 = __importDefault(require("crypto"));
/**
* Retrieves a random SnappleFact from the given array of SnappleFacts.
* @param {SnappleFact[]} snappleFacts - The array of SnappleFacts to choose from.
* @returns {SnappleFact} - A random SnappleFact.
*/
const RandomFact = snappleFacts => {
const randomIndex = crypto_1.default.randomInt(0, snappleFacts.length);
return snappleFacts[randomIndex];
const RandomFact = (snappleFacts) => {
const randomIndex = crypto_1.default.randomInt(0, snappleFacts.length);
return snappleFacts[randomIndex];
};
exports.default = RandomFact;
30 changes: 14 additions & 16 deletions src/functions/randomFact/tests/randomFact.test.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const randomFact_1 = __importDefault(require('../randomFact'));
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const randomFact_1 = __importDefault(require("../randomFact"));
describe('RandomFact', () => {
it('should return a random fact', () => {
const snappleFacts = [
{ number: 1, fact: 'fact 1' },
{ number: 2, fact: 'fact 2' },
];
const fact = (0, randomFact_1.default)(snappleFacts);
expect(fact).toBeDefined();
});
it('should return a random fact', () => {
const snappleFacts = [
{ number: 1, fact: 'fact 1' },
{ number: 2, fact: 'fact 2' },
];
const fact = (0, randomFact_1.default)(snappleFacts);
expect(fact).toBeDefined();
});
});
96 changes: 47 additions & 49 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,55 +1,53 @@
'use strict';
var __importDefault =
(this && this.__importDefault) ||
function (mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Object.defineProperty(exports, '__esModule', { value: true });
const getFactByNumber_1 = __importDefault(require('./functions/getFactByNumber/getFactByNumber'));
const getFacts_1 = __importDefault(require('./functions/getFacts/getFacts'));
const listFacts_1 = __importDefault(require('./functions/listFacts/listFacts'));
const randomFact_1 = __importDefault(require('./functions/randomFact/randomFact'));
const snappleFacts_1 = __importDefault(require('./snappleFacts'));
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const getFactByNumber_1 = __importDefault(require("./functions/getFactByNumber/getFactByNumber"));
const getFacts_1 = __importDefault(require("./functions/getFacts/getFacts"));
const listFacts_1 = __importDefault(require("./functions/listFacts/listFacts"));
const randomFact_1 = __importDefault(require("./functions/randomFact/randomFact"));
const snappleFacts_1 = __importDefault(require("./snappleFacts"));
/**
* Represents a collection of Snapple facts.
*/
class SnappleFacts {
/**
* Creates a new instance of the class.
*/
constructor() {
this.snappleFacts = snappleFacts_1.default;
}
/**
* Retrieves an array of Snapple facts.
*
* @returns {SnappleFact[]} An array of Snapple facts.
*/
getFacts() {
return (0, getFacts_1.default)();
}
/**
* Retrieves a list of Snapple facts.
*
* @returns An array of strings representing the Snapple facts.
*/
listFacts() {
return (0, listFacts_1.default)(this.snappleFacts);
}
/**
* Retrieves a SnappleFact by its number.
* @param number - The number of the SnappleFact to retrieve.
* @returns The SnappleFact object if found, otherwise undefined.
*/
getFactByNumber(number) {
return (0, getFactByNumber_1.default)({ snappleFacts: this.snappleFacts, number });
}
/**
* Retrieves a random SnappleFact from the collection of Snapple facts.
* @returns {SnappleFact} A random SnappleFact.
*/
randomFact() {
return (0, randomFact_1.default)(this.snappleFacts);
}
/**
* Creates a new instance of the class.
*/
constructor() {
this.snappleFacts = snappleFacts_1.default;
}
/**
* Retrieves an array of Snapple facts.
*
* @returns {SnappleFact[]} An array of Snapple facts.
*/
getFacts() {
return (0, getFacts_1.default)();
}
/**
* Retrieves a list of Snapple facts.
*
* @returns An array of strings representing the Snapple facts.
*/
listFacts() {
return (0, listFacts_1.default)(this.snappleFacts);
}
/**
* Retrieves a SnappleFact by its number.
* @param number - The number of the SnappleFact to retrieve.
* @returns The SnappleFact object if found, otherwise undefined.
*/
getFactByNumber(number) {
return (0, getFactByNumber_1.default)({ snappleFacts: this.snappleFacts, number });
}
/**
* Retrieves a random SnappleFact from the collection of Snapple facts.
* @returns {SnappleFact} A random SnappleFact.
*/
randomFact() {
return (0, randomFact_1.default)(this.snappleFacts);
}
}
exports.default = SnappleFacts;
4 changes: 2 additions & 2 deletions src/interfaces/snappleFact.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
Loading

0 comments on commit 0b08f73

Please sign in to comment.