Move desktop-related code to "desktop" subfolder (#872)

Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/872
Move all the JS code related to desktop app to "desktop" subfolder.

The structure of "desktop" folder:
- `src` - JS code of Flipper desktop app executing in Electron Renderer (Chrome) process. This folder also contains all the Flipper plugins in subfolder "src/plugins".
- `static` - JS code of Flipper desktop app bootstrapping executing in Electron Main (Node.js) process
- `pkg` - Flipper packaging lib and CLI tool
- `doctor` - Flipper diagnostics lib and CLI tool
- `scripts` - Build scripts for Flipper desktop app
- `headless` - Headless version of Flipper app
- `headless-tests` - Integration tests running agains Flipper headless version

Reviewed By: passy

Differential Revision: D20249304

fbshipit-source-id: 9a51c63b51b92b758a02fc8ebf7d3d116770efe9
This commit is contained in:
Anton Nikolaev
2020-03-14 14:26:07 -07:00
committed by Facebook GitHub Bot
parent a60e6fee87
commit 85c13bb1f3
607 changed files with 103 additions and 142 deletions

259
desktop/package.json Normal file
View File

@@ -0,0 +1,259 @@
{
"name": "flipper",
"version": "0.33.1",
"versionDate": "2018-4-12",
"description": "Mobile development tool",
"productName": "Flipper",
"author": "Facebook Inc",
"main": "src/index.tsx",
"icon": "icon.png",
"category": "facebook-intern",
"privileged": true,
"build": {
"appId": "flipper",
"productName": "Flipper",
"artifactName": "Flipper-${os}.${ext}",
"protocols": {
"name": "flipper",
"schemes": [
"flipper"
]
},
"mac": {
"category": "public.app-category.developer-tools",
"extendInfo": {
"NSUserNotificationAlertStyle": "alert"
}
},
"dmg": {
"background": "dmgBackground.png",
"icon": "icon.icns",
"iconSize": 155,
"window": {
"width": 660,
"height": 400
},
"contents": [
{
"x": 123,
"y": 172
},
{
"x": 539,
"y": 168,
"type": "link",
"path": "/Applications"
}
]
},
"win": {
"publisherName": "Facebook, Inc.",
"sign": null
},
"asar": false,
"fileAssociations": [
{
"ext": [
".flipper"
],
"name": "Flipper Data",
"role": "Viewer",
"icon": "document-icons/document.icns"
}
]
},
"resolutions": {
"@jest-runner/electron/electron": "8.0.1",
"adbkit/adbkit-logcat": "2",
"@types/react": "16.9.17",
"@types/react-dom": "16.9.4"
},
"jest": {
"transform": {
"^.*__tests__/.*\\.tsx?$": "ts-jest",
"\\.(js|tsx?)$": "<rootDir>/static/transforms/index.js"
},
"setupFiles": [
"<rootDir>/static/globalTestSetup.js"
],
"moduleNameMapper": {
"^flipper$": "<rootDir>/src/index.tsx"
},
"clearMocks": true
},
"devDependencies": {
"@jest-runner/electron": "^2.0.2",
"@testing-library/react": "^9.3.0",
"@types/algoliasearch": "^3.30.19",
"@types/babel-code-frame": "^6.20.2",
"@types/decompress": "4.2.3",
"@types/deep-equal": "^1.0.1",
"@types/detect-port": "^1.1.0",
"@types/expand-tilde": "^2.0.0",
"@types/express": "^4.17.2",
"@types/fb-watchman": "^2.0.0",
"@types/fs-extra": "^8.0.0",
"@types/invariant": "^2.2.31",
"@types/jest": "^25.1.0",
"@types/lodash.debounce": "^4.0.6",
"@types/lodash.isequal": "^4.5.5",
"@types/mkdirp": "^1.0.0",
"@types/node": "^12.12.20",
"@types/react": "^16.9.17",
"@types/react-dom": "^16.9.4",
"@types/react-redux": "^7.1.5",
"@types/react-virtualized-auto-sizer": "^1.0.0",
"@types/react-window": "^1.8.1",
"@types/recursive-readdir": "^2.2.0",
"@types/redux-persist": "^4.3.1",
"@types/requestidlecallback": "^0.3.1",
"@types/rsocket-core": "^0.0.5",
"@types/socket.io": "^2.1.4",
"@types/testing-library__react": "^9.1.2",
"@types/tmp": "^0.1.0",
"@types/uuid": "^7.0.0",
"@types/ws": "^7.2.0",
"@types/yazl": "^2.4.2",
"@typescript-eslint/eslint-plugin": "^2.19.2",
"@typescript-eslint/parser": "^2.19.2",
"babel-code-frame": "^6.26.0",
"babel-eslint": "^10.0.1",
"electron": "8.0.1",
"electron-builder": "^22.3.2",
"eslint": "^6.7.0",
"eslint-config-fbjs": "^3.1.1",
"eslint-plugin-babel": "^5.3.0",
"eslint-plugin-flowtype": "^4.3.0",
"eslint-plugin-header": "^3.0.0",
"eslint-plugin-import": "^2.19.1",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-prettier": "^3.1.2",
"eslint-plugin-react": "^7.16.0",
"eslint-plugin-relay": "^1.4.1",
"flow-bin": "^0.120.1",
"glob": "^7.1.2",
"jest": "^25.1.0",
"jest-fetch-mock": "^3.0.0",
"prettier": "^1.19.1",
"react-async": "^10.0.0",
"recursive-readdir": "^2.2.2",
"redux-mock-store": "^1.5.3",
"ts-jest": "^25.1.0",
"ts-node": "^8.6.2",
"typescript": "^3.7.2"
},
"dependencies": {
"@emotion/core": "^10.0.22",
"@emotion/styled": "^10.0.23",
"@iarna/toml": "^2.2.3",
"@types/glob": "^7.1.1",
"@types/promise-retry": "^1.1.3",
"@types/react-color": "^3.0.1",
"@types/react-test-renderer": "^16.9.1",
"@types/react-transition-group": "^4.2.2",
"@types/react-virtualized": "^9.21.7",
"@types/redux-devtools-extension": "^2.13.2",
"@types/redux-mock-store": "^1.0.1",
"@types/rsocket-tcp-server": "^0.0.2",
"@types/which": "^1.3.2",
"JSONStream": "^1.3.1",
"adbkit": "^2.11.1",
"adbkit-logcat": "^2.0.1",
"algoliasearch": "^4.0.0",
"ansi-to-html": "^0.6.3",
"async-mutex": "^0.1.3",
"chalk": "^3.0.0",
"codemirror": "^5.25.0",
"cross-env": "^7.0.0",
"dashify": "^2.0.0",
"decompress": "^4.2.0",
"decompress-targz": "^4.1.1",
"decompress-unzip": "^4.0.1",
"deep-equal": "^2.0.1",
"detect-port": "^1.1.1",
"emotion": "^10.0.23",
"expand-tilde": "^2.0.2",
"express": "^4.15.2",
"fb-watchman": "^2.0.0",
"flipper-doctor": "^0.7.0",
"fs-extra": "^8.0.1",
"immer": "^6.0.0",
"immutable": "^4.0.0-rc.12",
"invariant": "^2.2.2",
"line-replace": "^1.0.2",
"live-plugin-manager": "^0.14.0",
"lodash.debounce": "^4.0.8",
"lodash.isequal": "^4.5.0",
"mkdirp": "^1.0.0",
"node-fetch": "^2.3.0",
"npm-api": "^1.0.0",
"open": "^7.0.0",
"openssl-wrapper": "^0.3.4",
"p-map": "^4.0.0",
"patch-package": "^6.2.0",
"pkg": "^4.4.1",
"promise-retry": "^1.1.1",
"promisify-child-process": "^3.1.3",
"prop-types": "^15.6.0",
"query-string": "^6.10.1",
"react": "16.13.0",
"react-color": "^2.11.7",
"react-debounce-render": "^6.0.0",
"react-devtools-core": "^4.0.6",
"react-dom": "^16.13.0",
"react-markdown": "^4.2.2",
"react-player": "^1.15.2",
"react-redux": "^7.1.1",
"react-test-renderer": "^16.13.0",
"react-transition-group": "^4.3.0",
"react-virtualized-auto-sizer": "^1.0.2",
"react-window": "^1.3.1",
"redux": "^4.0.0",
"redux-persist": "^6.0.0",
"remote-redux-devtools": "^0.5.16",
"rsocket-core": "^0.0.19",
"rsocket-tcp-server": "^0.0.19",
"socket.io": "^2.0.4",
"string-natural-compare": "^3.0.0",
"tmp": "0.0.33",
"uuid": "^7.0.1",
"websocket": "^1.0.31",
"which": "^2.0.1",
"ws": "^7.2.0",
"xdg-basedir": "^4.0.0",
"xml2js": "^0.4.19",
"yargs": "^15.0.1",
"yazl": "^2.5.1"
},
"greenkeeper": {
"ignore": [
"tmp",
"flipper-doctor"
]
},
"scripts": {
"preinstall": "node scripts/prepare-watchman-config.js && yarn config set ignore-engines",
"postinstall": "cross-env TS_NODE_FILES=true node --require ts-node/register scripts/yarn-install.ts && patch-package",
"rm-dist": "rimraf dist",
"rm-modules": "rimraf node_modules static/node_modules",
"rm-temp": "rimraf $TMPDIR/jest* $TMPDIR/react-native-packager*",
"rm-bundle": "rimraf static/main.bundle.*",
"reset": "yarn rm-dist && yarn rm-temp && yarn cache clean && yarn rm-bundle && yarn rm-modules",
"start": "cross-env NODE_ENV=development TS_NODE_FILES=true node --require ts-node/register scripts/start-dev-server.ts --inspect=9229",
"start:break": "cross-env NODE_ENV=development TS_NODE_FILES=true node --require ts-node/register scripts/start-dev-server.ts --inspect-brk=9229",
"start:no-embedded-plugins": "cross-env NODE_ENV=development cross-env FLIPPER_NO_EMBEDDED_PLUGINS=true TS_NODE_FILES=true node --require ts-node/register scripts/start-dev-server.ts",
"build": "yarn rm-dist && cross-env NODE_ENV=production TS_NODE_FILES=true node --require ts-node/register scripts/build-release.ts $@",
"build-headless": "yarn rm-dist && mkdir dist && cross-env NODE_ENV=production TS_NODE_FILES=true node --require ts-node/register scripts/build-headless.ts $@",
"fix": "eslint . --fix --ext .js,.ts,.tsx",
"test": "jest --testPathPattern=\"node\\.(js|tsx)$\" --no-cache",
"test:debug": "node --inspect node_modules/.bin/jest --runInBand",
"test-electron": "jest --testPathPattern=\"electron\\.(js|tsx)$\" --testEnvironment=@jest-runner/electron/environment --runner=@jest-runner/electron --no-cache",
"test-with-device": "USE_ELECTRON_STUBS=1 jest --testPathPattern=\"device\\.(js|tsx)$\" --detectOpenHandles --no-cache",
"tsc": "tsc --noemit",
"lint": "eslint . --ext .js,.ts,.tsx && flow check && yarn tsc",
"everything": "yarn reset && yarn install && yarn lint && yarn test && yarn test-electron && yarn build --mac --win --linux && yarn build-headless --mac --linux && yarn start"
},
"optionalDependencies": {
"7zip-bin-mac": "^1.0.1"
}
}