1- const fs = require ( 'fs' ) ;
21const path = require ( 'path' ) ;
32
43const { Daemon, FunctionParser } = require ( 'functionscript' ) ;
54const LocalGateway = require ( './local_gateway' ) ;
5+ const Transformers = require ( './transformers' ) ;
66const chalk = require ( 'chalk' ) ;
77
88const processArgs = process . argv . slice ( 2 ) . reduce ( ( processArgs , val ) => {
@@ -40,33 +40,8 @@ if (cluster.isMaster) {
4040 process . exit ( 1 ) ;
4141 }
4242
43- // Load transformers
44- let transformers = [ ] ;
45- if ( stdlib . transformers ) {
46- if ( ! Array . isArray ( stdlib . transformers ) ) {
47- throw new Error ( `"stdlib.json": "transformers" must be an array` ) ;
48- }
49- transformers = stdlib . transformers . map ( transformerData => {
50- let Transformer ;
51- let transformer ;
52- if ( ! transformerData . pathname ) {
53- throw new Error ( `"stdlib.json": "transformers" object must contain "pathname"` ) ;
54- }
55- try {
56- Transformer = require ( path . join ( process . cwd ( ) , transformerData . pathname ) ) ;
57- let config = transformerData . config || { } ;
58- if ( ! config || typeof config !== 'object' ) {
59- throw new Error ( `"stdlib.json": "transformers[].config" must be empty or contain an object` ) ;
60- }
61- transformer = new Transformer ( config ) ;
62- transformer . config = transformerData . config ;
63- } catch ( e ) {
64- console . error ( e ) ;
65- throw new Error ( `Could not load transformer: "${ transformerData . pathname } "` ) ;
66- }
67- return transformer ;
68- } ) ;
69- }
43+ const transformers = new Transformers ( env , stdlib , 'local' ) ;
44+ transformers . load ( ) ;
7045
7146 // Cluster to Gateway
7247 let gateway = new LocalGateway ( {
@@ -76,23 +51,7 @@ if (cluster.isMaster) {
7651 } ) ;
7752 let functionParser = new FunctionParser ( ) ;
7853 try {
79- let preloadFiles = { } ;
80- transformers . forEach ( transformer => {
81- let name = transformer . name || transformer . constructor . name ;
82- let t = new Date ( ) . valueOf ( ) ;
83- console . log ( `\n[Transformer: ${ name } ] Execution starting` ) ;
84- console . log ( `[Transformer: ${ name } ] Using config ${ JSON . stringify ( transformer . config ) } ` ) ;
85- let files = transformer . compile ( process . cwd ( ) , env . local ) ;
86- Object . keys ( files ) . forEach ( pathname => {
87- if ( preloadFiles [ pathname ] ) {
88- throw new Error ( `[Transformer: ${ name } ]: Previous Transformer has already defined "${ pathname } "` ) ;
89- } else {
90- preloadFiles [ pathname ] = files [ pathname ] ;
91- }
92- } ) ;
93- let t0 = new Date ( ) . valueOf ( ) - t ;
94- console . log ( `[Transformer: ${ name } ] Executed in ${ t0 } ms` ) ;
95- } ) ;
54+ let preloadFiles = transformers . compile ( ) ;
9655 gateway . service ( ROUTE ) ;
9756 gateway . environment ( env . local || { } ) ;
9857 gateway . define (
0 commit comments