1 | /*------------------------------------*\
|
2 | NODE MODULES
|
3 | \*------------------------------------*/
|
4 | /* jslint node: true */
|
5 |
|
6 | /**
|
7 | * Require all native modules from Node.js API required by NodeAtlas and set them into `NA#modules`.
|
8 | * @publics
|
9 | * @function initNodeModules
|
10 | * @memberOf NA#
|
11 | * @this NA
|
12 | */
|
13 | exports.initNodeModules = function () {
|
14 | var NA = this;
|
15 |
|
16 | /**
|
17 | * All node.js native modules required by NodeAtlas.
|
18 | * @namespace modules
|
19 | * @type {Object}
|
20 | * @alias modules
|
21 | * @memberOf NA#
|
22 | */
|
23 | NA.modules = {};
|
24 |
|
25 | /**
|
26 | * Allow you to manage read/write on files.
|
27 | * @alias fs
|
28 | * @type {Object}
|
29 | * @memberOf NA#modules
|
30 | * @see {@link http://nodejs.org/api/fs.html File System}
|
31 | */
|
32 | NA.modules.fs = require("fs");
|
33 |
|
34 | /**
|
35 | * Allow you to use many features of the HTTP protocol.
|
36 | * @alias http
|
37 | * @type {Object}
|
38 | * @memberOf NA#modules
|
39 | * @see {@link http://nodejs.org/api/http.html HTTP}
|
40 | */
|
41 | NA.modules.http = require("http");
|
42 |
|
43 | /**
|
44 | * Allow you to use many features of the HTTPs protocol.
|
45 | * @alias https
|
46 | * @type {Object}
|
47 | * @memberOf NA#modules
|
48 | * @see {@link http://nodejs.org/api/https.html HTTPs}
|
49 | */
|
50 | NA.modules.https = require("https");
|
51 |
|
52 | /**
|
53 | * Allow you to handle and to transform url paths.
|
54 | * @alias url
|
55 | * @type {Object}
|
56 | * @memberOf NA#modules
|
57 | * @see {@link http://nodejs.org/api/url.html URL}
|
58 | */
|
59 | NA.modules.url = require("url");
|
60 |
|
61 | /**
|
62 | * Allow you to handle and to transform file paths.
|
63 | * @alias path
|
64 | * @type {Object}
|
65 | * @memberOf NA#modules
|
66 | * @see {@link http://nodejs.org/api/path.html Path}
|
67 | */
|
68 | NA.modules.path = require("path");
|
69 | };
|
70 |
|
71 | /**
|
72 | * Load all NPM modules to run a Web Server.
|
73 | * @private
|
74 | * @function loadServerModules
|
75 | * @memberOf NA~
|
76 | * @param {NA} NA NodeAtlas instance.
|
77 | */
|
78 | function loadServerModules(NA) {
|
79 |
|
80 | /**
|
81 | * An advanced web server.
|
82 | * @function express
|
83 | * @memberOf NA#modules
|
84 | * @external express
|
85 | * @see {@link http://expressjs.com/ Express.js}
|
86 | */
|
87 | NA.modules.express = require("express");
|
88 |
|
89 | /**
|
90 | * Parse HTML for POST methods.
|
91 | * @function bodyParser
|
92 | * @memberOf NA#modules
|
93 | * @external body-parser
|
94 | * @see {@link https://github.com/expressjs/body-parser body-parser}
|
95 | */
|
96 | NA.modules.bodyParser = require("body-parser");
|
97 |
|
98 | /**
|
99 | * Manage session of the server.
|
100 | * @function express-session
|
101 | * @memberOf NA#modules
|
102 | * @external express-session
|
103 | * @see {@link https://github.com/expressjs/session express-session}
|
104 | */
|
105 | NA.modules.session = require("express-session");
|
106 |
|
107 | /**
|
108 | * Parse Cookies for keep connection.
|
109 | * @function cookieParser
|
110 | * @memberOf NA#modules
|
111 | * @external cookie-parser
|
112 | * @see {@link https://github.com/expressjs/cookie-parser cookie-parser}
|
113 | */
|
114 | NA.modules.cookieParser = require("cookie-parser");
|
115 |
|
116 | /**
|
117 | * Compress code before send it to the client.
|
118 | * @function compress
|
119 | * @memberOf NA#modules
|
120 | * @external compression
|
121 | * @see {@link https://github.com/expressjs/compression compression}
|
122 | */
|
123 | NA.modules.compress = require("compression");
|
124 |
|
125 | /**
|
126 | * A command tool for run NodeAtlas as CLI.
|
127 | * @alias commander
|
128 | * @type {Object}
|
129 | * @memberOf NA#modules
|
130 | * @external commander
|
131 | * @see {@link https://github.com/tj/commander.js commander.js}
|
132 | */
|
133 | NA.modules.commander = require("commander");
|
134 |
|
135 | /**
|
136 | * node.js realtime framework server.
|
137 | * @function socketio
|
138 | * @memberOf NA#modules
|
139 | * @external socketio
|
140 | * @see {@link https://www.npmjs.org/package/socket.io Socket.io}
|
141 | */
|
142 | NA.modules.socketio = require("socket.io");
|
143 | }
|
144 |
|
145 | /**
|
146 | * Load all NPM modules for manipulate HTML render.
|
147 | * @private
|
148 | * @function loadHtmlModules
|
149 | * @memberOf NA~
|
150 | * @param {NA} NA NodeAtlas instance.
|
151 | */
|
152 | function loadHtmlModules(NA) {
|
153 |
|
154 | /**
|
155 | * EJS cleans the HTML out of your JavaScript with client side templates.
|
156 | * @alias ejs
|
157 | * @type {Object}
|
158 | * @memberOf NA#modules
|
159 | * @external ejs
|
160 | * @see {@link http://www.embeddedjs.com/ EJS}
|
161 | */
|
162 | NA.modules.ejs = require("ejs");
|
163 |
|
164 | /**
|
165 | * A clean, whitespace-sensitive template language for writing HTML.
|
166 | * @alias pug
|
167 | * @type {Object}
|
168 | * @memberOf NA#modules
|
169 | * @external pug
|
170 | * @see {@link https://pugjs.org/ PUG}
|
171 | */
|
172 | NA.modules.pug = require("pug");
|
173 |
|
174 | /**
|
175 | * jsdom is a pure-JavaScript implementation of many web standards, notably the WHATWG DOM and HTML Standards, for use with Node.js.
|
176 | * @alias jsdom
|
177 | * @type {Object}
|
178 | * @memberOf NA#modules
|
179 | * @external jsdom
|
180 | * @see {@link https://www.npmjs.com/package/jsdom jsdom}
|
181 | */
|
182 | NA.modules.jsdom = require("jsdom");
|
183 | }
|
184 |
|
185 | /**
|
186 | * Load all NPM modules to enhance NodeAtlas.
|
187 | * @private
|
188 | * @function loadUtilsModules
|
189 | * @memberOf NA~
|
190 | * @param {NA} NA NodeAtlas instance.
|
191 | */
|
192 | function loadUtilsModules(NA) {
|
193 |
|
194 | /**
|
195 | * Higher-order functions and common patterns for asynchronous code.
|
196 | * @alias async
|
197 | * @type {Object}
|
198 | * @memberOf NA#modules
|
199 | * @external async
|
200 | * @see {@link https://www.npmjs.com/package/async async}
|
201 | */
|
202 | NA.modules.async = require("async");
|
203 |
|
204 | /**
|
205 | * An implementation of heritage.
|
206 | * @function extend
|
207 | * @memberOf NA#modules
|
208 | * @external extend
|
209 | * @see {@link https://www.npmjs.org/package/extend extend}
|
210 | */
|
211 | NA.modules.extend = require("extend");
|
212 |
|
213 | /**
|
214 | * Open a file or url in the user's preferred application.
|
215 | * @function opn
|
216 | * @memberOf NA#modules
|
217 | * @external opn
|
218 | * @see {@link https://www.npmjs.com/package/opn opn}
|
219 | */
|
220 | NA.modules.opn = require("opn");
|
221 |
|
222 | /**
|
223 | * Make all directories in a path, like mkdir -p.
|
224 | * @function mkpath
|
225 | * @memberOf NA#modules
|
226 | * @external mkpath
|
227 | * @see {@link https://www.npmjs.org/package/mkpath mkpath}
|
228 | */
|
229 | NA.modules.mkpath = require("mkpath");
|
230 |
|
231 | /**
|
232 | * Easy used "copy-dir" method, even use a filter, copy a file or directory to another path.
|
233 | * @function copyDir
|
234 | * @memberOf NA#modules
|
235 | * @external copy-dir
|
236 | * @see {@link https://www.npmjs.com/package/copy-dir}
|
237 | */
|
238 | NA.modules.copyDir = require("copy-dir");
|
239 | }
|
240 |
|
241 | /**
|
242 | * Load all NPM modules for preproccessing, minification, obfuscation and optimization.
|
243 | * @private
|
244 | * @function loadOptimizationsModules
|
245 | * @memberOf NA#
|
246 | * @param {NA} NA NodeAtlas instance.
|
247 | */
|
248 | function loadOptimizationsModules(NA) {
|
249 |
|
250 | /**
|
251 | * CSS parser.
|
252 | * @function cssParse
|
253 | * @memberOf NA#modules
|
254 | * @external css-parse
|
255 | * @see {@link https://www.npmjs.com/package/css-parse css-parse}
|
256 | */
|
257 | NA.modules.cssParse = require("css-parse");
|
258 |
|
259 | /**
|
260 | * A fast, efficient, and well tested CSS minifier for node.js.
|
261 | * @function cleanCss
|
262 | * @memberOf NA#modules
|
263 | * @external clean-css
|
264 | * @see {@link https://github.com/jakubpawlowicz/clean-css clean-css}
|
265 | */
|
266 | NA.modules.cleanCss = require("clean-css");
|
267 |
|
268 | /**
|
269 | * uglify-es is an ECMAScript 2015 parser, minifier, compressor and beautifier toolkit.
|
270 | * @alias uglifyEs
|
271 | * @type {Object}
|
272 | * @memberOf NA#modules
|
273 | * @external uglify-es
|
274 | * @see {@link https://github.com/mishoo/UglifyJS2/tree/harmony UglifyES}
|
275 | */
|
276 | NA.modules.uglifyEs = require("uglify-es");
|
277 |
|
278 | /**
|
279 | * An autoprefixer plugin for stylus.
|
280 | * @function prefixStylus
|
281 | * @memberOf NA#modules
|
282 | * @external prefixStylus
|
283 | * @see {@link https://www.npmjs.com/package/autoprefixer-stylus prefixStylus}
|
284 | */
|
285 | NA.modules.prefixStylus = require("autoprefixer-stylus");
|
286 |
|
287 | /**
|
288 | * Robust, expressive, and feature-rich CSS superset
|
289 | * @function stylus
|
290 | * @memberOf NA#modules
|
291 | * @external stylus
|
292 | * @see {@link https://www.npmjs.com/package/stylus stylus}
|
293 | */
|
294 | NA.modules.stylus = require("stylus");
|
295 |
|
296 | /**
|
297 | * Uses autoprefixer to add prefixes to css after conversion from less.
|
298 | * @alias prefixLess
|
299 | * @type {Object}
|
300 | * @memberOf NA#modules
|
301 | * @external prefixLess
|
302 | * @see {@link https://www.npmjs.com/package/less-plugin-autoprefix prefixLess}
|
303 | */
|
304 | NA.modules.prefixLess = require("less-plugin-autoprefix");
|
305 |
|
306 | /**
|
307 | * The dynamic stylesheet language. http://lesscss.org.
|
308 | * @alias less
|
309 | * @type {Object}
|
310 | * @memberOf NA#modules
|
311 | * @external less
|
312 | * @see {@link https://www.npmjs.com/package/less less}
|
313 | */
|
314 | NA.modules.less = require("less");
|
315 |
|
316 | /**
|
317 | * LESS.js middleware for connect.
|
318 | * @alias lessMiddleware
|
319 | * @type {Object}
|
320 | * @memberOf NA#modules
|
321 | * @external less-middleware
|
322 | * @see {@link https://www.npmjs.com/package/less-middleware less-middleware}
|
323 | */
|
324 | NA.modules.lessMiddleware = require("less-middleware");
|
325 | NA.modules.lessMiddlewareUtilities = require("less-middleware/lib/utilities");
|
326 | }
|
327 |
|
328 | /**
|
329 | * Require all NPM modules required by NodeAtlas and set them into `NA#modules`.
|
330 | * @public
|
331 | * @function initNpmModules
|
332 | * @memberOf NA#
|
333 | * @this NA
|
334 | */
|
335 | exports.initNpmModules = function () {
|
336 | var NA = this;
|
337 |
|
338 | /* Load all modules. */
|
339 | loadServerModules(NA);
|
340 | loadHtmlModules(NA);
|
341 | loadUtilsModules(NA);
|
342 | loadOptimizationsModules(NA);
|
343 | }; |
\ | No newline at end of file |