Commit Graph

77 Commits

Author SHA1 Message Date
Anton Nikolaev
1491e111c9 Bundle command
Summary:
Command which transpiles and bundles plugin code.

It is supposed to be used in "prepack" script for all open-sourced plugin packages to bundle them before publishing like this:
```
{
  "devDependencies": {
    "flipper-pkg": "latest"
  },
  "scripts": {
    "prepack": "flipper-pkg bundle"
  }
}
```

Also made directory parameter of other command "pack" optional so it also can be called from plugin directory simply by `flipper-pkg pack`.

Changelog: "flipper-pkg bundle" command for bundling plugins before publishing.

Reviewed By: mweststrate

Differential Revision: D21129691

fbshipit-source-id: 8f97bc950c28cf9ad8b0117c0e1d811ed1b988eb
2020-04-20 11:14:37 -07:00
Anton Nikolaev
105345facd Rename command "bundle" to "pack"
Summary: Renamed command "bundle" to "pack" because the latter name better describe what the command does. Also I'm going to add another command which will only bundle the plugin code and it will be called "bundle" (see the next diff in this stack)

Reviewed By: mweststrate

Differential Revision: D21129690

fbshipit-source-id: 2dde30501c3776d6796c27c68d49948d1f84f822
2020-04-20 11:14:36 -07:00
Anton Nikolaev
ca2d04a5da Versioning for plugin format
Summary:
Added versioning for plugin format.

The first version is where "main" points to source code entry and plugins are bundled by Flipper in run-time on loading them.

The second version is where "main" points to the already existing bundle and Flipper just loads it without bundling. The plugins of version 2 must be bundled using "flipper-pkg" tool before publishing.

Changelog: Support new packaging format for plugins.

Reviewed By: mweststrate

Differential Revision: D21074173

fbshipit-source-id: 7b70250e48e5bd5d359c96149fb5b14e67783c4d
2020-04-20 06:03:16 -07:00
Anton Nikolaev
85b56ffc2a Fix typing dependencies for pkg and pkg-lib
Summary: Set typings as devDependencies for pkg and pkg-lib packages

Reviewed By: passy

Differential Revision: D21092027

fbshipit-source-id: 7750f1796458bd88ea9ff620f3bb2e3e14ea7ca0
2020-04-20 04:30:24 -07:00
Anton Nikolaev
21b79af5f2 Split package "flipper-pkg" into two: lib and cli
Summary: "flipper-pkg" added ~2MB to Flipper disttributive size, because of heavy dependencies which are only required for CLI functionality. See size warning in diff D21068373 in this stack where I added pkg as dependency to flipper. Here I'm splitting it into library and CLI packages, so Flipper app will only reference the library.

Reviewed By: passy

Differential Revision: D21087336

fbshipit-source-id: d9d62f1e75a835d1c0fa78ff1addb0d9a761a9c7
2020-04-17 10:01:31 -07:00
Anton Nikolaev
f0ee6f9749 Use typescript references for incremental compilation of pkg
Summary: "flipper-pkg" has dependency to "flipper-babel-transformer" and we use typescript to compile both of them, so we can use references here for incremental compilation.

Reviewed By: mweststrate

Differential Revision: D21070251

fbshipit-source-id: eadef024cebe8a85ddb8ef4e62bd613752a13c06
2020-04-17 05:24:35 -07:00
Anton Nikolaev
ebfd045328 Fix symlinks resolution for plugin dependencies
Summary: Moved getWatchFolders script to flipper-pkg and used it from other packages. Script helps to resolve all the folders with package dependencies including symlinked folders in case if plugin is a part of yarn workspaces.

Reviewed By: mweststrate

Differential Revision: D21068373

fbshipit-source-id: 8691837fdb1aef333dab4c13d8758262838d36ee
2020-04-17 05:24:35 -07:00
Anton Nikolaev
627cc8fe7f Update Metro
Summary: Updated Metro to the latest version 0.59.0

Reviewed By: passy

Differential Revision: D21027614

fbshipit-source-id: 0b2c1c422dfed7e8426bb9a36c5626f3a96eb8f6
2020-04-15 03:59:38 -07:00
generatedunixname89002005306973
2d27b90bd9 Flipper Release: v0.37.0
Summary: Releasing version 0.37.0

Reviewed By: jknoxville

Differential Revision: D20919249

fbshipit-source-id: 59ec28ba10043da03c460d9eaadb30a8fd2e4a6f
2020-04-09 03:07:19 -07:00
greenkeeper[bot]
4cf48f4f52 Update @types/jest in group pkg to the latest version � (#964)
Summary:
I think I accidentally pinned this before. That's not necessary.

Pull Request resolved: https://github.com/facebook/flipper/pull/964

Test Plan: yarn test

Reviewed By: mweststrate

Differential Revision: D20835725

Pulled By: passy

fbshipit-source-id: 627594d4f1a425cf0db410a097c82af6758d7d11
2020-04-06 09:10:15 -07:00
Anton Nikolaev
2690894ad0 Fix npm publishing
Summary:
Fixed npm packaging/publishing scripts for "flipper-doctor", "flipper-pkg" and "flipper-babel-transformer".

Also removed scripts for testing and linting, because these packages are tested and linted by root level package.json.

Reviewed By: jknoxville

Differential Revision: D20839959

fbshipit-source-id: 4d9d037d4921fc97356c849054c389dfece05652
2020-04-06 02:35:51 -07:00
Anton Nikolaev
e35bf2c1ae Flipper Release: v0.36.0
Summary: Releasing version 0.36.0

Reviewed By: passy

Differential Revision: D20835543

fbshipit-source-id: f5d9e8884410b294d4f37cb98db614da4592e6df
2020-04-03 08:36:49 -07:00
Anton Nikolaev
eb9a2cb5e7 Bump versions for all npm packages on release
Summary:
Automatically bump versions for all local npm packages included as workspaces and fix local dependencies correspondingly.

As a part of this I have also aligned versioning for all the packages by using the same version for all of them.

Reviewed By: jknoxville

Differential Revision: D20745632

fbshipit-source-id: 2d438c4b23ee72f7d7c068c5ce161063c7ceb9e5
2020-03-31 06:34:39 -07:00
Anton Nikolaev
c1bb656a0d Re-use babel transformations
Summary:
SORRY FOR BIG DIFF, but it's really hard to split it as all these changes are cross-dependent and should be made at once:
1. Moved transformations to separate package "flipper-babel-transformer" and linked it using yarn workspaces to "static" and "pkg" packages where they are re-used. Removed double copies of transformations we had before int these two packages.
2. Converted transformations to typescript
3. Refactored transformations to avoid relying on file system paths for customisation (FB stubs and Electron stubs for headless build)
4. As babel transformations must be built before other builds - enabled incremental build for them and changed scripts to invoke the transformations build before other build scripts
5. As we need to deploy all the dependencies including the fresh "flipper-babel-transformer" as a part of "static" - implemented script which copies package with all the dependencies taking in account yarn workspaces (hoisting and symlinks)

Reviewed By: passy, mweststrate

Differential Revision: D20690662

fbshipit-source-id: 38a275b60d3c91e01ec21d1dbd72d03c05cfac0b
2020-03-27 03:26:51 -07:00
Pascal Hartig
34a2ebe2e9 Remove yarn.lock for workspaces
Summary:
These aren't updated but - importantly - are pinning
some deps with security vulns.

Reviewed By: nikoant

Differential Revision: D20645332

fbshipit-source-id: 491721d5a856e55f23e6a9608ae11632e1667eb2
2020-03-25 08:08:46 -07:00
Michael Bolin
37f0260116 Back out "Upgrade Prettier from 1.17 to 2.0.2."
Differential Revision: D20639755

fbshipit-source-id: 5028563f9cf0527a30b4259daac50cdc03934bfd
2020-03-24 21:48:09 -07:00
Michael Bolin
8658fca4dd Upgrade Prettier from 1.17 to 2.0.2.
Summary:
This gets us on the latest Prettier 2.x:
https://prettier.io/blog/2020/03/21/2.0.0.html

Notably, this adds support for TypeScript 3.8,
which introduces new syntax, such as `import type`.

Reviewed By: zertosh

Differential Revision: D20636268

fbshipit-source-id: fca5833d003804333a05ba16325bbbe0e06d6c8a
2020-03-24 20:24:52 -07:00
greenkeeper[bot]
fe6077e218 Update prettier in group pkg to the latest version � (#917)
Summary:
***
☝️ **Important announcement:** Greenkeeper will be saying goodbye 👋 and passing the torch to Snyk on June 3rd, 2020! [Find out how to migrate to Snyk and more at greenkeeper.io](https://greenkeeper.io)
***
## The devDependency [prettier](https://github.com/prettier/prettier) was updated from `1.19.1` to `2.0.0`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

 ---

**Publisher:** [thorn0](https://www.npmjs.com/~thorn0)
**License:** MIT

[Find out more about this release](https://github.com/prettier/prettier).

 ---

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

 ---

Your [Greenkeeper](https://greenkeeper.io) bot 🌴
Pull Request resolved: https://github.com/facebook/flipper/pull/917

Reviewed By: jknoxville

Differential Revision: D20596394

Pulled By: passy

fbshipit-source-id: 27c551944d3fe15b4cf001f7b0757d31a60e3cbe
2020-03-24 09:38:12 -07:00
Pascal Hartig
fc9ed65762 prettier 2
Summary:
Quick notes:

- This looks worse than it is. It adds mandatory parentheses to single argument lambdas. Lots of outrage on Twitter about it, personally I'm {emoji:1f937_200d_2642} about it.
- Space before function, e.g. `a = function ()` is now enforced. I like this because both were fine before.
- I added `eslint-config-prettier` to the config because otherwise a ton of rules conflict with eslint itself.

Close https://github.com/facebook/flipper/pull/915

Reviewed By: jknoxville

Differential Revision: D20594929

fbshipit-source-id: ca1c65376b90e009550dd6d1f4e0831d32cbff03
2020-03-24 09:38:11 -07:00
greenkeeper[bot]
37096ba800 Greenkeeper/pkg/monorepo.babel7 20200322111342 (#921)
Summary:
Greenkeeper update
Pull Request resolved: https://github.com/facebook/flipper/pull/921

Reviewed By: mweststrate

Differential Revision: D20598722

Pulled By: jknoxville

fbshipit-source-id: 896352cf56d16e0c8cce8350c7a0e6d068ba03c6
2020-03-23 18:45:01 -07:00
Anton Nikolaev
06cd90562d Re-use base tsconfig options
Summary: Added tsconfig.base.json and extend other tsconfigs from it.

Reviewed By: passy

Differential Revision: D20594653

fbshipit-source-id: 28dd80262613e78a7c4ce25fa31f251537ec2b06
2020-03-23 05:40:34 -07:00
Anton Nikolaev
863f89351e 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
2020-03-20 13:37:41 -07:00
Michel Weststrate
f919a0d1a3 fixed issue where install script errors were not properly propagated
Summary:
Our post install scripts didn't propagate installation errors in CI (or locally), leading to problems only appearing later in time, causing a lot of lost time {emoji:1f605}

Also moved printing what package is installing to _before_ running the script, so that you have actual useful info in case it fails.

Compilation errors of pkg and doctor were printed in our CI, but never threw exceptions.

Fixed the cause of those compilation errors as well using `skipLibCheck` like done in the root tsconfig

Reviewed By: jknoxville

Differential Revision: D20470985

fbshipit-source-id: 1b13d4d2c096f253cc9c1f0aac06982fc4aedf55
2020-03-16 16:52:31 -07:00
Anton Nikolaev
952cb7783a Allow direct references of doctor and pkg from the main bundle
Summary: This diff allows direct referencing pkg and doctor packages from the main bundle so they can be changed and used in the main app without publishing to npm

Reviewed By: mweststrate

Differential Revision: D20390416

fbshipit-source-id: af625a8b7cead4481743a88aec198493d363ce76
2020-03-14 15:59:22 -07:00
Anton Nikolaev
10d990c32c Move plugins to "sonar/desktop/plugins"
Summary:
Plugins moved from "sonar/desktop/src/plugins" to "sonar/desktop/plugins".

Fixed all the paths after moving.

New "desktop" folder structure:
- `src` - Flipper desktop app JS code executing in Electron Renderer (Chrome) process.
- `static` - Flipper desktop app JS code executing in Electron Main (Node.js) process.
- `plugins` - Flipper desktop JS plugins.
- `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 desktop app.
- `headless-tests` - Integration tests running agains Flipper headless version.

Reviewed By: mweststrate

Differential Revision: D20344186

fbshipit-source-id: d020da970b2ea1e001f9061a8782bfeb54e31ba0
2020-03-14 14:35:18 -07:00
Anton Nikolaev
beb5c85e69 Enable eslint import checks and fixed the reported errors (#878)
Summary:
Pull Request resolved: https://github.com/facebook/flipper/pull/878

1) Enabled eslint error reporting for unresolved imports and fixed all the errors
2) Enabled eslint for typings (d.ts) and fixed all the errors

Reviewed By: passy

Differential Revision: D20335151

fbshipit-source-id: 7b142281a406b32df0f02a5cd0d7d05eba941acd
2020-03-14 14:35:18 -07:00
Anton Nikolaev
85c13bb1f3 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
2020-03-14 14:35:17 -07:00