Fixes #20694 Implements super basic new platform `core` system, which includes two services: `core.injectedMetadata` and `core.legacyPlatform`. The `core` currently has two responsibilities: 1. read the metadata from the DOM and initialize the `ui/metadata` module with legacy metadata, proving out how we plan to expose data from the new platform through the existing APIs/modules to the legacy platform. 2. bootstrap the legacy platform by loading either `ui/chrome` or `ui/test_harness` Because `core` mutates the `ui/metadata` module before bootstrapping the legacy platform all existing consumers of `ui/metadata` won't be impacted by the fact that metadata loading was moved into the new platform. We plan to do this for many other services that will need to exist in both the legacy and new platforms, like `ui/chrome` (see #20696).
53 lines
1.7 KiB
JSON
53 lines
1.7 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"baseUrl": ".",
|
|
"paths": {
|
|
"ui/*": ["src/ui/public/*"]
|
|
},
|
|
// Support .tsx files and transform JSX into calls to React.createElement
|
|
"jsx": "react",
|
|
|
|
// Enables all strict type checking options.
|
|
"strict": true,
|
|
|
|
// enables "core language features"
|
|
"lib": [
|
|
// ESNext auto includes previous versions all the way back to es5
|
|
"esnext",
|
|
// includes support for browser APIs
|
|
"dom"
|
|
],
|
|
|
|
// Node 8 should support everything output by esnext, we override this
|
|
// in webpack with loader-level compiler options
|
|
"target": "esnext",
|
|
|
|
// Use commonjs for node, overridden in webpack to keep import statements
|
|
// to maintain support for things like `await import()`
|
|
"module": "commonjs",
|
|
|
|
// Allows default imports from modules with no default export. This does not affect code emit, just type checking.
|
|
// We have to enable this option explicitly since `esModuleInterop` doesn't enable it automatically when ES2015 or
|
|
// ESNext module format is used.
|
|
"allowSyntheticDefaultImports": true,
|
|
|
|
// Emits __importStar and __importDefault helpers for runtime babel ecosystem compatibility.
|
|
"esModuleInterop": true,
|
|
|
|
// Resolve modules in the same way as Node.js. Aka make `require` works the
|
|
// same in TypeScript as it does in Node.js.
|
|
"moduleResolution": "node",
|
|
|
|
// Disallow inconsistently-cased references to the same file.
|
|
"forceConsistentCasingInFileNames": true,
|
|
|
|
// Disable the breaking keyof behaviour introduced in TS 2.9.2 until EUI is updated to support that too
|
|
"keyofStringsOnly": true
|
|
},
|
|
"include": [
|
|
"src/**/*"
|
|
],
|
|
"exclude": [
|
|
"src/**/__fixtures__/**/*"
|
|
]
|
|
}
|