Permalink
Browse files

first commit

  • Loading branch information...
1 parent 92b3b05 commit 74e0eefc4fe86028f7bff7cf67411fe8a06f196e @mwawrusch mwawrusch committed Jan 2, 2013
View
@@ -0,0 +1,15 @@
+lib-cov
+*.seed
+*.log
+*.csv
+*.dat
+*.out
+*.pid
+*.gz
+
+pids
+logs
+results
+
+node_modules
+npm-debug.log
View
20 LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2012 Martin Wawrusch
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
View
@@ -0,0 +1,68 @@
+node-api-facade
+===========================
+
+npm install api-facade
+
+## About
+
+A library that simplifies the exposure of data through REST interfaces in a secure, scope dependent way. Basically transforms internal data into whatever a client of your API has the right to see.
+
+### Where does it fit in?
+
+In general this should be the last step in a request pipeline before rendering objects to the client. An example would be
+
+```coffeescript
+ @apiFacade.mapRoot 'User', item, {baseUrl: @baseUrl, scopes:req.scopes}, (err,jsonObj) =>
+ res.json jsonObj
+```
+
+where apiFacade is the instantiated apiFacade object (which contains all the schema definitions)
+
+
+### Features
+* Agnostic towards the data model
+* Can resolve relationships and extend objects (Think instagram adding user data when making an API request.)
+* Fast enough. There is a lot of room for optimizations, but it is fast enough for our purposes.
+* Resolvers are extensible
+* Used in real projects (with 30K+ lines of node code).
+* Supports scopes
+
+### More
+Resonable documentation will be written when I have a bit more time.
+
+## Release Notes
+
+### 0.2.0
+* First version
+
+
+
+## Internal Stuff
+
+* npm run-script watch
+
+## Publish new version
+
+* Change version in package.json
+git add . -A
+git commit -m "Upgrading to v0.2.0"
+git tag -a v0.2.0 -m 'version 0.2.0'
+git push --tags
+npm publish
+
+## Contributing to node-api-facade
+
+* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
+* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
+* Fork the project
+* Start a feature/bugfix branch
+* Commit and push until you are happy with your contribution
+* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
+* Please try not to mess with the package.json, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
+
+## Copyright
+
+Copyright (c) 2013 Martin Wawrusch See LICENSE for
+further details.
+
+
View
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset='UTF-8'>
+ <title>CoffeeScript API Documentation</title>
+ <link rel='stylesheet' href='assets/codo.css' type='text/css'>
+ <script src='assets/codo.js'></script>
+ <script src='assets/search_data.js'></script>
+</head>
+ <body>
+ <div id='base' data-path=''></div>
+<div id='header'>
+ <div id='menu'>
+ <a href='README.md.html' title='Node-api-facade'>Node-api-facade</a>
+ &raquo;
+ <a href='class_index.html' title='Index'>Index</a>
+ &raquo;
+ <span class='title'>LICENSE</span>
+ <nav>
+ <ul>
+ <li class='noframes'>
+ (<a class='noframes' href='#'>no frames</a>)
+ </li>
+ </ul>
+ </nav>
+ <div id='search'>
+ <a id='class_list_link' href='class_list.html'>Classes</a>
+ <a id='method_list_link' href='method_list.html'>Methods</a>
+ <a id='extra_list_link' href='extra_list.html'>Extras</a>
+ </div>
+ </div>
+ <iframe id='search_frame'></iframe>
+ <div id='fuzzySearch'>
+ <input type='text'>
+ <ol></ol>
+ </div>
+ <div id='help'>
+ <p>
+ Quickly fuzzy find classes, mixins, methods, file:
+ </p>
+ <ul>
+ <li>
+ <span>Ctrl-T</span>
+ Open fuzzy finder dialog
+ </li>
+ </ul>
+ <p>
+ In frame mode you can toggle the list naviation frame on the left side:
+ </p>
+ <ul>
+ <li>
+ <span>Ctrl-L</span>
+ Toggle list view
+ </li>
+ </ul>
+ <p>
+ You can focus a list in frame mode or toggle a tab in frameless mode:
+ </p>
+ <ul>
+ <li>
+ <span>Ctrl-C</span>
+ Class list
+ </li>
+ <li>
+ <span>Ctrl-I</span>
+ Mixin list
+ </li>
+ <li>
+ <span>Ctrl-F</span>
+ File list
+ </li>
+ <li>
+ <span>Ctrl-M</span>
+ Method list
+ </li>
+ <li>
+ <span>Ctrl-E</span>
+ Extras list
+ </li>
+ </ul>
+ <p>
+ You can focus and blur the search input:
+ </p>
+ <ul>
+ <li>
+ <span>Ctrl-S</span>
+ Focus search input
+ </li>
+ <li>
+ <span>Esc</span>
+ Blur search input
+ </li>
+ </ul>
+ <p>
+ In frameless mode you can close the list tab:
+ </p>
+ <ul>
+ <li>
+ <span>Esc</span>
+ Close list tab
+ </li>
+ </ul>
+ </div>
+</div>
+ <div id='content'>
+ <nav class='toc'>
+ <p class='title'>
+ <a class='hide_toc' href='#'>
+ <strong>Table of Contents</strong>
+ </a>
+ <small>
+ (<a class='float_toc' href='#'>left</a>)
+ </small>
+ </p>
+ </nav>
+ <div id='filecontents'>
+ Copyright (c) 2012 Martin Wawrusch
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ </div>
+ </div>
+ <div id='footer'>
+ Generated on
+ Wed Jan 02 2013 10:45:20 GMT-0800 (PST)
+ by
+ <a href='https://github.com/netzpirat/codo' title='CoffeeScript API documentation generator'>Codo</a>
+ v1.5.4
+ (Node.js v0.8.15).
+ &#10034;
+ Press Ctrl-h to see the keyboard shortcuts
+ &#10034;
+ <a href='http://twitter.com/#!/netzpirat'>@netzpirat</a>
+ &#10034;
+ <a href='https://mksoft.ch'>mksoft.ch</a>
+</div>
+ </body>
+</html>
Oops, something went wrong.

0 comments on commit 74e0eef

Please sign in to comment.