JSPM – realm-js@1.1.88
ESM via JSPM ES Module Entrypoint Export Map Keywords License Repository URL TypeScript Types README Created 9 years ago Published 9 years ago Downloads 166 Score 100 M 100 P 100 Q 72498 F
License ISC initial
Package Exports This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (realm-js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme realm-jsRealmJs is a brand new universal transpiler with built-in dependency injection.
Features
100% Universal
Improved import system - Packages, aliases
Promise based
EC7 friendly - decorators
Automatic environment separation (backend, frontend, universal)
Backend encapsulation / Bridges
Extremely fast compilation (50-70ms) to transpile a big project
Usage"use realm" ;
import FeedParser, GoogleFeed from app. blogs;
class Application {
static main ( ) {
GoogleFeed. getFeed ( "Official Google Blogs" ) . then ( function ( entries ) {
var entries = FeedParser. getEntries ( entries) ;
console. log ( entries) ;
} ) ;
}
}
export Application; Try it now!git clone git@github. com: realm- js/ realm- riot- example. git
cd realm- riot- example
gulp start ToDo service is isolated. Frontend can access the interface, however code per se is hidden from the end users.
## Header types
Univeral mode. File will be put into universal.js
Frontend mode. File will be put into frontend.js
Frontend mode without wrapping. File will be put into frontend.js
"use realm frontend-raw" ; Backend mode. File will be put into backend.js
Backend mode without wrapping. File will be put into backend.js
Bridge mode, the source will be put into backend.js, interface into frontend.js
Using BridgesSometimes you need to have your code encapsulated. Say, secured calls involving authentication;
In this case, bridge is the most suitable case.
Before proceeding, you need to install realm-router (it will actually proxy frontend requests)
Set up you express application like so:
var router = require ( "realm-router" ) ;
realm. require ( 'realm.router.Express' , function ( router ) {
app. use ( router ( [ "realm.router.bridge" ] ) )
} ) Include realm-router frontend build file into your html file. And start bridging!
"use realm bridge" ;
class Auth {
static login ( )
{
}
}
export AuthRemember that only static methods are exposed.
TranspilerUniversal transpiler will output 3 files: backend, frontend, universal
gulp. task ( 'build-universal' , function ( ) {
return realm. transpiler2. universal ( __dirname + "/test-universal/" , "test_build/" ) . then ( function ( changes ) {
console. log ( changes)
} )
} ) ; Installnpm install realm-js --save
Under the hoodYou can use realm-js without transpiler
Creating modules/servicesrealm. module ( "MyFirstModule" , function ( ) {
return new Promise ( function ( resolve, reject ) {
return resolve ( { hello : "world" } )
} ) ;
} ) ;
realm. module ( "MySecondModule" , function ( MyFirstModule ) {
console. log ( MyFirstModule) ;
} ) ; Require a moduleCode:
realm. require ( function ( MySecondModule ) {
console. log ( MySecondModule)
} ) ; Will resolve all required dependencies. The ouput:
Require a packageYou can require a package if you like.
realm. requirePackage ( "app.components" ) . then ( function ( components ) {
} ) ; AnnotationClearly, if you don't use ec6, or any other transpilers, you need to annotate modules
realm. module ( "myModule" , [ "moduleA" , "moduleB" ] , function ( moduleA, moduleB ) {
} ) A simple importIf a module does not belong to any package:
If a module belongs to a package:
Giving it alias
import Module as mod from appExplicit module name (not recommended)
ContributePlease, contribute. The code isn't in its best shape but rocks!