Git Product home page Git Product logo

web-client's Introduction

The NorJS Runtime Environment.

This is a MIT-licensed runtime environment for apps created with our not-yet-published commercial NorJS Development Environment, however it will run any compatible AngularJS ES6 app as well.

The NorJS RE is still under active development and there is no official stable release until we release it to the first commercial customer.

You may follow the progress in the feature issue #1.

Install norjs command line interface

npm install -g @norjs/web-client

Install NorJS Runtime Environment

norjs install

Run NorJS app in a development mode

norjs run ./app.json

Build static files for production deployment

norjs build ./app.json

Hello World app

You can extend your app logic with external ES6 enabled AngularJS modules.

Your custom module ./myapp.js:

import angular from "angular";

let waMainViewComponent = {
  template: `
<main>
  <h3>Main page</h3>

  <p>Hello World</p>
</main>
`,
  controller: class WaMainViewController {
  }
};

export default angular.module(
  "myapp"
  , [])
  .component('myMainView', waMainViewComponent)
  .name;

Configuration file ./app.json:

{
  "name": "Hello World",
  "modules": [
    "myapp"
  ],
  "states": {
    "main": {
      "name": "main"
    , "options": {
        "url": "/main"
      , "component": "myMainView"
      }
    }
  }
}

Then file ./norjs.json (or specify --import=myapp.js --config=./app.json):

{
  "import": "./myapp.js",
  "config": "./app.json"
}

Then run it:

norjs run

Or build it:

norjs build

web-client's People

Contributors

adalinn avatar thejhh avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

gvsurenderreddy

web-client's Issues

Task 13: Better MainViewController

[ Feature #1 ]

Default MainView should be somehow better.

For example NorJS could automatically detect installed views and if there isn't any user defined view, it could show a default view which tells how to use a view for example.

Task 22: Improved command line interface

New command line arguments:

  • --cwd=DIR -- changes the current process directory to another one before other command line arguments have been processed
  • --dir=DIR -- Use this directory as a default for detecting configuration files. Defaults to CWD.
  • --options=FILE -- loads CLI configuration from this file, and the configuration properties are same as command line options
    • If the FILE is a directory and DIR/norjs.json exists, use it.
  • --config=FILE -- loads app configuration from this file
    • If the FILE is a directory and DIR/app.json exists, use it.
  • norjs run ./path/to/app should also work and initialize it with --dir=FILE instead of --config=FILE

Task 8: Enable custom AngularJS modules

[ Feature #1 ]

User should be able to write a custom module in a file myapp.js:

import { angular, NrViewController } from "norjs";

let mainViewComponent = {
  template: `
<main>
  <h3>Main page</h3>

  <p>Hello World</p>
</main>
`,
  controller: class MainViewController extends NrViewController {
    constructor ($injector, $element, $attrs, $scope) {
      super("myMainViewController", $injector, $element, $attrs, $scope);
    }
  }
};

export default angular.module(
  "myapp"
  , [])
  .component('myMainView', mainViewComponent)
  .name;

...with a myapp.json like:

{
  "name": "Hello World",
  "modules": [
    "myapp"
  ],
  "states": {
    "main": {
      "name": "main"
    , "options": {
        "url": "/main"
      , "component": "myMainView"
      }
    }
  }
}

And use if like this:

norjs run --import=myapp.js myapp.json

or

norjs build --import=myapp.js myapp.json

Feature 1: The NorJS Command Line Interface

This is a feature issue which maps required tasks.

Description

Command line utility which can be used to run the development system and build production apps.

Required Tasks

  • Task #9: Enable HTML title customization for views
  • Task #17: nrNavService
  • Task #11: Enable SCSS customization
  • Task #4: Rename global NorJS constants better
  • Task #20: norjs build should have option to change dist location

Optional Tasks

  • Task #21: Restart development mode on changes to custom app.json
  • Task #7: Enable custom index.html
  • Task #12: Enable changing HTML lang tag
  • Task #14: Improve nr-nav
  • Task #10: Enable ng-app name customization in index.html
  • Task #5: Enable custom translations
  • Task #6: Rename PREFERRED_LANGUAGE
  • Task #13: Better MainViewController
  • Task #15: Improve nr-compile
  • Task #16: Rename .registerLifeCycleMethods
  • Task #18: Enable server port customizations

Finished tasks

  • Bug #19: Development server does not shutdown when norjs exists
  • Task #8: Enable custom AngularJS modules
  • Task #2: Command Line Interface
  • Task #3: test.mocks must be renamed

Task 17: nrNavService

[ Feature #1 ]

A service which views can use to register themselfs to a specific nav, eg. top nav.

Task 2: Command Line Interface

[ Feature #1 ]

Install the command line tool:

npm install norjs

Install development tools:

norjs install

Run the development system:

norjs run ./app.json

Build the production build:

norjs build ./app.json

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.