@mojojs/core 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -20,26 +20,21 @@ If you want to stay up to date on the
|
|
|
20
20
|
|
|
21
21
|
## Features
|
|
22
22
|
|
|
23
|
+
* 3x faster than Express.js.
|
|
23
24
|
* A **real-time web framework**, allowing you to easily grow single file prototypes into well-structured MVC web
|
|
24
25
|
applications.
|
|
25
|
-
* 3x faster than Express.js.
|
|
26
26
|
* Powerful out of the box with RESTful routes, WebSockets, plugins, commands, logging, templates, content negotiation,
|
|
27
27
|
session management, form and JSON validation, testing framework, static file server, cluster mode, CGI detection,
|
|
28
28
|
first class Unicode support and much more for you to discover.
|
|
29
|
-
|
|
30
29
|
* A powerful **web development toolkit**, that you can use for all kinds of applications, independently of the web
|
|
31
30
|
framework.
|
|
32
31
|
* High performance HTTP and WebSocket client/server implementation with support for HTTPS/WSS, cookies, redirects,
|
|
33
32
|
urlencoded/multi-part forms, file uploads, JSON/YAML, HTML/XML, mocking, API testing, HTTP/SOCKS proxies, UNIX
|
|
34
33
|
domain sockets and gzip compression.
|
|
35
34
|
* HTML/XML parser with CSS selector support.
|
|
36
|
-
|
|
37
35
|
* No frontend framework, mojo.js is for the **backend**.
|
|
38
|
-
|
|
39
36
|
* Written in [TypeScript](https://www.typescriptlang.org), with very clean `class` and `async`/`await` based APIs.
|
|
40
|
-
|
|
41
37
|
* Very few dependencies, to avoid supply chain attacks and allow for "Perl-grade" **long term support**.
|
|
42
|
-
|
|
43
38
|
* Fresh code based upon decades of experience developing [Mojolicious](https://mojolicious.org) and
|
|
44
39
|
[Catalyst](http://catalyst.perl.org), free and open source.
|
|
45
40
|
|
|
@@ -47,10 +47,12 @@ export default async function createFullAppCommand(app, args) {
|
|
|
47
47
|
await util.cliCreateFile('tsconfig.json', JSON.stringify(tsConfig, null, 2));
|
|
48
48
|
await util.cliFixPackage({
|
|
49
49
|
dependencies: { '@mojojs/core': `^${version}` },
|
|
50
|
-
devDependencies: await devDependencies(/^(@types\/.+|tap|typescript)$/),
|
|
50
|
+
devDependencies: await devDependencies(/^(@types\/.+|nodemon|tap|typescript)$/),
|
|
51
51
|
scripts: {
|
|
52
52
|
build: 'npx tsc --build ./',
|
|
53
53
|
'build:test': 'npm run build && npm test',
|
|
54
|
+
dev: 'npx nodemon lib/index.js server',
|
|
55
|
+
start: 'NODE_ENV=production node lib/index.js server -l http://*:8080',
|
|
54
56
|
test: 'tap --no-coverage test/*.js'
|
|
55
57
|
}
|
|
56
58
|
});
|
|
@@ -65,8 +67,10 @@ export default async function createFullAppCommand(app, args) {
|
|
|
65
67
|
await util.cliCreateFile('test/example.js', jsTest, { indexPath: '../index.js' });
|
|
66
68
|
await util.cliFixPackage({
|
|
67
69
|
dependencies: { '@mojojs/core': `^${version}` },
|
|
68
|
-
devDependencies: await devDependencies(/^tap$/),
|
|
70
|
+
devDependencies: await devDependencies(/^(nodemon|tap)$/),
|
|
69
71
|
scripts: {
|
|
72
|
+
dev: 'npx nodemon index.js server',
|
|
73
|
+
start: 'NODE_ENV=production node index.js server -l http://*:8080',
|
|
70
74
|
test: 'tap --no-coverage test/*.js'
|
|
71
75
|
}
|
|
72
76
|
});
|
|
@@ -139,7 +143,7 @@ const tmplView = `%% view.layout = 'default';
|
|
|
139
143
|
<p>
|
|
140
144
|
This page was generated from the template "views/example/welcome.html.tmpl" and the layout
|
|
141
145
|
"views/layouts/default.html.tmpl", <a href="<%%= ctx.urlFor() %>">click here</a> to reload the page or
|
|
142
|
-
<a href="<%%= ctx.urlForFile('
|
|
146
|
+
<a href="<%%= ctx.urlForFile('index.html') %>">here</a> to move forward to a static page.
|
|
143
147
|
</p>
|
|
144
148
|
`;
|
|
145
149
|
const staticFile = `<!DOCTYPE html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-full-app.js","sourceRoot":"","sources":["../../src/cli/create-full-app.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAQ,EAAE,IAAc;IACzE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAC,EAAE,EAAE,OAAO,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACrE,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,EAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;IAErG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,aAAa,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;IACxE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,aAAa,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;IAEtE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAE1D,aAAa;IACb,IAAI,EAAE,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;QAErE,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEtC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAC,SAAS,EAAE,iBAAiB,EAAC,CAAC,CAAC;QAEpF,MAAM,QAAQ,GAAG;YACf,eAAe,EAAE;gBACf,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACtB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,gBAAgB,EAAE,MAAM;gBACxB,eAAe,EAAE,IAAI;gBACrB,iBAAiB,EAAE,IAAI;gBACvB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI;aAChB;YACD,OAAO,EAAE,CAAC,UAAU,CAAC;SACtB,CAAC;QACF,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,YAAY,EAAE,EAAC,cAAc,EAAE,IAAI,OAAO,EAAE,EAAC;YAC7C,eAAe,EAAE,MAAM,eAAe,CAAC
|
|
1
|
+
{"version":3,"file":"create-full-app.js","sourceRoot":"","sources":["../../src/cli/create-full-app.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mojojs/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Real-time web framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mojojs",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"eslint-plugin-import": "^2.23.4",
|
|
72
72
|
"eslint-plugin-node": "^11.1.0",
|
|
73
73
|
"eslint-plugin-prettier": "^4.0.0",
|
|
74
|
+
"nodemon": "^2.0.20",
|
|
74
75
|
"prettier": "^2.5.0",
|
|
75
76
|
"tap": "^16.3.0",
|
|
76
77
|
"typescript": "^4.7.0"
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<title>Debug</title>
|
|
6
6
|
%= ctx.faviconTag()
|
|
7
|
-
%= ctx.scriptTag('
|
|
8
|
-
%= ctx.scriptTag('
|
|
9
|
-
%= ctx.styleTag('
|
|
10
|
-
%= ctx.styleTag('
|
|
7
|
+
%= ctx.scriptTag('mojo/bootstrap/bootstrap.bundle.min.js')
|
|
8
|
+
%= ctx.scriptTag('mojo/highlight.js/highlight.pack.js')
|
|
9
|
+
%= ctx.styleTag('mojo/bootstrap/bootstrap.min.css')
|
|
10
|
+
%= ctx.styleTag('mojo/highlight.js/highlight-mojo-dark.css')
|
|
11
11
|
%= ctx.styleTag('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css')
|
|
12
|
-
%= ctx.styleTag('
|
|
12
|
+
%= ctx.styleTag('mojo/mojo.css')
|
|
13
13
|
<script>
|
|
14
14
|
hljs.initHighlightingOnLoad();
|
|
15
15
|
window.onload = function() {
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
<div class="container-fluid">
|
|
27
27
|
<a href="https://mojojs.org" id="mojobar-brand" class="navbar-brand">
|
|
28
28
|
<picture>
|
|
29
|
-
<img src="<%= ctx.urlForFile('
|
|
30
|
-
srcset="<%= ctx.urlForFile('
|
|
29
|
+
<img src="<%= ctx.urlForFile('mojo/logo-white.png') %>"
|
|
30
|
+
srcset="<%= ctx.urlForFile('mojo/logo-white-2x.png') %> 2x">
|
|
31
31
|
</picture>
|
|
32
32
|
</a>
|
|
33
33
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
top: 60%;
|
|
18
18
|
}
|
|
19
19
|
#not-found {
|
|
20
|
-
background: url(<%= ctx.urlForFile('
|
|
20
|
+
background: url(<%= ctx.urlForFile('mojo/not-found.png') %>);
|
|
21
21
|
height: 62px;
|
|
22
22
|
left: 50%;
|
|
23
23
|
margin-left: -153px;
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
</head>
|
|
31
31
|
<body>
|
|
32
32
|
<a href="<%= ctx.req.baseURL %>">
|
|
33
|
-
<img src="<%= ctx.urlForFile('
|
|
33
|
+
<img src="<%= ctx.urlForFile('mojo/no-raptor.png') %>" alt="Bye!" id="no-raptor">
|
|
34
34
|
</a>
|
|
35
35
|
<div id="not-found"></div>
|
|
36
36
|
</body>
|