SaintAPIandDimitri Mitropoulos a2bc704f80 Differential (Additive/Removal) patching when switching between design / debug (#3124)
* fix(import) do differential patching for design activity imports

This patch adds differential patching for imports that occur during the switching between
design and debug tabs inside of Designer. As reported through #2971, and others, this patch
favors existing data over imported data, values that exist already on the document will remain
unchanged, only new values (including array based values) will be added / removed.

This also includes a bypass feature for urls, currently these options are not exposed through
the interface but could be. This feature is an object to allow for future properties for
preference-based patching.

- Adds `options.enableDiffBasedPatching` and `options.enableDiffDeep` to `importRaw` for backwards compat.
- Adds `options.bypassDiffProps.url` for url bypassing and use an object for future items.
- Adds `diffPatchObj` based on differential patching for objects (works with arrays as well).

Future ideas:

- `hasBeenModifiedByUser` property map object to allow changing properties that haven't been touched by the user with options.

fixes: #2971, #2882, #3038, #2442

* adds some basic tests

- also adds jest (which was (mistakenly) not there before)
- does not call `.hasOwnProperty` directly, per https://eslint.org/docs/rules/no-prototype-builtins (which, we will add more formally at a later date)

* don't special-case workspaces

this ensures the behavior of the initial PR is more preserved

Co-authored-by: Dimitri Mitropoulos <dimitrimitropoulos@gmail.com>
2021-03-03 12:57:09 -05:00
2021-03-03 11:12:19 +13:00
2019-04-17 17:50:03 -07:00
2020-06-12 11:44:12 +12:00
2017-10-10 22:55:22 +02:00
2020-06-12 11:44:12 +12:00
2021-01-12 15:23:20 +13:00
2021-03-03 11:12:19 +13:00
2019-05-20 11:24:55 -04:00
2021-02-08 12:41:45 -05:00

Insomnia REST Client

Slack Channel license CodeFund

Insomnia is a cross-platform REST client, built on top of Electron.

Insomnia REST Client Screenshot

Download

Insomnia is available for Mac, Windows, and Linux and can be downloaded from the website.

https://insomnia.rest/download

Bugs and Feature Requests

Have a bug or a feature request? First, read the issue guidelines and search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

For more generic product questions and feedback, join the Slack Team or email support@insomnia.rest

Contributing

Please read through our contributing guidelines and code of conduct. Included are directions for opening issues, coding standards, and notes on development.

Editor preferences are available in the editor config for easy use in common text editors. Read more and download plugins at editorconfig.org.

Developing

Development on Insomnia can be done on Mac, Windows, or Linux as long as you have NodeJS and Git. See the .nvmrc file located in the project for the correct Node version.

Initial Dev Setup

This repository is structured as a monorepo and contains many Node.JS packages. Each package has its own set of commands, but the most common commands are available from the root package.json and can be accessed using the npm run ... command. Here are the only three commands you should need to start developing on the app.

# Install and Link Dependencies
npm run bootstrap

# Run Tests
npm test

# Start App with Live Reload
npm run app-start

If you are on Linux, you may need to install the following supporting packages

# Update library
sudo apt-get update

# Install font configuration library & support
sudo apt-get install libfontconfig-dev
sudo apt-get install font-manager

# Build capability for required font-scanner package
sudo apt-get install build-essential

Also on Linux, if Electron is failing during the bootstrap process, run the following

# Clear Electron install conflicts
rm -rf ~/.cache/electron

If you are on Windows and have problems, you may need to install Windows Build Tools

Editor Requirements

You can use any editor you'd like, but make sure to have support/plugins for the following tools:

  • ESLint – For catching syntax problems and common errors
  • JSX Syntax – For React components
  • Flow – For type annotations

Plugins

Search, discover, and install plugins from the Insomnia Plugin Hub!

Community Projects

License

MIT © Insomnia

S
Description
No description provided
Readme Apache-2.0
290 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 98%
CSS 1%
JavaScript 0.5%
MDX 0.3%
C++ 0.1%