Skip to content
/ fragments Public
forked from snd/fragments

fragments structures web applications with (request time) dependency injection

License

Notifications You must be signed in to change notification settings

sh/fragments

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fragments

fragments has beta status. it's been in production use for over a year. things are quite settled now. i aim for release in fall/winter 2015. expect some breakage until then but not much. i won't support any but the newest version.

the documentation in this readme is work in progress and currently unfinished !

BETA NPM Package Build Status Dependencies

fragments structures web applications with (request time) dependency injection

hello-world.js is a minimal fragments app contained in a single file with only around 50 lines of code. when called with ./hello-world.js serve it starts a http server on the port that is set in the environment variable PORT. that server responds to http GET requests to path /hello-world with ContentType text/plain and body Hello world. it responds with status code 404 Not Found to all other requests.

var factories = {
  server: function(
    commonMiddlewarePrelude,
    sequenz,
    actionHelloWorld,
    notFound
  ) {
    return sequenz([
      commonMiddlewarePrelude,
      actionHelloWorld,
      notFound
    ]);
  },
  notFound: function(
    MIDDLEWARE
  ) {
    return MIDDLEWARE(function(
      endNotFound
    ) {
      endNotFound();
    });
  },
  endHelloWorld: function(
    end200Text
  ) {
    end200Text('Hello world');
  },
  actionHelloWorld: function(
    GET
  ) {
    return GET('/hello-world', function(
      endHelloWorld
    ) {
      endHelloWorld();
    })
  }
};

// thats it for the application code !
// below is just configuration boilerplate.
// it's needed only once per app.

var fragments = require('fragments');
var hinoki = require('hinoki');

var source = hinoki.source([
  factories,
  fragments.source,
  fragments.umgebung
]);

var source = hinoki.decorateSourceToAlsoLookupWithPrefix(source, 'fragments_');

var app = fragments(source);

app.runCommand();

expect a detailed walkthrough soon.

see the example app as well.
entry point is example/app.
there are integration tests for the example app.

fragments builds on top of hinoki: effective yet simple dependency injection and more for Node.js and browsers

About

fragments structures web applications with (request time) dependency injection

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CoffeeScript 98.1%
  • JavaScript 1.9%