Skip to content

Commit fd7e63d

Browse files
committed
- call modules with a brand new this object.
- `register` returns the registered ldc object - accept object or list in `init`. - bump verrsion
1 parent f9c9f94 commit fd7e63d

File tree

7 files changed

+48
-34
lines changed

7 files changed

+48
-34
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# Change Logs
22

3-
## v0.0.4 (upcoming)
3+
## v0.0.4
44

55
- call modules with a brand new this object.
6+
- `register` returns the registered ldc object
7+
- accept object or list in `init`.
68

79

810
## v0.0.3

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@ loading js component/action framework.
55

66
## API
77

8-
* ldc.register(name, dep-list, (({dep-list}) ->)) - register a component
8+
- `ldc.register(name, dep-list, (({dep-list}) ->))`: register a component
99
- while name ignored the module will be an anonymous module and be treated as an app directly.
10-
* ldc.app(name-list) - set main entry point of component
11-
* ldc.init(name-list) - force init certain components
12-
* ldc.on(name, ((...opts)->) - listen to a ldc event
13-
* ldc.fire(name, ...opts) - fire a ldc event
14-
* ldc.action(opt1, opt2) - register an action handler.
10+
- return the registered ldc object.
11+
- `ldc.app(name, ...)`: set main entry point of component
12+
- `ldc.init(opt, ...)`: force init components
13+
- `opt` is either:
14+
- a string: name for specific ldc component.
15+
- an object: a ldc object ( returned by `ldc.register` )
16+
- an array of either string or objects as above
17+
- `ldc.on(name, ((...opts)->)`: listen to a ldc event
18+
- `ldc.fire(name, ...opts)`: fire a ldc event
19+
- `ldc.action(opt1, opt2)`: register an action handler.
1520
there are three different cases of usage
1621
1. opt1 = name, opt2 = object
1722
register an set of action handler under the namespace with opt1 as its name.

dist/index.js

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,19 @@
55
window.ldc = ldc = {
66
module: {},
77
register: function(n, d, f){
8+
var ret;
89
if (Array.isArray(n)) {
9-
return this.apps.push({
10+
this.apps.push(ret = {
1011
f: d,
1112
d: n
1213
});
1314
} else {
14-
return this.module[n] = {
15+
ret = this.module[n] = {
1516
f: f,
1617
d: d
1718
};
1819
}
20+
return ret;
1921
},
2022
evtHandler: {},
2123
on: function(n, cb){
@@ -77,8 +79,8 @@
7779
args = res$;
7880
return this.apps = this.apps.concat(args);
7981
},
80-
init: function(names){
81-
var _, i$, ref$, len$, k, this$ = this, results$ = [];
82+
init: function(ns){
83+
var _, i$, len$, k, this$ = this, results$ = [];
8284
_ = function(param){
8385
var ref$, p, name, m, i$, len$, n;
8486
ref$ = typeof param === 'object'
@@ -104,16 +106,19 @@
104106
local.name = null;
105107
return m.o;
106108
};
107-
for (i$ = 0, len$ = (ref$ = names || this.apps).length; i$ < len$; ++i$) {
108-
k = ref$[i$];
109+
ns = !ns
110+
? this.apps
111+
: Array.isArray(ns)
112+
? ns
113+
: [ns];
114+
for (i$ = 0, len$ = ns.length; i$ < len$; ++i$) {
115+
k = ns[i$];
109116
results$.push(_(k));
110117
}
111118
return results$;
112119
},
113-
run: function(name){
114-
this.init(Array.isArray(name)
115-
? name
116-
: [name]);
120+
run: function(n){
121+
this.init(n);
117122
return null;
118123
}
119124
};

dist/index.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"dist/**/*"
77
],
88
"description": "js components/action framework",
9-
"version": "0.0.3",
9+
"version": "0.0.4",
1010
"homepage": "https://github.com/loadingio/ldc",
1111
"browser": "dist/index.min.js",
1212
"main": "dist/index.min.js",

src/index.ls

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ window.ldc = ldc = do
55
# n: module name. if omitted, register an anonymous module as main module.
66
# d: module dependency. array of strings.
77
# f: module function({modules},{params}). should always return module object.
8-
register: (n, d, f) -> if Array.isArray(n) => @apps.push({f: d, d: n}) else @module[n] = {f, d}
8+
register: (n, d, f) ->
9+
if Array.isArray(n) => @apps.push(ret = {f: d, d: n})
10+
else ret = @module[n] = {f, d}
11+
ret
912
evt-handler: {}
1013
on: (n, cb) -> @evt-handler.[][n].push cb
1114
fire: (n, ...v) -> for cb in (@evt-handler[n] or []) => cb.apply @, v
@@ -23,7 +26,7 @@ window.ldc = ldc = do
2326
act: (n, ...v) -> for cb in (@act-handler[n] or []) => cb.apply @, v
2427
apps: []
2528
app: (...args) -> @apps ++= args
26-
init: (names) ->
29+
init: (ns) ->
2730
_ = (param) ~>
2831
[p,name,m] = if typeof(param) == \object => [{},"",param] else [{},param, @module[param]]
2932
if !m => return null
@@ -36,9 +39,8 @@ window.ldc = ldc = do
3639
m.o = m.f.call (m._o = {}), p
3740
local.name = null
3841
return m.o
39-
for k in (names or @apps) => _(k)
40-
run: (name) ->
41-
@init if Array.isArray(name) => name else [name]
42-
return null
43-
42+
ns = if !ns => @apps else if Array.isArray(ns) => ns else [ns]
43+
for k in ns => _ k
44+
run: (n) -> @init n; return null
45+
4446
window.addEventListener \DOMContentLoaded, -> ldc.init!

0 commit comments

Comments
 (0)