1
0
Fork 0

Better build/dev scripts

This commit is contained in:
Chocobozzz 2017-06-11 11:29:03 +02:00
parent 69f616ab3a
commit 66dd264f7b
15 changed files with 612 additions and 27 deletions

View File

@ -183,9 +183,15 @@ The following commands will upgrade the source (according to your current branch
### Development ### Development
In this mode, the server will run requests between pods more quickly, the videos duration are limited to a few seconds and the client files are automatically compiled when we modify them: In this mode, the server will run requests between pods more quickly, the videos duration are limited to a few seconds.
$ npm run dev To develop on the server side (server files are automatically compiled when we modify them and the server restarts automatically too):
$ npm run dev:server
To develop on the client side (client files are automatically compiled when we modify them):
$ npm run dev:client
**Username**: *root* <br/> **Username**: *root* <br/>
**Password**: *test* **Password**: *test*

View File

@ -5,6 +5,7 @@ export class AuthUser extends User {
private static KEYS = { private static KEYS = {
ID: 'id', ID: 'id',
ROLE: 'role', ROLE: 'role',
EMAIL: 'email',
USERNAME: 'username', USERNAME: 'username',
DISPLAY_NSFW: 'display_nsfw' DISPLAY_NSFW: 'display_nsfw'
}; };
@ -18,6 +19,7 @@ export class AuthUser extends User {
{ {
id: parseInt(localStorage.getItem(this.KEYS.ID)), id: parseInt(localStorage.getItem(this.KEYS.ID)),
username: localStorage.getItem(this.KEYS.USERNAME), username: localStorage.getItem(this.KEYS.USERNAME),
email: localStorage.getItem(this.KEYS.EMAIL),
role: localStorage.getItem(this.KEYS.ROLE), role: localStorage.getItem(this.KEYS.ROLE),
displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true' displayNSFW: localStorage.getItem(this.KEYS.DISPLAY_NSFW) === 'true'
}, },
@ -40,6 +42,7 @@ export class AuthUser extends User {
id: number, id: number,
username: string, username: string,
role: string, role: string,
email: string,
displayNSFW: boolean displayNSFW: boolean
}, hashTokens: any) { }, hashTokens: any) {
super(userHash); super(userHash);

View File

@ -218,6 +218,7 @@ export class AuthService {
const id = obj.id; const id = obj.id;
const username = obj.username; const username = obj.username;
const role = obj.role; const role = obj.role;
const email = obj.email;
const displayNSFW = obj.displayNSFW; const displayNSFW = obj.displayNSFW;
const hashTokens = { const hashTokens = {
access_token: obj.access_token, access_token: obj.access_token,
@ -225,7 +226,7 @@ export class AuthService {
refresh_token: obj.refresh_token refresh_token: obj.refresh_token
}; };
this.user = new AuthUser({ id, username, role, displayNSFW }, hashTokens); this.user = new AuthUser({ id, username, role, displayNSFW, email }, hashTokens);
this.user.save(); this.user.save();
this.setStatus(AuthStatus.LoggedIn); this.setStatus(AuthStatus.LoggedIn);

View File

@ -313,7 +313,7 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
this.metaService.setTag('og:image', this.video.thumbnailPath); this.metaService.setTag('og:image', this.video.thumbnailPath);
this.metaService.setTag('og:duration', this.video.duration); this.metaService.setTag('og:duration', this.video.duration.toString());
this.metaService.setTag('og:site_name', 'PeerTube'); this.metaService.setTag('og:site_name', 'PeerTube');

View File

@ -17,27 +17,30 @@
"url": "git://github.com/Chocobozzz/PeerTube.git" "url": "git://github.com/Chocobozzz/PeerTube.git"
}, },
"scripts": { "scripts": {
"build": "scripty", "build": "SCRIPTY_PARALLEL=true scripty",
"build:server:prod": "scripty", "build:server": "scripty",
"build:client:prod": "scripty", "build:client": "scripty",
"clean": "npm run clean:client", "clean": "npm run clean:client",
"clean:client": "scripty", "clean:client": "scripty",
"clean:server:test": "scripty", "clean:server:test": "scripty",
"watch:client": "SCRIPTY_PARALLEL=true scripty", "watch:client": "scripty",
"watch:server": "scripty",
"danger:clean:dev": "scripty", "danger:clean:dev": "scripty",
"danger:clean:prod": "scripty", "danger:clean:prod": "scripty",
"danger:clean:modules": "scripty", "danger:clean:modules": "scripty",
"reset-password": "scripty", "reset-password": "scripty",
"play": "scripty", "play": "scripty",
"dev": "scripty", "dev:server": "scripty",
"dev:client": "scripty",
"start": "node dist/server", "start": "node dist/server",
"check": "scripty", "check": "scripty",
"upgrade": "scripty", "upgrade": "scripty",
"update-host": "scripty", "update-host": "scripty",
"test": "scripty", "test": "scripty",
"help": "scripty", "help": "scripty",
"postinstall": "cd client && yarn install",
"tsc": "tsc", "tsc": "tsc",
"postinstall": "cd client && yarn install" "nodemon": "nodemon"
}, },
"dependencies": { "dependencies": {
"async": "^2.0.0", "async": "^2.0.0",
@ -96,6 +99,7 @@
"chai": "^3.3.0", "chai": "^3.3.0",
"commander": "^2.9.0", "commander": "^2.9.0",
"mocha": "^3.0.1", "mocha": "^3.0.1",
"nodemon": "^1.11.0",
"source-map-support": "^0.4.15", "source-map-support": "^0.4.15",
"standard": "^10.0.0", "standard": "^10.0.0",
"supertest": "^3.0.0", "supertest": "^3.0.0",

View File

@ -1,5 +0,0 @@
#!/usr/bin/env sh
NODE_ENV=test concurrently \
"npm run build:client:prod" \
"npm run build:server:prod"

View File

@ -2,4 +2,4 @@
NODE_ENV=test concurrently -k \ NODE_ENV=test concurrently -k \
"npm run watch:client" \ "npm run watch:client" \
"tsc && npm start" "npm run build:server && NODE_ENV=test npm start"

8
scripts/dev/server.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env sh
if [ ! -d "./client/dist" ]; then
echo "client/dist does not exist, compile client files..."
npm run build:client
fi
npm run watch:server

5
scripts/watch/server.sh Executable file
View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
NODE_ENV=test concurrently \
"npm run tsc -- --sourceMap && npm run nodemon -- --delay 2 --watch ./dist dist/server" \
"npm run tsc -- --sourceMap -w"

View File

@ -55,7 +55,7 @@ Uses [TSLint](https://palantir.github.io/tslint/) for TypeScript linting and [An
* Install [the dependencies](https://github.com/Chocobozzz/PeerTube#dependencies) * Install [the dependencies](https://github.com/Chocobozzz/PeerTube#dependencies)
* Run `npm install` at the root directory to install all the dependencies * Run `npm install` at the root directory to install all the dependencies
* Run PostgreSQL and create the database `peertube_dev`. * Run PostgreSQL and create the database `peertube_dev`.
* Run `npm run dev` to compile the client and automatically run the server. Then the server will watch and compile the client files automatically. You just need to refresh the browser to see your modifications. * Run `npm run dev:client` to compile the client, run the server and watch client files modifications.
In a Angular application, we create components that we put together. Each component is defined by an HTML structure, a TypeScript file and optionnaly a SASS file. In a Angular application, we create components that we put together. Each component is defined by an HTML structure, a TypeScript file and optionnaly a SASS file.
If you are not familiar with Angular I recommend you to read the [quickstart guide](https://angular.io/docs/ts/latest/quickstart.html). If you are not familiar with Angular I recommend you to read the [quickstart guide](https://angular.io/docs/ts/latest/quickstart.html).

View File

@ -42,7 +42,7 @@ Uses [JavaScript Standard Style](http://standardjs.com/).
* Install [the dependencies](https://github.com/Chocobozzz/PeerTube#dependencies) * Install [the dependencies](https://github.com/Chocobozzz/PeerTube#dependencies)
* Run `npm install` at the root directory to install all the dependencies * Run `npm install` at the root directory to install all the dependencies
* Run PostgreSQL and create the database `peertube_dev`. * Run PostgreSQL and create the database `peertube_dev`.
* Run `npm run dev` to compile the client and automatically run the server. If the client files are already compiled you can simply run `NODE_ENV=test node dist/server` * Run `npm run dev:server` to compile the client, run the server and watch server files modifications.
The `NODE_ENV=test` is set to speed up communications between pods (see [constants.ts](https://github.com/Chocobozzz/PeerTube/blob/master/server/initializers/constants.ts)). The `NODE_ENV=test` is set to speed up communications between pods (see [constants.ts](https://github.com/Chocobozzz/PeerTube/blob/master/server/initializers/constants.ts)).

581
yarn.lock

File diff suppressed because it is too large Load Diff