1
1
package examples
2
2
3
3
import com .github .ldaniels528 .meansjs .nodejs ._
4
- import examples .nodejs .{buffers , events , express , http , kafka , mongodb , net , timers , zookeeper }
4
+ import examples .nodejs .{basics , buffers , events , express , http , kafka , mongodb , net , repl , timers , zookeeper }
5
5
import org .scalajs .dom .console
6
6
7
7
import scala .scalajs .js
@@ -13,29 +13,44 @@ import scala.scalajs.js.annotation.JSExportAll
13
13
*/
14
14
@ JSExportAll
15
15
object Examples extends js.JSApp {
16
- private val names = js.Array (
17
- " Buffers" , " EventEmitting" , " ExpressTest" , " HttpServerTest" , " IntermediateTimers" , " MongoClientTest" ,
18
- " NetServerTest" , " ProducerExample" , " ProducerEnhanced" , " TransactionExample"
16
+ private val examples = js.Array (
17
+ " Buffers" , " EventEmitterExample" , " ExpressRoutingExample" , " ExpressServerExample" ,
18
+ " HttpServerExample" , " IntermediateTimers" , " MongoClientExample" , " NetServerExample" ,
19
+ " ProducerExample" , " ProducerEnhanced" , " REPLExample" , " TinyCLI" , " TransactionExample"
19
20
)
20
21
21
22
override def main (): Unit = ()
22
23
23
- def start (require : Require ) = {
24
- process.argv.drop(2 ) foreach {
25
- case " Buffers" => new buffers.Buffers (require)
26
- case " EventEmitting" => new events.EventEmitting (require)
27
- case " ExpressTest" => new express.ExpressTest (require)
28
- case " HttpServerTest" => new http.HttpServerTest (require)
29
- case " IntermediateTimers" => new timers.IntermediateTimers (require)
30
- case " MongoClientTest" => new mongodb.MongoClientTest (require)
31
- case " NetServerTest" => new net.NetServerTest (require)
32
- case " ProducerExample" => new kafka.ProducerExample (require)
33
- case " ProducerEnhanced" => new kafka.ProducerEnhanced (require)
34
- case " StateExample" => new zookeeper.StateExample (require)
35
- case " TransactionExample" => new zookeeper.TransactionExample (require)
36
- case arg =>
37
- console.warn(s " Syntax: examples.js <exampleName> - Choose one: ${names.mkString(" , " )}" )
24
+ def start (require : Require ) {
25
+ val args = process.argv.drop(2 )
26
+ if (args.isEmpty) usageError()
27
+ else {
28
+ args map { arg => console.log(s " Executing example ' $arg' " ); arg } foreach {
29
+ case " Buffers" => new buffers.Buffers (require)
30
+ case " Classes" => new basics.Classes (require)
31
+ case " EventEmitterExample" => new events.EventEmitterExample (require)
32
+ case " ExpressRoutingExample" => new express.ExpressRoutingExample (require)
33
+ case " ExpressServerExample" => new express.ExpressServerExample (require)
34
+ case " HttpServerExample" => new http.HttpServerExample (require)
35
+ case " IntermediateTimers" => new timers.IntermediateTimers (require)
36
+ case " MongoClientExample" => new mongodb.MongoClientExample (require)
37
+ case " NetServerExample" => new net.NetServerExample (require)
38
+ case " ProducerExample" => new kafka.ProducerExample (require)
39
+ case " ProducerEnhanced" => new kafka.ProducerEnhanced (require)
40
+ case " REPLExample" => new repl.REPLExample (require)
41
+ case " StateExample" => new zookeeper.StateExample (require)
42
+ case " TinyCLI" => new repl.TinyCLI (require)
43
+ case " TransactionExample" => new zookeeper.TransactionExample (require)
44
+ case arg => usageError()
45
+ }
38
46
}
39
47
}
40
48
49
+ def usageError (): Unit = {
50
+ val choices = examples.sliding(4 , 4 ) map (_.mkString(" , " )) mkString " \n "
51
+ console.warn(" Usage: examples.js <example1>[, <example2>[, <exampleN>]]\n " )
52
+ console.log(" Choose any of the following:" )
53
+ console.log(choices)
54
+ }
55
+
41
56
}
0 commit comments