Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

✨ next release #63

Open
wants to merge 86 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
7218872
clear CHANGELOG
js2me Dec 6, 2018
19bb289
fix:docs: merge conflicts
js2me Dec 6, 2018
b94ded7
fix: styles for title in web version (fixed size)
js2me Jan 26, 2019
f2880e0
refactor: BREAKING CHANGE: server side code has been refactored, crea…
js2me Feb 19, 2019
b441c21
Merge branch 'develop' of https://github.com/js2me/flamebird into dev…
js2me Feb 19, 2019
aaad4a3
refactor: move envs to utils/envs; fix: problems with aggregating Pro…
js2me Feb 20, 2019
0b43fba
fix: problems with parsing Procfile; refactor: moved text color chang…
js2me Feb 20, 2019
ba138f4
BREAKING CHANGE:refactor: rename 'isNPM' to 'type' and now its value …
js2me Feb 20, 2019
9744bfc
chore: short changes in web GUI, updated kinka library
js2me Feb 21, 2019
90c1e7a
BREAKING CHANGE: updated /info endpoint appName renamed to name
js2me Feb 21, 2019
8d38da1
internal: small refactoring and prepare code for multitasking
js2me Feb 22, 2019
221694f
refactoring: separate tabs from task list script
js2me Feb 24, 2019
981038d
refactoring: created more flexible task list and tabs
js2me Feb 24, 2019
58b4f0c
refactoring: removed needless searching active tab by array
js2me Feb 24, 2019
332f23f
refactoring: rewrite weblogger for multiple using
js2me Feb 25, 2019
db7b1e4
fix: command names
Feb 26, 2019
41176bf
fix: exception when active tab has been removed
Feb 27, 2019
7528898
chore: changed title of the application
Apr 19, 2019
0ac55b7
chore: upload web client screenshot
js2me May 24, 2019
6cc00cf
Update README.md
js2me May 24, 2019
252de23
feat: update all dependendencies versions
Jun 21, 2019
44fa806
chore:use @babel/plugin-transform-runtime babel plugin instead of dep…
Jun 21, 2019
bef9fe4
feat: fix problem with failed build of webpack because of babel
Jun 21, 2019
aaf0598
chore: renamed npm scripts; ci/cd: update travis build config; fix: e…
Jun 21, 2019
116f8a4
chore: changed access rules for flamebird.js (required for unix like …
js2me Jun 21, 2019
687b216
chore: changed webpack config (try to fix webpack build css files)
js2me Jun 21, 2019
9d5f01c
feat: separate client and server applications
js2me Jun 23, 2019
1bfecc1
feat: moved all assets to the assets folder (web client)
js2me Jun 23, 2019
99fad14
feat: added rollup (failed build config)
js2me Jun 24, 2019
d0d0c50
chore: updated rollup config; chore: changed WebLogger to ES2015 class
Jun 24, 2019
7b7c2c7
BREAKING_CHANGE: start fully rewriting all frontend application
js2me Jun 24, 2019
e516399
chore: added redom dep; feat: rewrited main.js to a class; feat: sepa…
js2me Jun 25, 2019
0b4c03a
chore: removed yarn; refactor: partial changes in nodejs code; fix: t…
js2me Aug 9, 2019
083cce9
fix: try to fix problem with webpack
js2me Aug 10, 2019
5dea46a
feat: migrated all scripts (frontend) to the ES6 syntax; feat: change…
js2me Aug 18, 2019
ac986d5
fix: changed client side scripts
js2me Aug 18, 2019
e789a7d
chore: try to fix webpack build frontend
js2me Aug 18, 2019
bd628cf
feat: moved all frontend to ES6+ syntax; fix: webpack config to use E…
js2me Aug 21, 2019
5216fdf
chore: added dev script for hot development; internal: refactoring an…
js2me Aug 25, 2019
8393888
fix(docs): logo
js2me Aug 25, 2019
3b2431e
fix: fixed most problems linked with migration to the ES6 for web ver…
js2me Aug 25, 2019
456acfa
fix: problems with calling dev script; refactor: combine all logic li…
js2me Aug 26, 2019
0e00a7a
fix: layout for medium screens and layout of the tabs element
js2me Aug 26, 2019
1011e46
chore: remove console log output in web version; chore: remove old we…
js2me Aug 26, 2019
f8b36ba
chore: updated lock file
Aug 27, 2019
c8131e3
Rename tabs.js to Tabs.js
js2me Aug 27, 2019
bb459b3
Rename weblogger.js to WebLogger.js
js2me Aug 27, 2019
515d1fa
fix: eslint issues
Aug 27, 2019
c08870e
feat: updated travis config
Aug 27, 2019
fc46269
fix: webpack config
Aug 27, 2019
0542b6d
fix: add ellipsing text for command names
js2me Aug 27, 2019
0848880
bump: version to 3.0.0-alpha
js2me Aug 27, 2019
9284822
docs: updated CHANGELOG
js2me Aug 27, 2019
16c641a
fix: problems with babel for web version
js2me Aug 28, 2019
fd4d5da
fix: problem with tabs on wide screens
js2me Aug 28, 2019
9d853e0
chore: update styles for tab (web)
Aug 29, 2019
3e8f589
chore(refactor): ws message
Aug 29, 2019
7643ffc
chore(refactor): move all logic linked with header manipulations to t…
js2me Aug 30, 2019
de975f8
fix: merge conflicts
js2me Aug 30, 2019
c5a1687
fix: problem with theme icon click; fix: problem with using export ke…
js2me Aug 30, 2019
cb5a9a9
fix: UI bug with tab padding
js2me Aug 30, 2019
2a368cd
refactor: moved some important things (options) to the constants.js f…
Aug 30, 2019
88b01d6
feat: added flamebirdrc
js2me Aug 31, 2019
e043970
refactor: usings of storage module; fix: logic linked with config/rc …
js2me Aug 31, 2019
538cbdd
chore(fix): renamed memCache to mem_cache module
js2me Aug 31, 2019
37b1117
feat: added UI for configs switcher; feat: added ability to switch ap…
js2me Sep 1, 2019
3dc5503
BREAKING_CHANGE: update API for web version (see CHANGELOG)
js2me Sep 1, 2019
321285b
chore: update lock file; chore: remove rc file
Sep 2, 2019
a538c25
chore: added .flamebirdrc to gitignore
Sep 2, 2019
7a50f3a
fix: stable working run/stop tasks with using configs; fix: eslint is…
Sep 2, 2019
42cc3bd
fix: problems with calling commands (main); bug: found a bug linked w…
Sep 2, 2019
5594e3c
fix: problem with cleaning logs; fix: try to fix spawn command which …
js2me Sep 3, 2019
ca436a9
fix: executing scripts from not main configs
js2me Sep 3, 2019
7fbf68c
chore: added TODOs
js2me Sep 4, 2019
4631c74
fix: problems with working .env file
Sep 4, 2019
da8d737
feat: added ability to terminate config file
js2me Sep 9, 2019
f8f2041
feat: handling remove configs
js2me Sep 10, 2019
9f25848
fix: exception linked with task id; feat: removing configs
js2me Sep 10, 2019
b458741
fix: envs endpoint call; BREAKING_CHANGE: rename ignore-pms to ignore…
Sep 12, 2019
294cae5
docs: update README (project structure + contrib part)
Sep 12, 2019
6583b33
docs: update project structure
Sep 12, 2019
4d9ab41
feat: add styles for config dropdown (web) for dark theme
js2me Sep 12, 2019
f859b04
docs: update README
Sep 13, 2019
1f5ce87
docs(CHANGELOG)
js2me Sep 16, 2019
23f774d
fix: eslint issue
js2me Sep 16, 2019
2b5a185
bug: revert back changes linked with undefined tasks and configs
js2me Sep 16, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 0 additions & 47 deletions .babelrc

This file was deleted.

2 changes: 1 addition & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
node_modules
lib/app/libs
dist
3 changes: 3 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,14 @@ env:
browser: true

rules:
# no-undef: 0
prettier/prettier:
- error
- trailingComma: es5
singleQuote: true
semi: false
no-var: 2
prefer-const: 2

# TODO: The following rules should be removed incrementally in order to fully
# integrate lint rules from the Standard ESLint config and Prettier
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
node_modules/
node_modules/
dist
.flamebirdrc
67 changes: 53 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,60 @@
language: node_js
branches:
only:
- master
node_js:
- "node"

cache:
yarn: true
directories:
- "node_modules"
- "node_modules"

before_install:
- echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc
- export PACKAGE_VERSION=$(node -p "require('./package.json').version")
- export NPM_REMOTE_VERSION=$(npm view flamebird version)
- export PACKAGE_NAME=$(node -p "require('./package.json').name")
- export BRANCH_IS_TAG=$(node -p "/^([0-9].[0-9].[0-9]+((-(alpha|beta))|))$/.test('${TRAVIS_BRANCH}')")
- export PROJECT_NAME="acacode/flamebird"
- export RELEASE_BODY=$(node -p "'[Click here to find current release changes](https://github.com/$PROJECT_NAME/blob/$TRAVIS_BRANCH/CHANGELOG.md)'")

install:
- yarn
script:
- yarn lint-js
- yarn build-prod
after_success:
- if [ ${TRAVIS_BRANCH} = "master" ] && [ "${TRAVIS_PULL_REQUEST}" = "false" ];then
npm publish;
fi
- npm ci

jobs:
include:
- stage: pre-test(lint,audit)
script:
- npm audit
- npm run lint
- stage: test
script:
- npm run build
- npm run test
- stage: publish
if: env(BRANCH_IS_TAG) != true AND branch = master AND type = push
name: "Create Github Release"
before_deploy:
- git config --global user.email "[email protected]"
- git config --global user.name "Travis CI"
- git tag $PACKAGE_VERSION -a -m "Generated tag from TravisCI for build $TRAVIS_BUILD_NUMBER from $TRAVIS_BRANCH"
- git push -q https://[email protected]/$PROJECT_NAME --tags
- zip -r release.zip dist flamebird.js LICENSE postinstall.js README.md client server package-lock.json package.json
- ls -l
deploy:
provider: releases
name: "Release ${PACKAGE_VERSION}"
body: "$RELEASE_BODY"
overwrite: true
skip_cleanup: true
api_key:
secure: ${GITHUB_TOKEN}
file:
- release.zip
on:
all_branches: true
repo: $PROJECT_NAME
after_deploy:
- echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc
- npm publish

notifications:
slack:
rooms:
secure: oEsx4yOk0AkiYMrjhDbKzh7mJIHd/Rn1Y+C86bmxGxCbAc/VuAM1pRfk/A3o7I0QwDzFZ1XCZrHT1VsYDj4ypFaJb8pCtwOU0pv+mseGlcYOvtV5NgQMBM3HQvx9+9iF8sLXg1glzToNkd8iBkbNxEgg6EEeBdX3mD7QX04xl4Mgl259gofN1pOxP3LwHKkKcZgeS6MAEfWhBG/a8poAccvusgn75wNZ1qyI+ZPYtQ75JK4QieJzmxTHPr2gGhq1EwRWYIjjyIEA4ofQpjWyzy0U6OQKBxwPaH+GM+Vn6hhp5JOenmiIslUZmzgyXL233Iu4iMvh1AiLJvB7AIBDilA3CYvCzM5uQVyKqiNFMrkcBRZgE3FCAaYYcpfr+k+3wO3HGstvcW+xxB3EdOGfXuI6Bu31k6kQQjXTZnYCGXgH4b+s+CkknOt04VXMxwPaQNjwb7+2HZt7En0kCAcswCB2ZYekfwJ8ps+ahlKGDbPEgg/vYAPV0JqwY4gEGFOthe3MhHDzpnjm6udpItlYrlcqzV4w4b3LEOgc5AomrQRD+SPdFHwvUjtjyDjyhdPNK9QixCIPW55njCssCJOi5kwq74zr3eVvqD8ijmUdfL6ASu1113fs/4k58mX4GwEkmMicThLg01aoppd3IWTc//bsYOLC+AbC8cAm9JZZWHA=
14 changes: 14 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Attach by Process ID",
"processId": "${command:PickProcess}"
}
]
}
67 changes: 60 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,60 @@
# Changelog


## [2.1.4] - 06.12.2018
## [3.0.0-alpha] - {date}

Improvenments:
- command `fb web` will have only one instance of NodeJS application.
First call `fb web -p SOME_PORT` create a server hosted on port `SOME_PORT`.
But call `fb web` inside another project will not create a new server
But instead of this you can see all your running projects looking at `localhost:SOME_PORT`


### Added
- `web` [internal] changed webpack configuration for web client
- `web` new options:
- `-i, --ignore-trs` (in previous version it used by default)
Allows to launch tasks without yarn or npm ( use absolute paths: webpack -> node_modules/.bin/webpack )
default: `false`
- `-r, --task-runner <NAME>`
Allows to use another task runner for launch tasks. By default will use npm ( For example: -r yarn )
default: `'npm'`
- `-w, --without-browser`
This option disable opening the new tab in Google Chrome browser
default: `false`
- `-s, --sort-by-name`
This option using to sort all commands by name (asc)
default: `false`
- `cmd` new options:
- `-i, --ignore-trs` (in previous version it used by default)
Allows to launch tasks without yarn or npm ( use absolute paths: webpack -> node_modules/.bin/webpack )
default: `false`
- `-r, --task-runner <NAME>`
Allows to use another task runner for launch tasks. By default will use npm ( For example: -r yarn )
default: `'npm'`

### Changed
- [internal] fully refactored code on nodeJS and web view
- Option prefix from `-j, --procfile <FILE>` to `-f, --procfile <FILE>`
- [web] changed API endpoints:
- `POST:/run/${taskId}` -> `POST:/${configId}/${taskId}/run`
- `POST:/stop/${taskId}` -> `POST:/${configId}/${taskId}/stop`
- `POST:/clear-logs/${taskId}` -> `DELETE/${configId}/${taskId}/logs`
- `GET:/logs/${taskId}` -> `GET:/${configId}/${taskId}/logs`
- `POST:/update-envs({ id: string, envs: object})` -> `PUT:/${configId}/${taskId}/envs(envs:object)`


### Fixed
- Problems linked with running flamebird without `node_modules` folder

### Removed
- Removed default usage experimental converting npm/yarn run scripts to the absolute paths
- [web]
- `/run-all` API endpoint
- `/stop-all` API endpoint


## [2.1.4] - 12/06/2018

### Added
- `web` hotkey feautures
Expand All @@ -25,7 +78,7 @@
- typo fixes in `README.md`


## [2.0.0] - 01.12.2018
## [2.0.0] - 12/01/2018

### Changed
- `web` replaced web http-client `axios` to `kinka`
Expand Down Expand Up @@ -124,7 +177,7 @@
### Fixed
- fixed webpack build after installing npm packages

## [1.7.0] - 2018-05-13
## [1.7.0] - 13/05/2018

### Changed
- refactoring code in frontend part of application
Expand Down Expand Up @@ -156,7 +209,7 @@
### Removed
- removed option `-p, --package`

## [1.5.5] - 2018-04-23
## [1.5.5] - 04/23/2018

### Changed
- working status of the tasks dependent on the server's status of task
Expand All @@ -168,7 +221,7 @@
- fb web: UnhandledPromiseRejectionWarning: Error: spawn chrome ENOENT [BUG](https://github.com/acacode/flamebird/issues/2)


## [1.5.3] - 2018-04-21
## [1.5.3] - 04/21/2018

### Added
- option `-n, --name <NAME>` for the `web` command. Sets the name of application
Expand All @@ -179,7 +232,7 @@
- route `commands` renamed to `info` and now returns object with properties `appName` and `commands`


## [1.5.0] - 2018-04-21
## [1.5.0] - 04/21/2018

### Added
- `fb` - additional command name for the calling flamebird
Expand All @@ -189,7 +242,7 @@
- option `-P, --port <PORT>` for `web` command. Sets the server port. By default 5050 value


## [1.0.0] - 2018-04-18
## [1.0.0] - 04/18/2018

### Added
- command `flamebird start` for the launching all commands in Procfile
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2018-present Sergey Volkov
Copyright (c) 2018-present acacode

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
Expand Down
1 change: 1 addition & 0 deletions Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
client: nodemon --exec \"npm run client:dev\" --watch client -V
86 changes: 85 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div align="center">
<a href="https://www.npmjs.com/package/flamebird">
<img width="250" height="210" src="https://github.com/acacode/flamebird/raw/master/lib/app/logo.png">
<img width="250" height="210" src="https://github.com/acacode/flamebird/raw/develop/client/assets/logo.png">
</a>
<br>
<br>
Expand Down Expand Up @@ -67,6 +67,90 @@ hotkey | action
<kbd>SHIFT</kbd> + <kbd>A</kbd> | Run all tasks
<kbd>SHIFT</kbd> + <kbd>S</kbd> | Stop all tasks


<h3>How it looks:</h3>

![](assets/web-ui-screen.png)



## Contribution


If you want to help this project you need to read this part of readme.md for more detail understanding of for what some things are needed.

First of all take a look at project structure:

- **flamebird project**
- [flamebird.js](./flamebird.js) - Executable by nodejs file when call `fb start`/`fb web`. Describe information about commands `web` and `start`.
- [LICENSE](./LICENSE)
- [nodemon.json](./nodemon.json) - Nodemon config file. Only needed for debug flamebird.
- [node_modules](./node_modules) - you know what is that :D
- [package-lock.json](./package-lock.json)
- [package.json](./package.json)
- [postinstall.js](./postinstall.js) - Script which execute after installing flamebird dependencies
- [Procfile](./Procfile) - List of scripts which execute via nodemon. Only needed for debug flamebird.
- [README.md](./README.md)
- [webpack.config.js](./webpack.config.js)
- [babel.config.js](./babel.config.js)
- [CHANGELOG.md](./CHANGELOG.md)
- __assets__
- [task_button.png](./assets/task_button.png)
- [hotkeys_button.png](./assets/hotkeys_button.png)
- [web-ui-screen.png](./assets/web-ui-screen.png)
- __client__ Client application ⚡️
- __controllers__ - folder with controllers where each one have specific UI manipulations
- [Header.js](./client/controllers/Header.js)
- __assets__ - folder with assets
- [logo.psd](./client/assets/logo.psd) - source of the flamebird logo
- [logo.png](./client/assets/logo.png)
- [logo2_small.png](./client/assets/logo2_small.png)
- [logo2.png](./client/assets/logo2.png)
- [logo2_transparent.png](./client/assets/logo2_transparent.png)
- __helpers__ - folder with helpers where helper contains specific logic. In future it will be removed or moved into modules in `scripts` folder.
- [dom_utils.js](./client/helpers/dom_utils.js)
- [hotKeys.js](./client/helpers/hotKeys.js)
- [tabs.js](./client/helpers/tabs.js)
- [taskList.js](./client/helpers/taskList.js)
- [WindowAttached.js](./client/helpers/WindowAttached.js)
- [global.js](./client/global.js) - global file which implement pattern Facade and combine all interactions of modules from `scripts` folder.
- [index.html](./client/index.html)
- [medium-screens.css](./client/medium-screens.css)
- __scripts__ - Bunch of modules which needed for web application.
- [Api.js](./client/scripts/Api.js) - Contains all API endpoints which needed for client. It uses `kinka` as http web client.
- [Configs.js](./client/scripts/Configs.js) - Responsible for update configs list
- [HotKeys.js](./client/scripts/HotKeys.js) - Hot keys
- [Tabs.js](./client/scripts/Tabs.js) - Module which responsible for update tabs list.
- [TaskList.js](./client/scripts/TaskList.js) - Module which responsible for update tasks list.
- [ThemeSwitcher.js](./client/scripts/ThemeSwitcher.js) - Module which responsible for theme switching.
- [WebLogger.js](./client/scripts/WebLogger.js) - Logger module. Output logs into the logs container
- [WebSocket.js](./client/scripts/WebSocket.js) - WebSocket client connection
- [small-screens.css](./client/small-screens.css)
- __styles__
- [dark-theme.css](./client/styles/dark-theme.css)
- [fullscreen.css](./client/styles/fullscreen.css)
- [hot_keys-shortcuts.css](./client/styles/hot_keys-shortcuts.css)
- [styles.css](./client/styles.css)
- __dist__ - client build folder
- __server__ Server application ⚡️
- [config.js](./server/config.js) - module which working with configuration file (`.flamebirdrc`)
- [constants.js](./server/constants.js) - module which contains constant values. It usings on both sides (client, server)
- [processWorker.js](./server/processWorker.js) - module which responsible for run/stop tasks
- [server.js](./server/server.js) - [`Web version`] module which contains API endpoints.
- __utils__ - bunch of utilities 😊
- [colors.js](./server/utils/colors.js) - tools which colorize console output
- [commands.js](./server/utils/commands.js) - tools which needed for CRUD commands
- [emitter.js](./server/utils/emitter.js) - instance of `events.EventEmitter`.
- [envs.js](./server/utils/envs.js) - tools which needed for parse environment variables
- [mem_cache.js](./server/utils/mem_cache.js) - just simple object which save all information. Have methods `get`, `set`
- [processes.js](./server/utils/processes.js) - tools which needed for create and kill processes
- [ws.js](./server/ws.js) - [`Web version`] Websocket connection
- [taskfile.js](./server/taskfile.js) - module which parse all commands from `Procfile` and `package.json`





## 📝 License

Licensed under the [MIT License](./LICENSE).
Expand Down
Binary file added assets/web-ui-screen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading