UNPKG

skypager-project

Version:
1,352 lines (1,329 loc) 25.7 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.l = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // identity function for calling harmory imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ // define getter function for harmory exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ }; /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 93); /******/ }) /************************************************************************/ /******/ ({ /***/ 2: /***/ function(module, exports) { module.exports = { "ast": { "type": "root", "children": [ { "type": "heading", "depth": 1, "children": [ { "type": "text", "value": "Skypager Project / Portfolio", "position": { "start": { "line": 1, "column": 3, "offset": 2 }, "end": { "line": 1, "column": 31, "offset": 30 }, "indent": [] } } ], "position": { "start": { "line": 1, "column": 1, "offset": 0 }, "end": { "line": 1, "column": 32, "offset": 31 }, "indent": [] } }, { "type": "paragraph", "children": [ { "type": "strong", "children": [ { "type": "text", "value": "IDEA", "position": { "start": { "line": 3, "column": 3, "offset": 35 }, "end": { "line": 3, "column": 7, "offset": 39 }, "indent": [] } } ], "position": { "start": { "line": 3, "column": 1, "offset": 33 }, "end": { "line": 3, "column": 9, "offset": 41 }, "indent": [] } }, { "type": "text", "value": ": Take full advantage of naming conventions and patterns ", "position": { "start": { "line": 3, "column": 9, "offset": 41 }, "end": { "line": 3, "column": 66, "offset": 98 }, "indent": [] } } ], "position": { "start": { "line": 3, "column": 1, "offset": 33 }, "end": { "line": 3, "column": 66, "offset": 98 }, "indent": [] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "You will notice the following about our file structure:", "position": { "start": { "line": 5, "column": 1, "offset": 100 }, "end": { "line": 5, "column": 56, "offset": 155 }, "indent": [] } } ], "position": { "start": { "line": 5, "column": 1, "offset": 100 }, "end": { "line": 5, "column": 56, "offset": 155 }, "indent": [] } }, { "type": "list", "ordered": false, "start": null, "loose": false, "children": [ { "type": "listItem", "loose": false, "checked": null, "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "./Helpers/models", "position": { "start": { "line": 7, "column": 3, "offset": 159 }, "end": { "line": 7, "column": 19, "offset": 175 }, "indent": [] } } ], "position": { "start": { "line": 7, "column": 3, "offset": 159 }, "end": { "line": 7, "column": 19, "offset": 175 }, "indent": [] } } ], "position": { "start": { "line": 7, "column": 1, "offset": 157 }, "end": { "line": 7, "column": 19, "offset": 175 }, "indent": [] } }, { "type": "listItem", "loose": false, "checked": null, "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "./Helpers/models/Component.js", "position": { "start": { "line": 8, "column": 3, "offset": 178 }, "end": { "line": 8, "column": 32, "offset": 207 }, "indent": [] } } ], "position": { "start": { "line": 8, "column": 3, "offset": 178 }, "end": { "line": 8, "column": 32, "offset": 207 }, "indent": [] } } ], "position": { "start": { "line": 8, "column": 1, "offset": 176 }, "end": { "line": 8, "column": 32, "offset": 207 }, "indent": [] } }, { "type": "listItem", "loose": false, "checked": null, "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "./Helpers/models/DataSource.js", "position": { "start": { "line": 9, "column": 3, "offset": 210 }, "end": { "line": 9, "column": 33, "offset": 240 }, "indent": [] } } ], "position": { "start": { "line": 9, "column": 3, "offset": 210 }, "end": { "line": 9, "column": 33, "offset": 240 }, "indent": [] } } ], "position": { "start": { "line": 9, "column": 1, "offset": 208 }, "end": { "line": 9, "column": 33, "offset": 240 }, "indent": [] } }, { "type": "listItem", "loose": false, "checked": null, "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "./Helpers/models/Project.js", "position": { "start": { "line": 10, "column": 3, "offset": 243 }, "end": { "line": 10, "column": 30, "offset": 270 }, "indent": [] } } ], "position": { "start": { "line": 10, "column": 3, "offset": 243 }, "end": { "line": 10, "column": 30, "offset": 270 }, "indent": [] } } ], "position": { "start": { "line": 10, "column": 1, "offset": 241 }, "end": { "line": 10, "column": 30, "offset": 270 }, "indent": [] } } ], "position": { "start": { "line": 7, "column": 1, "offset": 157 }, "end": { "line": 10, "column": 30, "offset": 270 }, "indent": [ 1, 1, 1 ] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "From the file structure alone we can deduce that among these files, there are several types of files which", "position": { "start": { "line": 12, "column": 1, "offset": 272 }, "end": { "line": 12, "column": 107, "offset": 378 }, "indent": [] } }, { "type": "break", "position": { "start": { "line": 12, "column": 107, "offset": 378 }, "end": { "line": 13, "column": 1, "offset": 381 }, "indent": [ 1 ] } }, { "type": "text", "value": "all seem to be a type of ", "position": { "start": { "line": 13, "column": 1, "offset": 381 }, "end": { "line": 13, "column": 26, "offset": 406 }, "indent": [] } }, { "type": "inlineCode", "value": "Helpers", "position": { "start": { "line": 13, "column": 26, "offset": 406 }, "end": { "line": 13, "column": 35, "offset": 415 }, "indent": [] } }, { "type": "text", "value": " called ", "position": { "start": { "line": 13, "column": 35, "offset": 415 }, "end": { "line": 13, "column": 43, "offset": 423 }, "indent": [] } }, { "type": "inlineCode", "value": "commands", "position": { "start": { "line": 13, "column": 43, "offset": 423 }, "end": { "line": 13, "column": 53, "offset": 433 }, "indent": [] } }, { "type": "text", "value": ". If we look more closely at them, we can see they all export \na javascript module that has a similar structure:", "position": { "start": { "line": 13, "column": 53, "offset": 433 }, "end": { "line": 14, "column": 50, "offset": 546 }, "indent": [ 1 ] } } ], "position": { "start": { "line": 12, "column": 1, "offset": 272 }, "end": { "line": 14, "column": 50, "offset": 546 }, "indent": [ 1, 1 ] } }, { "type": "code", "lang": "javascript", "value": "export const execute = (options = {}, context = global) => {\n const { project } = context\n}\n\nexport const command = (commander) => commander\n .program('myCommand').\n .usage('usage description')", "position": { "start": { "line": 16, "column": 1, "offset": 548 }, "end": { "line": 24, "column": 4, "offset": 762 }, "indent": [ 1, 1, 1, 1, 1, 1, 1, 1 ] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "What this allows us to do is write a common and abstract interface on top of \never expanding collection of different javascript modules that amongst ourselves, we refer to as commands. ", "position": { "start": { "line": 26, "column": 1, "offset": 764 }, "end": { "line": 27, "column": 108, "offset": 949 }, "indent": [ 1 ] } } ], "position": { "start": { "line": 26, "column": 1, "offset": 764 }, "end": { "line": 27, "column": 108, "offset": 949 }, "indent": [ 1 ] } }, { "type": "paragraph", "children": [ { "type": "strong", "children": [ { "type": "text", "value": "Note:", "position": { "start": { "line": 29, "column": 3, "offset": 953 }, "end": { "line": 29, "column": 8, "offset": 958 }, "indent": [] } } ], "position": { "start": { "line": 29, "column": 1, "offset": 951 }, "end": { "line": 29, "column": 10, "offset": 960 }, "indent": [] } }, { "type": "text", "value": " The technology this project is based on doesn't need to dictate very much about what \nexactly a command does, or what modules and third party libraries commands depend on. ", "position": { "start": { "line": 29, "column": 10, "offset": 960 }, "end": { "line": 30, "column": 87, "offset": 1133 }, "indent": [ 1 ] } } ], "position": { "start": { "line": 29, "column": 1, "offset": 951 }, "end": { "line": 30, "column": 87, "offset": 1133 }, "indent": [ 1 ] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "It doesn't provide much outside of ways for leveraging the ability to make certain assumptions about our code \nbased on what names we give to the things inside of our project and where we store them. ", "position": { "start": { "line": 32, "column": 1, "offset": 1135 }, "end": { "line": 33, "column": 90, "offset": 1335 }, "indent": [ 1 ] } } ], "position": { "start": { "line": 32, "column": 1, "offset": 1135 }, "end": { "line": 33, "column": 90, "offset": 1335 }, "indent": [ 1 ] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "People who work with Ruby on Rails are going to be very familiar with this concept, and i only recently \nlearned of the name ", "position": { "start": { "line": 35, "column": 1, "offset": 1337 }, "end": { "line": 36, "column": 21, "offset": 1462 }, "indent": [ 1 ] } }, { "type": "inlineCode", "value": "Inversion of Control", "position": { "start": { "line": 36, "column": 21, "offset": 1462 }, "end": { "line": 36, "column": 43, "offset": 1484 }, "indent": [] } }, { "type": "text", "value": ", which is how people describe this pattern of building larger applications\nand having a framework look for certain types of functionality in certain folders in the project.", "position": { "start": { "line": 36, "column": 43, "offset": 1484 }, "end": { "line": 37, "column": 98, "offset": 1657 }, "indent": [ 1 ] } } ], "position": { "start": { "line": 35, "column": 1, "offset": 1337 }, "end": { "line": 37, "column": 98, "offset": 1657 }, "indent": [ 1, 1 ] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "As helpful as this pattern cane be, applying these ideas in Javascript is still very labor intensive. For people who do not work with \nmonolithic frameworks, enjoying the benefits of this practice is still mostly personal, or mostly manual and \ndependent on people learning the system.", "position": { "start": { "line": 39, "column": 1, "offset": 1659 }, "end": { "line": 41, "column": 41, "offset": 1944 }, "indent": [ 1, 1 ] } } ], "position": { "start": { "line": 39, "column": 1, "offset": 1659 }, "end": { "line": 41, "column": 41, "offset": 1944 }, "indent": [ 1, 1 ] } }, { "type": "heading", "depth": 2, "children": [ { "type": "text", "value": "Products", "position": { "start": { "line": 43, "column": 4, "offset": 1949 }, "end": { "line": 43, "column": 12, "offset": 1957 }, "indent": [] } } ], "position": { "start": { "line": 43, "column": 1, "offset": 1946 }, "end": { "line": 43, "column": 13, "offset": 1958 }, "indent": [] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "This section describes the different folders of the project which contain source code and assets for products \nproduced for the purposes of supporting interaction with this portfolio, such as in the \nform of an API, Website, Desktop App, etc.", "position": { "start": { "line": 45, "column": 1, "offset": 1960 }, "end": { "line": 47, "column": 43, "offset": 2202 }, "indent": [ 1, 1 ] } } ], "position": { "start": { "line": 45, "column": 1, "offset": 1960 }, "end": { "line": 47, "column": 43, "offset": 2202 }, "indent": [ 1, 1 ] } }, { "type": "heading", "depth": 3, "children": [ { "type": "text", "value": "App", "position": { "start": { "line": 49, "column": 5, "offset": 2208 }, "end": { "line": 49, "column": 8, "offset": 2211 }, "indent": [] } } ], "position": { "start": { "line": 49, "column": 1, "offset": 2204 }, "end": { "line": 49, "column": 8, "offset": 2211 }, "indent": [] } }, { "type": "blockquote", "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "an Electron App that uses React.js and the React Semantic-UI component kit", "position": { "start": { "line": 50, "column": 3, "offset": 2214 }, "end": { "line": 50, "column": 77, "offset": 2288 }, "indent": [] } } ], "position": { "start": { "line": 50, "column": 3, "offset": 2214 }, "end": { "line": 50, "column": 77, "offset": 2288 }, "indent": [] } } ], "position": { "start": { "line": 50, "column": 1, "offset": 2212 }, "end": { "line": 50, "column": 77, "offset": 2288 }, "indent": [] } }, { "type": "heading", "depth": 3, "children": [ { "type": "text", "value": "Documentation", "position": { "start": { "line": 52, "column": 5, "offset": 2294 }, "end": { "line": 52, "column": 18, "offset": 2307 }, "indent": [] } } ], "position": { "start": { "line": 52, "column": 1, "offset": 2290 }, "end": { "line": 52, "column": 18, "offset": 2307 }, "indent": [] } }, { "type": "blockquote", "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "A Website with information about the design, concepts, and other details for this project", "position": { "start": { "line": 53, "column": 3, "offset": 2310 }, "end": { "line": 53, "column": 92, "offset": 2399 }, "indent": [] } } ], "position": { "start": { "line": 53, "column": 3, "offset": 2310 }, "end": { "line": 53, "column": 92, "offset": 2399 }, "indent": [] } } ], "position": { "start": { "line": 53, "column": 1, "offset": 2308 }, "end": { "line": 53, "column": 92, "offset": 2399 }, "indent": [] } }, { "type": "heading", "depth": 3, "children": [ { "type": "text", "value": "Server", "position": { "start": { "line": 55, "column": 5, "offset": 2405 }, "end": { "line": 55, "column": 11, "offset": 2411 }, "indent": [] } } ], "position": { "start": { "line": 55, "column": 1, "offset": 2401 }, "end": { "line": 55, "column": 11, "offset": 2411 }, "indent": [] } }, { "type": "blockquote", "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "A Realtime API for interacting with the portfolio especially in development and test, but also in production. ", "position": { "start": { "line": 56, "column": 3, "offset": 2414 }, "end": { "line": 56, "column": 113, "offset": 2524 }, "indent": [] } } ], "position": { "start": { "line": 56, "column": 3, "offset": 2414 }, "end": { "line": 56, "column": 113, "offset": 2524 }, "indent": [] } } ], "position": { "start": { "line": 56, "column": 1, "offset": 2412 }, "end": { "line": 56, "column": 113, "offset": 2524 }, "indent": [] } }, { "type": "heading", "depth": 2, "children": [ { "type": "text", "value": "Collections", "position": { "start": { "line": 58, "column": 4, "offset": 2529 }, "end": { "line": 58, "column": 15, "offset": 2540 }, "indent": [] } } ], "position": { "start": { "line": 58, "column": 1, "offset": 2526 }, "end": { "line": 58, "column": 15, "offset": 2540 }, "indent": [] } }, { "type": "paragraph", "children": [ { "type": "text", "value": "This section describes nested subfolders which are deliberately named according to specific categories \nwhich can communicate essential facts for how the projects are used. ", "position": { "start": { "line": 60, "column": 1, "offset": 2542 }, "end": { "line": 61, "column": 70, "offset": 2715 }, "indent": [ 1 ] } } ], "position": { "start": { "line": 60, "column": 1, "offset": 2542 }, "end": { "line": 61, "column": 70, "offset": 2715 }, "indent": [ 1 ] } } ], "position": { "start": { "line": 1, "column": 1, "offset": 0 }, "end": { "line": 61, "column": 70, "offset": 2715 } } }, "meta": {}, "path": "/Users/jonathan/Skypager/packages/skypager-project/README.md", "query": { "": true } }; /***/ }, /***/ 93: /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(2); /***/ } /******/ });