Merge pull request #12 from Bouncey/feat/featureBuild

Feat/feature build
This commit is contained in:
Stuart Taylor
2018-04-13 16:45:21 +01:00
committed by Mrugesh Mohapatra
parent 28fcbc0970
commit 9a4fa06fad
10 changed files with 79 additions and 31 deletions

View File

@ -0,0 +1,8 @@
---
title: Introduction to the React and Redux Challenges
block: React and Redux
superBlock: Front End Libraries
---
## Introduction to the React and Redux Challenges
This is a stub introduction.

View File

@ -0,0 +1,8 @@
---
title: Introduction to the React Challenges
block: React
superBlock: Front End Libraries
---
## Introduction to the React Challenges
This is a stub introduction.

View File

@ -0,0 +1,8 @@
---
title: Introduction to the Redux Challenges
block: Redux
superBlock: Front End Libraries
---
## Introduction to the Redux Challenges
This is a stub introduction.

View File

@ -0,0 +1,8 @@
---
title: Introduction to the Advances Node and Express Challenges
block: Advanced Node and Express
superBlock: Information Security and Quality Assurance
---
## Introduction to Advanced Node and Express Challenges
This is a stub introduction

View File

@ -0,0 +1,8 @@
---
title: Introduction to the Quality Assurance with Chai Challenges
block: Quality Assurance with Chai
superBlock: Information Security and Quality Assurance
---
## Introduction to Quality Assurance with Chai Challenges
This is a stub introduction

View File

@ -1,12 +1,8 @@
--- ---
title: Introduction to Objects title: Introduction to the Basic Data Structure Challenges
block: Basic Data Structures block: Basic Data Structures
superBlock: JavaScript Algorithms and Data Structures superBlock: JavaScript Algorithms and Data Structures
--- ---
## Introduction to Objects ## Introduction to the Basic Data Structure Challenges
The next data structure we will discuss is the JavaScript <dfn>object</dfn>. Like arrays, objects are a fundamental part of JavaScript. However, it is probably safe to say that objects surpass arrays in flexibility, usefulness and in their overall importance to the language &mdash; in fact, you may have heard this line before: 'In JavaScript, everything is an object.'<br><br>While an understanding of objects is important to understand the inner workings of JavaScript functions or JavaScript's object-oriented capabilities, JavaScript objects at a basic level are actually just <dfn>key-value pair</dfn> stores, a commonly used data structure across almost all programming languages. Here, we will confine our discussion to JavaScript objects in this capacity.
Key-value pair data structures go by different names depending on the language and the specific details of the data structure. The terms <dfn>dictionary</dfn>, <dfn>map</dfn>, and <dfn>hash table</dfn> all refer to the notion of a data structure in which specific keys, or properties, are mapped to specific values.<br><br>Objects, and other similar key-value pair data structures, offer some very useful benefits. One clear benefit is that they allow us to structure our data in an intuitive way; properties can be nested to an arbitrary depth, and values can be anything, including arrays and even other objects.<br><br>Largely due to this flexibility, objects are also the foundation for <dfn>JavaScript Object Notation</dfn>, or <dfn>JSON</dfn>, which is a widely used method of sending data across the web.
Another powerful advantage of key-value pair data structures is <dfn>constant lookup time</dfn>. What this means, is that when you request the value of a specific property, you will get the value back in the same amount of time (theoretically) regardless of the number of entries in the object. If you had an object with 5 entries or one that held a collection of 1,000,000, you could still retrieve property values or check if a key exists in the same amount of time.<br><br>The reason for this fast lookup time, is that internally, the object is storing properties using a hashing mechanism which allows it to know exactly where it has stored different property values. If you want to learn more about this please take a look at the optional Advanced Data Structures challenges. All you should remember for now is that <strong>performant access to flexibly structured data make key-value stores very attractive data structures useful in a wide variety of settings</strong>.
<br><br>In JavaScript, objects are written as comma-separated lists of key-value pairs, wrapped in curly brackets, with each key and its assigned value separated by a colon:<br> <code>{ key1: 'val-1', key2: 'val-2' }</code><br><br>In the next few challenges, we will examine JavaScript objects more closely, and take a look at <dfn>methods</dfn> and techniques that allow us to access, store, and manipulate an object's data.<br><br>Note that throughout the scope of this discussion, and in general when considering JavaScript objects, the terms <dfn>key</dfn> and <dfn>property</dfn> will be used interchangeably.
This is a stub introduction

View File

@ -0,0 +1,8 @@
---
title: Introduction to the Intermediate Algorithm Scripting Challenges
block: Intermediate Algorithm Scripting
superBlock: JavaScript Algorithms and Data Structures
---
## Introduction to the Intermediate Algorithm Scripting Challenges
This is a stub introduction

View File

@ -24,7 +24,8 @@ const Layout = ({ children, data: { allChallengeNode: { edges } } }) => (
]} ]}
/> />
<Header /> <Header />
<ReflexContainer className='app-wrapper' orientation='vertical'> <div className='app-wrapper'>
<ReflexContainer orientation='vertical'>
<ReflexElement flex={0.2} minSize={100}> <ReflexElement flex={0.2} minSize={100}>
<aside id='map'> <aside id='map'>
<Map <Map
@ -41,6 +42,7 @@ const Layout = ({ children, data: { allChallengeNode: { edges } } }) => (
<main>{children()}</main> <main>{children()}</main>
</ReflexElement> </ReflexElement>
</ReflexContainer> </ReflexContainer>
</div>
</Fragment> </Fragment>
); );

View File

@ -1,6 +1,3 @@
.app-wrapper {
max-height: calc(100vh - (45px + 1.45rem));
}
main { main {
height: 100%; height: 100%;
@ -23,3 +20,7 @@ main {
.reflex-layout.vertical > .reflex-splitter{ .reflex-layout.vertical > .reflex-splitter{
width: 5px; width: 5px;
} }
.app-wrapper {
height: calc(100vh - (38px + 0.45rem));
}

View File

@ -20,7 +20,8 @@ import {
initConsole, initConsole,
updateConsole, updateConsole,
checkChallenge, checkChallenge,
updateTests updateTests,
disableJSOnError
} from './'; } from './';
import { buildFromFiles } from '../utils/build'; import { buildFromFiles } from '../utils/build';
import { import {
@ -101,7 +102,7 @@ function executeChallengeEpic(action$, { getState }, { document }) {
.do(frameTests) .do(frameTests)
.ignoreElements() .ignoreElements()
.startWith(initConsole('// running test')) .startWith(initConsole('// running test'))
.catch(err => console.log(err)); .catch(err => disableJSOnError(err));
}) })
); );
return merge(buildAndFrameChallenge, challengeResults); return merge(buildAndFrameChallenge, challengeResults);