JSPM – realm-js@1.1.82
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 72503 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
TRY IT NOW It's worth it!
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!Don't waste your time, try bridging now! Isomorphism is right here!
git clone git@github. com: realm- js/ universal- app- example. git
cd universal- app- example
npm install
gulp start Visit http://localhost:3055/ and check the console!
Then try!
This code is 100% universal with backend encapsulation
The implementation of app.blogs.GoogleFeed in our case is hidden from endusers, however interfaces are introduced.
< body>
< script>
// Starting our application
realm.start('app.Application');
</ script>
</ body>
## 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 most 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 to 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!