enso/app/ide-desktop/lib/dashboard/.prettierrc.cjs
somebody1234 129022ae12
Support for creating and editing Data Links (#8882)
- Close https://github.com/enso-org/cloud-v2/issues/734
- Add modal to create a new Data Link
- Add the same input to the asset right panel
- Add entries on context menu and Drive Bar
- The shortcut is <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>N</kbd>
- Add (and use) corresponding backend endpoints

# Important Notes
- All UI is currently generated based off of a single-source-of-truth JSON Schema file.
- JSON Schema was chosen for a few reasons:
- trivial to parse (it's plain JSON)
- sufficiently powerful (supports unions (used in the initial schema), objects, and singleton/literal types)
- but still quite simple (this makes it easier to implement various utilities for, because there are fewer cases to cover)
- Note that it is definitely possible to change this. The original suggestion was a TypeScript file, which can definitely be done even using just the `typescript` package itself - I just prefer to avoid adding another step in the build process, especially one that depends on the `typescript` package at runtime.
- Note also that we *do* actually bundle transpilers as part of the visualization loading code in GUI2 - so for now at least, the size of the dependency isn't a primary concern, but rather just the mental overhead of having another dependency for this one specific task.
2024-02-12 10:05:30 +00:00

56 lines
1.4 KiB
JavaScript

/** @file Prettier configuration. */
// @ts-check
/** @type {import("@ianvs/prettier-plugin-sort-imports").PrettierConfig} */
module.exports = {
overrides: [
{
files: ['*.[j|t]s', '*.[j|t]sx', '*.m[j|t]s', '*.c[j|t]s'],
options: {
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
printWidth: 100,
tabWidth: 2,
semi: false,
singleQuote: true,
trailingComma: 'es5',
arrowParens: 'avoid',
plugins: ['@ianvs/prettier-plugin-sort-imports'],
// This plugin's options
importOrder: [
'^react$',
'',
'<THIRD_PARTY_MODULES>',
'',
'^enso-',
'',
'^#[/]App',
'^#[/]appUtils',
'',
'^#[/]data[/]',
'',
'^#[/]hooks[/]',
'',
'^#[/]providers[/]',
'',
'^#[/]events[/]',
'',
'^#[/]pages[/]',
'',
'^#[/]layouts[/]',
'',
'^#[/]components[/]',
'',
'^#[/]services[/]',
'',
'^#[/]utilities[/]',
'',
'^#[/]authentication[/]',
'',
'^[.]',
],
importOrderParserPlugins: ['typescript', 'jsx', 'importAssertions'],
importOrderTypeScriptVersion: '5.0.0',
},
},
],
}