nodefony 6.9.1 → 6.10.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/CHANGELOG.md +134 -0
- package/README.md +2 -5
- package/autoloader.es6 +4 -3
- package/cli/builder/bundles/users-bundle/Command/usersCommand.js +1 -1
- package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +5 -1
- package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +4 -0
- package/cli/builder/bundles/users-bundle/Resources/graphiql/graphiql.jsx +40 -4
- package/cli/builder/bundles/users-bundle/Resources/scss/users.scss +9 -10
- package/cli/builder/bundles/users-bundle/Resources/swagger/swagger.js +3 -2
- package/cli/builder/bundles/users-bundle/Resources/translations/login.en_en.yml +3 -1
- package/cli/builder/bundles/users-bundle/Resources/translations/login.fr_fr.yml +2 -0
- package/cli/builder/bundles/users-bundle/Resources/views/documentation/base.html.twig +1 -2
- package/cli/builder/bundles/users-bundle/Resources/views/footer.html.twig +2 -4
- package/cli/builder/bundles/users-bundle/Resources/views/graphiql/index.html.twig +4 -9
- package/cli/builder/bundles/users-bundle/Resources/views/header.html.twig +63 -66
- package/cli/builder/bundles/users-bundle/Resources/views/swagger/index.html.twig +4 -12
- package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +2 -0
- package/cli/builder/bundles/users-bundle/controller/usersController.js +1 -1
- package/cli/builder/bundles/users-bundle/package.json +24 -23
- package/cli/builder/microService/skeletons/config/pm2.config.js +1 -1
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.dev.js +1 -6
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.prod.js +1 -6
- package/cli/builder/microService/skeletons/config/webpack.config.js +40 -34
- package/cli/builder/microService/skeletons/package.json +27 -22
- package/cli/builder/microService/skeletons/src/browser/index.css +1 -1
- package/cli/builder/microService/skeletons/src/browser/index.js +1 -3
- package/cli/builder/microService/skeletons/src/browser/socketio.js +46 -0
- package/cli/builder/microService/skeletons/src/node/examples/index.js +12 -52
- package/cli/builder/microService/skeletons/src/node/index.js +18 -18
- package/cli/builder/microService/skeletons/src/node/services/servers/http.js +9 -1
- package/cli/builder/microService/skeletons/src/node/services/servers/https.js +9 -1
- package/cli/builder/microService/skeletons/src/node/services/socketio/socketio.js +15 -12
- package/cli/builder/microService/skeletons/src/templates/base.html +12 -0
- package/cli/builder/microService/skeletons/src/templates/socket.html +23 -0
- package/cli/builder/project/skeletons/README.md +2 -5
- package/cli/builder/project/skeletons/package.json.skeleton +6 -6
- package/cli/builder/sandbox/skeletons/Resources/js/entry.js +2 -2
- package/cli/builder/skeletons/config/nodefony/http-bundle.js +5 -3
- package/cli/builder/skeletons/config/nodefony/redis-bundle.js +16 -11
- package/cli/builder/skeletons/config/webpack.config.js +3 -3
- package/cli/builder/skeletons/package.json +21 -18
- package/cli/install/install.js +2 -1
- package/cli.es6 +6 -12
- package/error.es6 +2 -1
- package/kernel/api/graphqlApi.es6 +17 -7
- package/kernel/bundle.es6 +1 -1
- package/kernel/cliKernel.es6 +1 -1
- package/kernel/controllers/controller.es6 +4 -0
- package/kernel/kernel.es6 +1 -1
- package/kernel/reader.es6 +1 -0
- package/kernel/security/secureArea.es6 +3 -1
- package/nodefony.es6 +1 -1
- package/package.json +33 -33
- package/cli/builder/bundles/users-bundle/Resources/views/index.html.twig +0 -19
|
@@ -1,36 +1,28 @@
|
|
|
1
|
-
{% extends '../base.html.twig' %}
|
|
1
|
+
{% extends '../documentation/base.html.twig' %}
|
|
2
2
|
|
|
3
3
|
{% block title %}{{title|escape}}{% endblock %}
|
|
4
4
|
|
|
5
5
|
{% block stylesheets %}
|
|
6
6
|
<!-- WEBPACK BUNDLE -->
|
|
7
7
|
<link rel='stylesheet' href='{{CDN("stylesheet")}}/users-bundle/assets/css/swagger.css'/>
|
|
8
|
-
|
|
8
|
+
{{ parent() }}
|
|
9
9
|
{% endblock %}
|
|
10
10
|
|
|
11
11
|
{% block body %}
|
|
12
12
|
|
|
13
|
-
{% block header %}
|
|
14
|
-
{{ render( controller("users:users:header" )) }}
|
|
15
|
-
{% endblock %}
|
|
16
|
-
|
|
17
13
|
<div class="container-fluid">
|
|
18
14
|
<div class="row flex-xl-nowrap">
|
|
19
15
|
{% include '../documentation/navbar.html.twig' %}
|
|
20
|
-
<main class="col-12 col-md-9 col-xl-
|
|
16
|
+
<main class="col-12 col-md-9 col-xl-10" style="top:2px">
|
|
21
17
|
<div id="swagger"></div>
|
|
22
18
|
</main>
|
|
23
19
|
</div>
|
|
24
20
|
</div>
|
|
25
21
|
|
|
26
|
-
{% block footer %}
|
|
27
|
-
{{ render( controller("users:users:footer" )) }}
|
|
28
22
|
{% endblock %}
|
|
29
23
|
|
|
30
24
|
{% block javascripts %}
|
|
31
25
|
<!-- WEBPACK BUNDLE -->
|
|
32
26
|
<script src='{{CDN("javascript")}}/users-bundle/assets/js/swagger.js'></script>
|
|
33
|
-
|
|
34
|
-
{% endblock %}
|
|
35
|
-
|
|
27
|
+
{{ parent() }}
|
|
36
28
|
{% endblock %}
|
|
@@ -16,44 +16,45 @@
|
|
|
16
16
|
],
|
|
17
17
|
"repository": {},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@babel/core": "^7.
|
|
20
|
-
"@babel/plugin-proposal-class-properties": "^7.
|
|
19
|
+
"@babel/core": "^7.16.7",
|
|
20
|
+
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
21
21
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
22
|
-
"@babel/preset-env": "^7.
|
|
23
|
-
"@babel/preset-react": "^7.
|
|
24
|
-
"@popperjs/core": "^2.
|
|
25
|
-
"babel-loader": "^8.2.
|
|
22
|
+
"@babel/preset-env": "^7.16.7",
|
|
23
|
+
"@babel/preset-react": "^7.16.7",
|
|
24
|
+
"@popperjs/core": "^2.11.0",
|
|
25
|
+
"babel-loader": "^8.2.3",
|
|
26
26
|
"babel-register": "^6.26.0",
|
|
27
27
|
"bootstrap": "^5.1.3",
|
|
28
28
|
"clean-webpack-plugin": "^4.0.0",
|
|
29
29
|
"css-hot-loader": "^1.4.4",
|
|
30
|
-
"css-loader": "^6.
|
|
31
|
-
"expose-loader": "^3.
|
|
30
|
+
"css-loader": "^6.5.1",
|
|
31
|
+
"expose-loader": "^3.1.0",
|
|
32
32
|
"faker": "^5.5.3",
|
|
33
33
|
"font-awesome": "^4.7.0",
|
|
34
|
-
"graphiql": "^1.
|
|
35
|
-
"graphql": "^
|
|
36
|
-
"
|
|
37
|
-
"
|
|
34
|
+
"graphiql": "^1.5.16",
|
|
35
|
+
"graphql": "^16.2.0",
|
|
36
|
+
"graphql-ws": "^5.5.5",
|
|
37
|
+
"html-webpack-plugin": "^5.5.0",
|
|
38
|
+
"imports-loader": "^3.1.1",
|
|
38
39
|
"jquery": "^3.6.0",
|
|
39
|
-
"mini-css-extract-plugin": "^2.4.
|
|
40
|
+
"mini-css-extract-plugin": "^2.4.5",
|
|
40
41
|
"mongoose-paginate-v2": "^1.4.2",
|
|
41
|
-
"node-sass": "^
|
|
42
|
+
"node-sass": "^7.0.1",
|
|
42
43
|
"react": "^17.0.2",
|
|
43
44
|
"react-dom": "^17.0.2",
|
|
44
|
-
"sass-loader": "^12.
|
|
45
|
-
"style-loader": "^3.3.
|
|
45
|
+
"sass-loader": "^12.4.0",
|
|
46
|
+
"style-loader": "^3.3.1",
|
|
46
47
|
"svg-inline-loader": "^0.8.2",
|
|
47
|
-
"swagger-ui": "^
|
|
48
|
-
"swagger-ui-dist": "^
|
|
49
|
-
"terser-webpack-plugin": "^5.
|
|
50
|
-
"webpack": "^5.
|
|
48
|
+
"swagger-ui": "^4.1.3",
|
|
49
|
+
"swagger-ui-dist": "^4.1.3",
|
|
50
|
+
"terser-webpack-plugin": "^5.3.0",
|
|
51
|
+
"webpack": "^5.65.0",
|
|
51
52
|
"webpack-merge": "^5.8.0"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
|
-
"@mapbox/node-pre-gyp": "^1.0.
|
|
55
|
-
"node-gyp": "^8.
|
|
56
|
-
"sequelize-cli": "^6.
|
|
55
|
+
"@mapbox/node-pre-gyp": "^1.0.8",
|
|
56
|
+
"node-gyp": "^8.4.1",
|
|
57
|
+
"sequelize-cli": "^6.3.0"
|
|
57
58
|
},
|
|
58
59
|
"license": "CECILL-B",
|
|
59
60
|
"readmeFilename": "README.md",
|
|
@@ -3,7 +3,7 @@ const package = require(path.resolve("package.json"));
|
|
|
3
3
|
const env = process.env.NODE_ENV;
|
|
4
4
|
const logName = `${package.name}.log`;
|
|
5
5
|
|
|
6
|
-
let cpu = require('os').cpus().length;
|
|
6
|
+
let cpu = 2 // require('os').cpus().length;
|
|
7
7
|
let exec_mode = "cluster";
|
|
8
8
|
let watch = false;
|
|
9
9
|
let autorestart =true ;
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
2
1
|
|
|
3
2
|
module.exports = {
|
|
4
3
|
mode: 'development',
|
|
5
4
|
devtool: 'source-map',
|
|
6
5
|
plugins: [
|
|
7
|
-
|
|
8
|
-
fallback: "style-loader",
|
|
9
|
-
filename: "./css/[name].css",
|
|
10
|
-
allChunks: true
|
|
11
|
-
})
|
|
6
|
+
|
|
12
7
|
]
|
|
13
8
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
const TerserPlugin = require('terser-webpack-plugin');
|
|
2
|
-
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
3
2
|
|
|
4
3
|
module.exports = {
|
|
5
4
|
mode: 'production',
|
|
@@ -19,11 +18,7 @@ module.exports = {
|
|
|
19
18
|
]
|
|
20
19
|
},
|
|
21
20
|
plugins: [
|
|
22
|
-
|
|
23
|
-
fallback: "style-loader",
|
|
24
|
-
filename: "./css/[name].min.css",
|
|
25
|
-
allChunks: true
|
|
26
|
-
})
|
|
21
|
+
|
|
27
22
|
]
|
|
28
23
|
|
|
29
24
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
const webpack = require('webpack');
|
|
2
2
|
const path = require('path');
|
|
3
3
|
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
4
|
+
const htmlPlugin = require('html-webpack-plugin');
|
|
4
5
|
const { merge } = require('webpack-merge');
|
|
5
|
-
const precss = require('precss');
|
|
6
|
-
const autoprefixer = require('autoprefixer');
|
|
7
6
|
|
|
8
7
|
let conf = null;
|
|
9
8
|
if (process.env.NODE_ENV === "development") {
|
|
@@ -19,7 +18,8 @@ module.exports = merge(conf, {
|
|
|
19
18
|
* See: http://webpack.github.io/docs/configuration.html#entry
|
|
20
19
|
*/
|
|
21
20
|
entry: {
|
|
22
|
-
|
|
21
|
+
app: path.resolve(__dirname, "..", "src", "browser", "index.js"),
|
|
22
|
+
socket: path.resolve(__dirname, "..", "src", "browser", "socketio.js")
|
|
23
23
|
},
|
|
24
24
|
target: 'web',
|
|
25
25
|
//watch: true,
|
|
@@ -39,7 +39,7 @@ module.exports = merge(conf, {
|
|
|
39
39
|
*
|
|
40
40
|
* See: http://webpack.github.io/docs/configuration.html#resolve-extensions
|
|
41
41
|
*/
|
|
42
|
-
extensions: ['.js'
|
|
42
|
+
extensions: ['.js'],
|
|
43
43
|
|
|
44
44
|
// An array of directory names to be resolved to the current directory
|
|
45
45
|
modules: ["node_modules"]
|
|
@@ -52,52 +52,58 @@ module.exports = merge(conf, {
|
|
|
52
52
|
module: {
|
|
53
53
|
rules: [{
|
|
54
54
|
// BABEL TRANSCODE
|
|
55
|
-
test: new RegExp("
|
|
55
|
+
test: new RegExp("\.js$"),
|
|
56
56
|
exclude: new RegExp("node_modules"),
|
|
57
57
|
use: [{
|
|
58
58
|
loader: 'babel-loader',
|
|
59
59
|
options: {
|
|
60
60
|
presets: ['@babel/preset-env']
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
}]
|
|
63
63
|
}, {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
test: /\.(sa|sc|c)ss$/,
|
|
65
|
+
use: [
|
|
66
|
+
//'css-hot-loader',
|
|
66
67
|
MiniCssExtractPlugin.loader,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
options: {
|
|
70
|
-
sourceMap: true
|
|
71
|
-
}
|
|
72
|
-
}, {
|
|
73
|
-
loader: 'resolve-url-loader',
|
|
74
|
-
options: {}
|
|
75
|
-
}, {
|
|
76
|
-
loader: 'postcss-loader', // Run post css actions
|
|
68
|
+
{
|
|
69
|
+
loader: "css-loader",
|
|
77
70
|
options: {
|
|
78
|
-
|
|
79
|
-
plugins: [autoprefixer({}), precss({})]
|
|
80
|
-
}
|
|
71
|
+
sourceMap: true
|
|
81
72
|
}
|
|
82
73
|
}, {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
74
|
+
loader: "sass-loader",
|
|
75
|
+
options: {
|
|
76
|
+
sourceMap: true
|
|
77
|
+
}
|
|
87
78
|
}
|
|
88
79
|
]
|
|
89
80
|
}, {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
}]
|
|
98
|
-
}]
|
|
81
|
+
test: /.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
|
|
82
|
+
type: 'asset/inline'
|
|
83
|
+
},{
|
|
84
|
+
test: /\.html$/,
|
|
85
|
+
loader: 'html-loader'
|
|
86
|
+
}]
|
|
99
87
|
},
|
|
100
88
|
plugins: [
|
|
89
|
+
new MiniCssExtractPlugin({
|
|
90
|
+
filename: "./css/[name].css"
|
|
91
|
+
}),
|
|
92
|
+
new htmlPlugin({
|
|
93
|
+
filename: path.resolve("dist", "index.ejs"),
|
|
94
|
+
template: path.resolve("src", "templates", "base.html"),
|
|
95
|
+
title: conf.name,
|
|
96
|
+
//cache: !dev,
|
|
97
|
+
chunks: ['app'],
|
|
98
|
+
templateParameters: conf
|
|
99
|
+
}),
|
|
100
|
+
new htmlPlugin({
|
|
101
|
+
filename: path.resolve("dist", "socketio.ejs"),
|
|
102
|
+
template: path.resolve("src", "templates", "socket.html"),
|
|
103
|
+
title: conf.name,
|
|
104
|
+
chunks: ['socket'],
|
|
105
|
+
templateParameters: conf
|
|
106
|
+
}),
|
|
101
107
|
new webpack.DefinePlugin({
|
|
102
108
|
'process.env': {
|
|
103
109
|
'NODE_ENV': JSON.stringify(process.env.NODE_ENV),
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"nodefony": "nodefony",
|
|
17
17
|
"pm2": "pm2",
|
|
18
|
-
"install": "env-cmd -e webpack_prod webpack --env production --config config/webpack.config.js
|
|
18
|
+
"install": "env-cmd -e webpack_prod webpack --env production --config config/webpack.config.js",
|
|
19
19
|
"start": "node ./bin/cli",
|
|
20
20
|
"dev": "env-cmd -e development pm2 start config/pm2.config.js --only {{name}} --env development --no-daemon",
|
|
21
21
|
"dev_debug": "env-cmd -e development_debug pm2 start config/pm2.config.js --only {{name}} --env development --no-daemon",
|
|
22
|
-
"prod": "env-cmd -e production pm2 start config/pm2.config.js --env production",
|
|
22
|
+
"prod": "env-cmd -e webpack_prod webpack --env production --config config/webpack.config.js;env-cmd -e production pm2 start config/pm2.config.js --env production",
|
|
23
23
|
"examples": "env-cmd -e development pm2 start config/pm2.config.js --only examples --env development --no-daemon",
|
|
24
24
|
"stop": "pm2 stop {{name}}",
|
|
25
25
|
"restart": "pm2 restart {{name}}",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"monit": "pm2 monit",
|
|
29
29
|
"status": "pm2 status",
|
|
30
30
|
"kill": "pm2 kill",
|
|
31
|
-
"webpack": "env-cmd -e webpack_prod webpack --env
|
|
31
|
+
"webpack": "env-cmd -e webpack_prod webpack --env production --stats verbose --config config/webpack.config.js",
|
|
32
32
|
"ssl": "./bin/generateCertificates.sh",
|
|
33
33
|
"test": "env-cmd -e test mocha --require @babel/register --recursive ./tests"
|
|
34
34
|
},
|
|
@@ -39,32 +39,37 @@
|
|
|
39
39
|
"microservice"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
+
"ejs": "^3.1.6",
|
|
42
43
|
"env-cmd": "^10.1.0",
|
|
43
44
|
"hello_world": "./src/n-api",
|
|
44
|
-
"markdown-it": "^12.0
|
|
45
|
+
"markdown-it": "^12.2.0",
|
|
45
46
|
"nodefony": "^{{version}}",
|
|
46
|
-
"
|
|
47
|
+
"nodefony-client": "^6.0.0-beta.18",
|
|
48
|
+
"pm2": "^5.1.2",
|
|
47
49
|
"pm2-logrotate": "^2.7.0",
|
|
48
|
-
"
|
|
49
|
-
"socket.io
|
|
50
|
+
"serve-static": "^1.14.1",
|
|
51
|
+
"socket.io": "^4.3.1",
|
|
52
|
+
"socket.io-client": "^4.3.2 "
|
|
50
53
|
},
|
|
51
54
|
"devDependencies": {
|
|
52
|
-
"@babel/cli": "^7.
|
|
53
|
-
"@babel/core": "^7.
|
|
54
|
-
"@babel/preset-env": "^7.
|
|
55
|
-
"@babel/register": "^7.
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
55
|
+
"@babel/cli": "^7.15.7",
|
|
56
|
+
"@babel/core": "^7.15.8",
|
|
57
|
+
"@babel/preset-env": "^7.15.8",
|
|
58
|
+
"@babel/register": "^7.15.3",
|
|
59
|
+
"@mapbox/node-pre-gyp": "^1.0.6",
|
|
60
|
+
"babel-loader": "^8.2.3",
|
|
61
|
+
"chai": "^4.3.4",
|
|
62
|
+
"html-loader": "^3.0.0",
|
|
63
|
+
"html-webpack-plugin": "^5.5.0",
|
|
64
|
+
"mini-css-extract-plugin": "^2.4.3",
|
|
65
|
+
"mocha": "^9.1.3",
|
|
66
|
+
"node-gyp": "^8.3.0",
|
|
67
|
+
"open": "^8.4.0",
|
|
68
|
+
"sass-loader": "^12.2.0",
|
|
64
69
|
"terser-webpack-plugin": "^5.0.3",
|
|
65
|
-
"webpack": "^5.
|
|
66
|
-
"webpack-cli": "^4.1
|
|
67
|
-
"webpack-merge": "^5.
|
|
70
|
+
"webpack": "^5.60.0",
|
|
71
|
+
"webpack-cli": "^4.9.1",
|
|
72
|
+
"webpack-merge": "^5.8.0"
|
|
68
73
|
},
|
|
69
74
|
"license": "ISC"
|
|
70
75
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const nodefony = require("nodefony");
|
|
2
|
-
const io = require('socket.io-client');
|
|
1
|
+
const nodefony = require("nodefony-client");
|
|
3
2
|
|
|
4
3
|
import "./index.css";
|
|
5
4
|
/*
|
|
@@ -11,7 +10,6 @@ class App extends nodefony.Service {
|
|
|
11
10
|
this.initSyslog();
|
|
12
11
|
this.log("INIT APP CLIENT");
|
|
13
12
|
this.log(`Nodefony Client version : ${nodefony.version}`);
|
|
14
|
-
this.io = io();
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const nodefony = require("nodefony-client");
|
|
2
|
+
import { io } from "socket.io-client";
|
|
3
|
+
|
|
4
|
+
import "./index.css";
|
|
5
|
+
/*
|
|
6
|
+
* Class
|
|
7
|
+
*/
|
|
8
|
+
class App extends nodefony.Service {
|
|
9
|
+
constructor() {
|
|
10
|
+
super("App");
|
|
11
|
+
this.initSyslog();
|
|
12
|
+
this.log("INIT APP CLIENT");
|
|
13
|
+
this.log(`Nodefony Client version : ${nodefony.version}`);
|
|
14
|
+
this.init()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
init(){
|
|
18
|
+
const socket = io('/',{
|
|
19
|
+
transports: [ 'websocket' ],
|
|
20
|
+
forceNew: true
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
socket.on("connect_error", function(e){
|
|
24
|
+
console.error(e);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
socket.on('connect', function(){
|
|
28
|
+
console.log("connect", socket.connected);
|
|
29
|
+
setTimeout(()=>{
|
|
30
|
+
socket.emit("microservice", "send after 5 s");
|
|
31
|
+
}, 5000);
|
|
32
|
+
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
socket.on('microservice', function(data){
|
|
36
|
+
console.log(data);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
socket.on('disconnect', function(){
|
|
40
|
+
console.log("disconnect");
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export default new App();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const nodefony = require("nodefony");
|
|
2
2
|
const path = require("path");
|
|
3
3
|
const config = require(path.resolve("config", "config.js"));
|
|
4
|
+
const ejs = require('ejs');
|
|
4
5
|
|
|
5
6
|
// examples services
|
|
6
7
|
const Server = require(path.resolve("src", "node", "services", "servers", "http.js"));
|
|
@@ -46,8 +47,11 @@ class Service extends nodefony.Service {
|
|
|
46
47
|
// add in service container
|
|
47
48
|
this.set("http", http);
|
|
48
49
|
http.on("request", async (request, response) => {
|
|
49
|
-
response.statusCode = 200;
|
|
50
|
-
response.setHeader('Content-Type', 'text/html');
|
|
50
|
+
//response.statusCode = 200;
|
|
51
|
+
//response.setHeader('Content-Type', 'text/html');
|
|
52
|
+
response.writeHead(200, {
|
|
53
|
+
'Content-Type': 'text/html;charset=utf-8'
|
|
54
|
+
})
|
|
51
55
|
http.log(` ${response.statusCode} url : http://${http.settings.hostname}:${http.settings.port}/`);
|
|
52
56
|
response.end(await this.renderHtml());
|
|
53
57
|
});
|
|
@@ -83,57 +87,13 @@ class Service extends nodefony.Service {
|
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
async renderHtml() {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<style>
|
|
92
|
-
body { font: 13px Helvetica, Arial; }
|
|
93
|
-
</style>
|
|
94
|
-
</head>
|
|
95
|
-
<body>
|
|
96
|
-
<p align="center">
|
|
97
|
-
<img src="https://github.com/nodefony/nodefony-core/raw/master/src/nodefony/bundles/framework-bundle/Resources/public/images/nodefony-logo.png"><br>
|
|
98
|
-
</p>
|
|
99
|
-
<h1 align="center">NODEFONY V6 Micro Service</h1>
|
|
100
|
-
<h2 align="center">Socket Io <h2>
|
|
101
|
-
|
|
102
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.dev.js"></script>
|
|
103
|
-
<script
|
|
104
|
-
src="https://code.jquery.com/jquery-3.4.1.min.js"
|
|
105
|
-
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
|
|
106
|
-
crossorigin="anonymous"></script>
|
|
107
|
-
|
|
108
|
-
<script>
|
|
109
|
-
var socket = io('/',{
|
|
110
|
-
transports: [ 'websocket' ],
|
|
111
|
-
forceNew: true
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
socket.on("connect_error", function(e){
|
|
115
|
-
console.error(e);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
socket.on('connect', function(){
|
|
119
|
-
console.log("connect", socket.connected);
|
|
120
|
-
setTimeout(()=>{
|
|
121
|
-
socket.emit("microservice", "send after 5 s");
|
|
122
|
-
}, 5000);
|
|
123
|
-
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
socket.on('microservice', function(data){
|
|
127
|
-
console.log(data);
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
socket.on('disconnect', function(){
|
|
131
|
-
console.log("disconnect");
|
|
90
|
+
const filename = path.resolve("dist", "socketio.ejs")
|
|
91
|
+
const res = await ejs.renderFile(filename, {
|
|
92
|
+
body: ""
|
|
93
|
+
}, {
|
|
94
|
+
async: true
|
|
132
95
|
});
|
|
133
|
-
|
|
134
|
-
</body>
|
|
135
|
-
</html>
|
|
136
|
-
`;
|
|
96
|
+
return res;
|
|
137
97
|
}
|
|
138
98
|
|
|
139
99
|
terminate(code){
|
|
@@ -3,6 +3,7 @@ const path = require("path");
|
|
|
3
3
|
const Server = require(path.resolve("src", "node", "services", "servers", "http.js"));
|
|
4
4
|
const ServerSecure = require(path.resolve("src", "node", "services", "servers", "https.js"));
|
|
5
5
|
const Markdown = require(path.resolve("src", "node", "services", "markdown", "markdown.js"));
|
|
6
|
+
const ejs = require('ejs');
|
|
6
7
|
|
|
7
8
|
class Service extends nodefony.Service {
|
|
8
9
|
|
|
@@ -31,8 +32,11 @@ class Service extends nodefony.Service {
|
|
|
31
32
|
this.set("http", http);
|
|
32
33
|
await http.start();
|
|
33
34
|
http.on("request", async (request, response) => {
|
|
34
|
-
response.statusCode = 200;
|
|
35
|
-
response.setHeader('Content-Type', 'text/html');
|
|
35
|
+
//response.statusCode = 200;
|
|
36
|
+
//response.setHeader('Content-Type', 'text/html');
|
|
37
|
+
response.writeHead(200, {
|
|
38
|
+
'Content-Type': 'text/html;charset=utf-8'
|
|
39
|
+
})
|
|
36
40
|
http.log(` ${response.statusCode} url : http://${http.settings.hostname}:${http.settings.port}/`);
|
|
37
41
|
response.end(await this.renderHtml());
|
|
38
42
|
});
|
|
@@ -45,8 +49,11 @@ class Service extends nodefony.Service {
|
|
|
45
49
|
this.set("https", https);
|
|
46
50
|
await https.start();
|
|
47
51
|
https.on("request", async (request, response) => {
|
|
48
|
-
response.statusCode = 200;
|
|
49
|
-
response.setHeader('Content-Type', 'text/html');
|
|
52
|
+
//response.statusCode = 200;
|
|
53
|
+
//response.setHeader('Content-Type', 'text/html');
|
|
54
|
+
response.writeHead(200, {
|
|
55
|
+
'Content-Type': 'text/html;charset=utf-8'
|
|
56
|
+
})
|
|
50
57
|
https.log(` ${response.statusCode} url : https://${https.settings.hostname}:${https.settings.port}/`);
|
|
51
58
|
response.end(await this.renderHtml());
|
|
52
59
|
});
|
|
@@ -56,20 +63,13 @@ class Service extends nodefony.Service {
|
|
|
56
63
|
async renderHtml() {
|
|
57
64
|
const readme = path.resolve("README.md");
|
|
58
65
|
const md = await this.markdown.fileToMarkdown(readme);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
</style>
|
|
67
|
-
</head>
|
|
68
|
-
<body>
|
|
69
|
-
${md}
|
|
70
|
-
</body>
|
|
71
|
-
</html>
|
|
72
|
-
`;
|
|
66
|
+
const filename = path.resolve("dist", "index.ejs")
|
|
67
|
+
const res = await ejs.renderFile(filename, {
|
|
68
|
+
body: md
|
|
69
|
+
}, {
|
|
70
|
+
async: true
|
|
71
|
+
});
|
|
72
|
+
return res;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
getMarkdown() {
|
|
@@ -2,6 +2,12 @@ const nodefony = require("nodefony");
|
|
|
2
2
|
const http = require('http');
|
|
3
3
|
const path = require("path");
|
|
4
4
|
|
|
5
|
+
const serveStatic = require('serve-static');
|
|
6
|
+
const dist = path.resolve("dist");
|
|
7
|
+
const serve = serveStatic(dist, {
|
|
8
|
+
index: false
|
|
9
|
+
});
|
|
10
|
+
|
|
5
11
|
class Server extends nodefony.Service {
|
|
6
12
|
constructor(service) {
|
|
7
13
|
super("HTTP Server", service.container);
|
|
@@ -17,7 +23,9 @@ class Server extends nodefony.Service {
|
|
|
17
23
|
return new Promise((resolve, reject) => {
|
|
18
24
|
this.log("Starting Server HTTP", "INFO");
|
|
19
25
|
this.server = http.createServer((req, res) => {
|
|
20
|
-
return
|
|
26
|
+
return serve(req, res, () => {
|
|
27
|
+
return this.fire("request", req, res);
|
|
28
|
+
});
|
|
21
29
|
});
|
|
22
30
|
|
|
23
31
|
this.server.listen(this.settings.port, this.settings.hostname, () => {
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
const nodefony = require("nodefony");
|
|
2
2
|
const https = require('https');
|
|
3
|
+
const serveStatic = require('serve-static');
|
|
4
|
+
const dist = path.resolve("dist");
|
|
5
|
+
const serve = serveStatic(dist, {
|
|
6
|
+
index: false
|
|
7
|
+
});
|
|
8
|
+
|
|
3
9
|
|
|
4
10
|
class Server extends nodefony.Service {
|
|
5
11
|
constructor(service){
|
|
@@ -16,7 +22,9 @@ class Server extends nodefony.Service {
|
|
|
16
22
|
return new Promise((resolve, reject) => {
|
|
17
23
|
this.log("Starting Server HTTPS", "INFO");
|
|
18
24
|
this.server = https.createServer(this.settings.certificates, (req, res) => {
|
|
19
|
-
return
|
|
25
|
+
return serve(req, res, () => {
|
|
26
|
+
return this.fire("request", req, res);
|
|
27
|
+
});
|
|
20
28
|
});
|
|
21
29
|
|
|
22
30
|
this.server.listen(this.settings.port, this.settings.hostname, () => {
|