Skip to content

Commit 3608209

Browse files
committed
Release v1.0.0. Move from Vn Native to NukeJS
1 parent 2f79980 commit 3608209

File tree

245 files changed

+34451
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

245 files changed

+34451
-2
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,7 @@ dist
102102

103103
# TernJS port file
104104
.tern-port
105+
106+
web-build
107+
108+
www/assets

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022 Steve Lee
3+
Copyright (c) 2021 Steve Lee
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,24 @@
1+
![alt text](https://raw.githubusercontent.com/steveleetn91/nukejs/master/assets/images/solution.jpg)
2+
![alt text](https://raw.githubusercontent.com/steveleetn91/nukejs/master/assets/images/logo.png)
13
# NukeJS
2-
Nukejs is framework develop in Javascript and reuse cordova to support cross platforms. OOP is standard
4+
5+
NukeJS is a framework useful all platforms, it's help you develop project E-commer, Manager, Chat, Video, Social network ....
6+
7+
https://join.slack.com/t/vnnative/shared_invite/zt-10c6aiylx-GBQ8e2M_skQyh1i4fW879A
8+
9+
NukeJS using lazy load for all page, so it's ready for big project.
10+
`Note : We need NodeJS version >= 16.x.x`
11+
12+
13+
# Document site
14+
15+
`https://www.vnnativeframework.club/`
16+
17+
18+
# Issue
19+
20+
Let's give for me a some issue
21+
`https://github.com/steveleetn91/nukejs/issues`
22+
23+
# Licence
24+
Licence : MIT

assets/images/logo.png

96.4 KB
Loading

assets/images/solution.jpg

124 KB
Loading

assets/scss/global.scss

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
@ This is global style, we using it's all. It's auto load, so only use. Don't include anywhere
3+
**/
4+
@import url('https://fonts.googleapis.com/css2?family=Roboto+Slab&display=swap');
5+
body {
6+
font-family: 'Roboto Slab', serif;
7+
a {
8+
color : rgb(66, 66, 248)
9+
}
10+
a:hover {
11+
cursor: pointer;
12+
}
13+
h1 {
14+
color: red;
15+
}
16+
.box-container {
17+
width: 80%;
18+
margin: auto;
19+
}
20+
.button-default {
21+
background: white;
22+
border: 1px solid #ccc;
23+
padding: 10px;
24+
border-radius: 10px;
25+
}
26+
}

bin/android/add.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env node
2+
import * as cli from "cli";;
3+
const Androidfs = require('fs');
4+
const AndroidAddframeworkInfo = './framework.json';
5+
const AndroidAddIP : any = require("ip");
6+
const AndroidAddConfig = require("../../../config/config.json");
7+
try {
8+
if (Androidfs.existsSync(AndroidAddframeworkInfo)) {
9+
cli.exec("cordova platforms add android && rm -rf ./platforms/android/app/src/main/assets/www/index.html",
10+
(resp: any): void => {
11+
cli.info(resp.toString());
12+
cli.ok("Android OS really for development! ");
13+
setupDevelopmentConfigXml();
14+
}, (resp: any): void => {
15+
cli.info(resp.toString());
16+
cli.ok("Android OS really for development! ");
17+
setupDevelopmentConfigXml();
18+
});
19+
}
20+
const setupDevelopmentConfigXml = async (): Promise<void> => {
21+
let configXml: string = await Androidfs.readFileSync('./platforms/android/app/src/main/res/xml/config.xml',
22+
{ encoding: 'utf8', flag: 'r' });
23+
configXml = configXml.replaceAll("index.html", `http://${AndroidAddIP.address()}:${AndroidAddConfig.PORT + 1}`);
24+
await Androidfs.writeFileSync('./platforms/android/app/src/main/res/xml/config.xml', configXml);
25+
cli.ok("Please open Android Studio before start development Android");
26+
}
27+
} catch (error) {
28+
cli.error(error.toString());
29+
}

bin/android/build.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/usr/bin/env node
2+
import * as cli from "cli";
3+
const AndroidBuildIp = require("ip");
4+
const AndroidBuildfs = require('fs');
5+
const AndroidBuildframeworkInfo = './framework.json';
6+
const AndroidBuildandroidConfig = './platforms/android/app/src/main/AndroidManifest.xml';
7+
const AndroidBuilConfigJson = require("../../../config/config.json");
8+
try {
9+
10+
const prepare : Function = (next : Function) : void => {
11+
cli.exec("cd ./platforms/android/app/src/main/assets/www && rm -rf ./assets && mkdir assets",(resp : any) : Function => {
12+
return next();
13+
},(resp : any) : Function => {
14+
return next();
15+
});
16+
}
17+
const setupDevelopmentConfigXmlProd = async (callback : Function): Promise<void> => {
18+
let configXml: string = await AndroidBuildfs.readFileSync('./platforms/android/app/src/main/res/xml/config.xml',
19+
{ encoding: 'utf8', flag: 'r' });
20+
configXml = configXml.replaceAll(`http://${AndroidBuildIp.address()}:${AndroidBuilConfigJson.PORT + 1}`,"index.html");
21+
await AndroidBuildfs.writeFileSync('./platforms/android/app/src/main/res/xml/config.xml', configXml);
22+
cli.ok("Please open Android Studio and release app");
23+
return callback();
24+
}
25+
if (AndroidBuildfs.existsSync(AndroidBuildframeworkInfo) && AndroidBuildfs.existsSync(AndroidBuildandroidConfig)) {
26+
prepare(() : void => {
27+
cli.exec("vn3-web-build && cp -r ./www/* ./platforms/android/app/src/main/assets/www && cp -r ./bin/android/views/production.ejs ./platforms/android/app/src/main/assets/www/index.html",
28+
(resp: any) : void =>{
29+
setupDevelopmentConfigXmlProd(() => {
30+
cli.info(resp.toString());
31+
cli.ok("Completed prepare building Androis OS");
32+
})
33+
},
34+
(resp: any) : void => {
35+
setupDevelopmentConfigXmlProd(() => {
36+
cli.info(resp.toString());
37+
cli.ok("Completed prepare building Androis OS");
38+
})
39+
});
40+
});
41+
}
42+
}catch(error) {
43+
cli.error(error.toString());
44+
}

bin/android/development.ts

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#!/usr/bin/env node
2+
import * as cli from "cli";
3+
import * as express from "express";
4+
let Androidapp = express();
5+
const AndroidHttp = require('http').Server(Androidapp);
6+
const Androidio = require('socket.io')(AndroidHttp);
7+
const AndroiDevelopmentfs = require('fs');
8+
const AndroiDevelopmentframeworkInfo = './framework.json';
9+
const AndroiDevelopmentAndroidConfig = './platforms/android/app/src/main/AndroidManifest.xml';
10+
const AndroidDevchokidar = require('chokidar');
11+
const AndroidDevwatcher = AndroidDevchokidar.watch(__dirname + "/../../../platforms/android/app/src/main/assets/www", { ignored: /^\./, persistent: true });
12+
const config = require("../../../config/config.json");
13+
try {
14+
const AndroidDevelopmentServe = (callback: Function): void => {
15+
16+
/**
17+
* Server Listen change or add
18+
*/
19+
const reloadEvent: Function = (): void => {
20+
AndroidDevwatcher
21+
.on('add', (path: string): void => {
22+
setTimeout(() => {
23+
Androidio.emit('has reload', `Rebuild`);
24+
},2000);
25+
})
26+
.on('change', (path: string): void => {
27+
setTimeout(() => {
28+
Androidio.emit('has reload', `Rebuild`);
29+
},2000);
30+
})
31+
}
32+
/**
33+
* SV
34+
*/
35+
36+
Androidapp.set('view engine', 'ejs');
37+
Androidapp.use(express.static(`${__dirname}/../../../platforms/android/app/src/main/assets/www`));
38+
Androidapp.get('/', (req: any, res: any): void => {
39+
res.render(`${__dirname}/../../../bin/android/views/development`);
40+
});
41+
Androidapp.get('/:slug', (req: any, res: any): void => {
42+
res.render(`${__dirname}/../../../bin/android/views/development`);
43+
});
44+
Androidapp.get('/:slug/:slug', (req: any, res: any): void => {
45+
res.render(`${__dirname}/../../../bin/android/views/development`);
46+
});
47+
Androidapp.get('/:slug/:slug/:slug', (req: any, res: any): void => {
48+
res.render(`${__dirname}/../../../bin/android/views/development`);
49+
});
50+
Androidapp.get('/:slug/:slug/:slug/:slug', (req: any, res: any): void => {
51+
res.render(`${__dirname}/../../../bin/android/views/development`);
52+
});
53+
Androidio.on('connection', (socket: any): void => {
54+
socket.on('has reload', (msg: string) => {
55+
cli.info("Has update");
56+
});
57+
});
58+
AndroidHttp.listen(Number(config.PORT) + 1, (): void => {
59+
cli.ok(`Server running at http://localhost:${Number(config.PORT) + 1}/`);
60+
callback();
61+
reloadEvent();
62+
});
63+
64+
}
65+
if (AndroiDevelopmentfs.existsSync(AndroiDevelopmentframeworkInfo) && AndroiDevelopmentfs.existsSync(AndroiDevelopmentAndroidConfig)) {
66+
cli.exec("vn3-web-build && cp -r ./www/* ./platforms/android/app/src/main/assets/www && rm -rf ./platforms/android/app/src/main/assets/www/index.html",
67+
(resp: any): void => {
68+
cli.info(resp.toString());
69+
cli.ok("Completed prepare building Androis OS");
70+
cli.info("Installed development");
71+
AndroidDevelopmentServe(() => {
72+
cli.ok("Please run app by Android Studio")
73+
});
74+
},
75+
(resp: any): void => {
76+
cli.info(resp.toString());
77+
cli.ok("Completed prepare building Androis OS");
78+
cli.info("Installed development");
79+
AndroidDevelopmentServe(() => {
80+
cli.ok("Please run app by Android Studio")
81+
});
82+
});
83+
}
84+
} catch (error) {
85+
cli.error(error.toString());
86+
}

bin/android/remove.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env node
2+
import * as cli from "cli";;
3+
const AndroidRemovefs = require('fs');
4+
const frameworkInfo = './framework.json';
5+
const androidConfig = './platforms/android/app/src/main/AndroidManifest.xml';
6+
try {
7+
if (AndroidRemovefs.existsSync(frameworkInfo) && AndroidRemovefs.existsSync(androidConfig)) {
8+
cli.exec("cordova platforms rm android",
9+
(resp : any) : void =>{
10+
cli.info(resp.toString());
11+
cli.ok("Completed remove Androis OS");
12+
},
13+
(resp : any) : void => {
14+
cli.info(resp.toString());
15+
cli.ok("Completed remove Androis OS");
16+
});
17+
}
18+
}catch(error) {
19+
cli.error(error.toString());
20+
}

0 commit comments

Comments
 (0)