Skip to content
This repository has been archived by the owner on Apr 29, 2019. It is now read-only.

snd/fragments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 codecov.io Dependencies Downloads per Month

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