|
@@ -99,53 +99,54 @@ function resolveDesiredLanguages(
|
|
return coalesce(languages.map((id) => languagesById[id])).concat(userCustomLanguages || []);
|
|
return coalesce(languages.map((id) => languagesById[id])).concat(userCustomLanguages || []);
|
|
}
|
|
}
|
|
|
|
|
|
-interface IMonacoEditorWebpackPluginOpts {
|
|
|
|
- /**
|
|
|
|
- * Include only a subset of the languages supported.
|
|
|
|
- */
|
|
|
|
- languages?: EditorLanguage[];
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Custom languages (outside of the ones shipped with the `monaco-editor`).
|
|
|
|
- */
|
|
|
|
- customLanguages?: IFeatureDefinition[];
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Include only a subset of the editor features.
|
|
|
|
- * Use e.g. '!contextmenu' to exclude a certain feature.
|
|
|
|
- */
|
|
|
|
- features?: (EditorFeature | NegatedEditorFeature)[];
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Specify a filename template to use for generated files.
|
|
|
|
- * Use e.g. '[name].worker.[contenthash].js' to include content-based hashes.
|
|
|
|
- */
|
|
|
|
- filename?: string;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * The absolute file system path to the monaco-editor npm module.
|
|
|
|
- * Use e.g. `C:\projects\my-project\node-modules\monaco-editor`
|
|
|
|
- */
|
|
|
|
- monacoEditorPath?: string;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Override the public path from which files generated by this plugin will be served.
|
|
|
|
- * This wins out over Webpack's dynamic runtime path and can be useful to avoid attempting to load workers cross-
|
|
|
|
- * origin when using a CDN for other static resources.
|
|
|
|
- * Use e.g. '/' if you want to load your resources from the current origin.
|
|
|
|
- */
|
|
|
|
- publicPath?: string;
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Specify whether the editor API should be exposed through a global `monaco` object or not. This
|
|
|
|
- * option is applicable to `0.22.0` and newer version of `monaco-editor`. Since `0.22.0`, the ESM
|
|
|
|
- * version of the monaco editor does no longer define a global `monaco` object unless
|
|
|
|
- * `global.MonacoEnvironment = { globalAPI: true }` is set ([change
|
|
|
|
- * log](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md#0220-29012021)).
|
|
|
|
- */
|
|
|
|
- globalAPI?: boolean;
|
|
|
|
|
|
+declare namespace MonacoEditorWebpackPlugin {
|
|
|
|
+ interface IMonacoEditorWebpackPluginOpts {
|
|
|
|
+ /**
|
|
|
|
+ * Include only a subset of the languages supported.
|
|
|
|
+ */
|
|
|
|
+ languages?: EditorLanguage[];
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Custom languages (outside of the ones shipped with the `monaco-editor`).
|
|
|
|
+ */
|
|
|
|
+ customLanguages?: IFeatureDefinition[];
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Include only a subset of the editor features.
|
|
|
|
+ * Use e.g. '!contextmenu' to exclude a certain feature.
|
|
|
|
+ */
|
|
|
|
+ features?: (EditorFeature | NegatedEditorFeature)[];
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Specify a filename template to use for generated files.
|
|
|
|
+ * Use e.g. '[name].worker.[contenthash].js' to include content-based hashes.
|
|
|
|
+ */
|
|
|
|
+ filename?: string;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * The absolute file system path to the monaco-editor npm module.
|
|
|
|
+ * Use e.g. `C:\projects\my-project\node-modules\monaco-editor`
|
|
|
|
+ */
|
|
|
|
+ monacoEditorPath?: string;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Override the public path from which files generated by this plugin will be served.
|
|
|
|
+ * This wins out over Webpack's dynamic runtime path and can be useful to avoid attempting to load workers cross-
|
|
|
|
+ * origin when using a CDN for other static resources.
|
|
|
|
+ * Use e.g. '/' if you want to load your resources from the current origin.
|
|
|
|
+ */
|
|
|
|
+ publicPath?: string;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Specify whether the editor API should be exposed through a global `monaco` object or not. This
|
|
|
|
+ * option is applicable to `0.22.0` and newer version of `monaco-editor`. Since `0.22.0`, the ESM
|
|
|
|
+ * version of the monaco editor does no longer define a global `monaco` object unless
|
|
|
|
+ * `global.MonacoEnvironment = { globalAPI: true }` is set ([change
|
|
|
|
+ * log](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md#0220-29012021)).
|
|
|
|
+ */
|
|
|
|
+ globalAPI?: boolean;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
interface IInternalMonacoEditorWebpackPluginOpts {
|
|
interface IInternalMonacoEditorWebpackPluginOpts {
|
|
languages: IFeatureDefinition[];
|
|
languages: IFeatureDefinition[];
|
|
features: IFeatureDefinition[];
|
|
features: IFeatureDefinition[];
|
|
@@ -158,7 +159,7 @@ interface IInternalMonacoEditorWebpackPluginOpts {
|
|
class MonacoEditorWebpackPlugin implements webpack.WebpackPluginInstance {
|
|
class MonacoEditorWebpackPlugin implements webpack.WebpackPluginInstance {
|
|
private readonly options: IInternalMonacoEditorWebpackPluginOpts;
|
|
private readonly options: IInternalMonacoEditorWebpackPluginOpts;
|
|
|
|
|
|
- constructor(options: IMonacoEditorWebpackPluginOpts = {}) {
|
|
|
|
|
|
+ constructor(options: MonacoEditorWebpackPlugin.IMonacoEditorWebpackPluginOpts = {}) {
|
|
const monacoEditorPath = options.monacoEditorPath;
|
|
const monacoEditorPath = options.monacoEditorPath;
|
|
const metadata = getEditorMetadata(monacoEditorPath);
|
|
const metadata = getEditorMetadata(monacoEditorPath);
|
|
const languages = resolveDesiredLanguages(metadata, options.languages, options.customLanguages);
|
|
const languages = resolveDesiredLanguages(metadata, options.languages, options.customLanguages);
|