Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions requirement-sets/1-reading-writing-files/answer.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
count: 3
16 changes: 16 additions & 0 deletions requirement-sets/1-reading-writing-files/src/createDirectionObj.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const createDirectionObj = (line) => {
let directionObj = {};
for (let i = 0; i < line.length; i++) {
const direction = line[i];
if (!directionObj[direction]) {
directionObj[direction] = 1;
} else {
directionObj[direction]++;
}
}
return directionObj;
};

module.exports = {
createDirectionObj
}
20 changes: 20 additions & 0 deletions requirement-sets/1-reading-writing-files/src/index.js
Original file line number Diff line number Diff line change
@@ -1 +1,21 @@
const { createDirectionObj } = require("./createDirectionObj.js")
const { input } = require("./input.js")
const fs = require("fs")

// run the program
const countSamePositions = () => {
let counter = 0
for(let i = 0; i < input.length; i++) {
const directionObj = createDirectionObj(input[i]);
if (directionObj.N === directionObj.S && directionObj.W === directionObj.E) counter++
}
return `count: ${counter}`
}


fs.writeFile("answer.txt", countSamePositions(), (err) => {
if (err) throw err
console.log("YaaY!")
});


10 changes: 10 additions & 0 deletions requirement-sets/1-reading-writing-files/src/input.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const path = require("path");
const fs = require("fs");
const input = fs
.readFileSync(path.join(__dirname, "../input.txt"), "utf8")
.trim()
.split("\n");

module.exports = {
input
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,26 @@ GET https://api.npms.io/v2/search/suggestions?q=react
* greater than 10.x.x

*/
const fetch = require("node-fetch");

const doCountMajorVersionsAbove10 = (data) => {
let number = 0;
for (const dataInfo of data) {
const version = Number(dataInfo.package.version.substring(0, 2));
if (version >= 10) number++;
}
return number;
};

module.exports = async function countMajorVersionsAbove10() {
// TODO
let number = 0;
const url = "https://api.npms.io/v2/search/suggestions?q=react";

return number
await fetch(url)
.then((res) => res.json())
.then((data) => {
number = doCountMajorVersionsAbove10(data);
});
return number;
};
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
jest.mock('node-fetch');
jest.mock('axios');
jest.mock("node-fetch");
jest.mock("axios");

const fetch = require('node-fetch')
const axios = require('axios')
const fetch = require("node-fetch");
const axios = require("axios");

const dependencies = require('../__mocks__/dependencies.json')
const countMajorVersionsAbove10 = require('.');
const dependencies = require("../__mocks__/dependencies.json");
const countMajorVersionsAbove10 = require(".");

describe('countMajorVersionsAbove10', () => {
describe("countMajorVersionsAbove10", () => {
beforeEach(() => {
fetch.mockReturnValue(Promise.resolve({json: () => Promise.resolve(dependencies)}))
axios.get.mockReturnValue(Promise.resolve({ data: dependencies }))
})
fetch.mockReturnValue(
Promise.resolve({ json: () => Promise.resolve(dependencies) })
);
axios.get.mockReturnValue(Promise.resolve({ data: dependencies }));
});

it('returns the correct count of packages above version 10.x.x', async () => {
const answer = await countMajorVersionsAbove10()
it("returns the correct count of packages above version 10.x.x", async () => {
const answer = await countMajorVersionsAbove10();

expect(answer).toEqual(4);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,23 @@ GET https://api.npms.io/v2/search/suggestions?q=react
* the "name" of the package that has the oldest "date" value

*/
const fetch = require("node-fetch");

module.exports = async function oldestPackageName() {
// TODO

return name
let name;
const url = "https://api.npms.io/v2/search/suggestions?q=react";
await fetch(url)
.then((res) => res.json())
.then((data) => {
const dataSortByDate = data.sort((a, b) => {
const indexA = data.indexOf(a);
const dateA = new Date(data[indexA].package.date);
const indexB = data.indexOf(b);
const dateB = new Date(data[indexB].package.date);
return dateA - dateB;
});
name = dataSortByDate[0].package.name;
});
return name;
};