Skip to content
Open
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
72 changes: 72 additions & 0 deletions solutions/javascript/poetry-club-door-policy/1/door-policy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// @ts-check
//
// ☝🏽 The line above enables type checking for this file. Various IDEs interpret
// the @ts-check directive. It will give you helpful autocompletion on the web
// and supported IDEs when implementing this exercise. You don't need to
// understand types, JSDoc, or TypeScript in order to complete this JavaScript
// exercise, and can completely ignore this comment block and directive.
//
// 👋🏽 Hi again!
//
// A quick reminder about exercise stubs:
//
// 💡 You're allowed to completely clear any stub before you get started. Often
// we recommend using the stub, because they are already set-up correctly to
// work with the tests, which you can find in ./door-policy.spec.js.
//
// 💡 You don't need to write JSDoc comment blocks yourself; it is not expected
// in idiomatic JavaScript, but some companies and style-guides do enforce them.
//
// Good luck with that door policy!

/**
* Respond with the correct character, given the line of the
* poem, if this were said at the front door.
*
* @param {string} line
* @returns {string}
*/
export function frontDoorResponse(line) {
return line.trim()[0];
}

/**
* Format the password for the front-door, given the response
* letters.
*
* @param {string} word the letters you responded with before
* @returns {string} the front door password
*/
export function frontDoorPassword(word) {
if (!word) return '';
return word[0].toUpperCase()+ word.slice(1).toLowerCase();

return frontDoorPassword(word) + ', please';
}


/**
* Respond with the correct character, given the line of the
* poem, if this were said at the back door.
*
* @param {string} line
* @returns {string}
*/
export function backDoorResponse(line) {
const trimmedLine = line.trim();
return trimmedLine[trimmedLine.length - 1];
}


/**
* Format the password for the back door, given the response
* letters.
*
* @param {string} word the letters you responded with before
* @returns {string} the back door password
*/
export function backDoorPassword(word) {
const capitalized = word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
return capitalized + ", please";

}