Coder Social home page Coder Social logo

achilles's Introduction

#Achilles - MV* ES6 fashion

##Let's talk about Achilles!

Achilles is a MV* Javascript framework "ร  la Backbone". Another one?!, yes but written with ECMAScript 6!.

Achilles has 5 major components:

  • Model
  • Collection
  • Router
  • Request (ajax features) used by Model and Collection
  • View (not available, work in progress)

... and a very little dom selector (see selector.js), and a dom selector ability (see selector.ability.js) to add selector ability to any node of the dom. It's useful when working with Polymer inside a component:

Object.assign(this.$.content, achilles.selectorAbility);
this.$.content.find("pre").all().forEach((block) => {
    /* do something with block */
})

Achilles is "View" agnostic, you can use with what you want (I use it with Polymer and it's a great combo).

Achilles is a baby, it still lacks a lot of features.

###Model

class Content  extends achilles.Model {
  constructor (fields) {
    //superclass's constructor invocation
    super(fields, "data/contents.json");

    Object.defineProperty(this, "location", {
      get() { return this.get("location")} ,
      set(value) { this.set("location",value); }
    });

    Object.defineProperty(this, "source", {
      get() { return this.get("source")} ,
      set(value) { this.set("source",value); }
    });

    Object.defineProperty(this, "id", {
      get() { return this.get("_id")} ,
      set (value) { this.set("_id",value); }
    });
  }
}

###Collection

class Contents extends achilles.Collection {

  constructor (contents) {
    super(Content,"data/contents.json",contents);
  }
}

###Router

var router = new achilles.Router()

router.add("/humans/{v}", (args)=>{
  /* v == args[0] */ 
});

router.add("/humans", (args)=>{ /* foo */ });

router.add("/humans/firstname/{v}/lastname/{v}", 
    (args)=>{
        console.log("some humans", args)
});
    
router.listen();

###Request

new achilles.Request("/humans/bob")
    .get()
    .then((data) => {})
    .catch((error) => {});

##Backlog

  • View
  • ???

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.