Yarn workspaces

Summary:
1) moved "sonar/desktop/src" to "sonar/desktop/app/src", so "app" is now a separate package containing the core Flipper app code
2) Configured yarn workspaces with the root in "sonar/desktop": app, static, pkg, doctor, headless-tests. Plugins are not included for now, I plan to do this later.

Reviewed By: jknoxville

Differential Revision: D20535782

fbshipit-source-id: 600b2301960f37c7d72166e0d04eba462bec9fc1
This commit is contained in:
Anton Nikolaev
2020-03-20 13:31:37 -07:00
committed by Facebook GitHub Bot
parent 676d7bbd24
commit 863f89351e
340 changed files with 1635 additions and 294 deletions

View File

@@ -0,0 +1,67 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import {WebviewTag} from 'electron';
// TODO: Get rid off this function
function injectJavaScript(webview: WebviewTag, command: string): Promise<any> {
// @ts-ignore: Typescript doesn't have type src in the currentTarget variable in the event, due to which there is a discrepancy in the event callback.
return webview.executeJavaScript(command, false);
}
export function sendDidMountMessage(webview: WebviewTag) {
webview.send('hostMessage', {
type: 'onMountFlipper',
payload: null,
});
}
/**
*
* @param webview
* @param text
* This helper function is for appending flipper trace in the questions input text field.
* It also updates the Flipper trace state in the form which makes it pass the validation.
* One should use it only for the pages backed by NTUsersFormContainer.react.js
*/
export function sendFlipperTrace(webview: WebviewTag, text: string) {
webview.send('hostMessage', {
type: 'flipperTrace',
payload: text,
});
}
/**
*
* @param webview
* @param data
* This helper function is for updating a react state in NTUsersFormContainer.react.js
*/
export function updateStateInSupportForm(
webview: WebviewTag,
data: {[key: string]: any},
) {
webview.send('hostMessage', {
type: 'updateState',
payload: data,
});
}
/**
*
* @param webview
* This helper function returns the supported apps by NTUsersFormContainer.react.js
*/
export function supportedApps(webview: WebviewTag): Promise<Array<string>> {
// TODO: Replace this with a promisified call to the guest page
return injectJavaScript(
webview,
"Array.from(document.querySelector('ul[role=radiogroup]').children).map(e => e.getAttribute('data-value'))",
);
}