UNPKG

monaco-editor-i18n-plugin

Version:
53 lines (52 loc) 1.55 kB
"use strict"; /** * monaco-editor-i18n-plugin * This plugin is referenced from https://github.com/microsoft/monaco-editor/tree/main/webpack-plugin */ Object.defineProperty(exports, "__esModule", { value: true }); const replaceNls = require.resolve("./loaders/replaceNls"); const replaceLocalizeLoader = require.resolve("./loaders/replaceLocalize"); // create rules loader function createLoaderRules(options) { return [ { test: /\.(js|mjs|jsx|ts|tsx)$/, enforce: "pre", include: /[\\\/]monaco-editor[\\\/]esm/, use: [ { loader: replaceNls, options, }, { loader: replaceLocalizeLoader, }, ], }, ]; } // add webpack rules to webpack config function addCompilerRules(compiler, rules) { const compilerOptions = compiler.options; if (!compilerOptions.module) { compilerOptions.module = { rules }; } else { const moduleOptions = compilerOptions.module; moduleOptions.rules = (moduleOptions.rules || []).concat(rules); } } class MonacoEditorI18nPlugin { constructor(options) { this.options = { windowKey: "__DT_LOCALE__", localStorageKey: "dt-locale", }; this.options = options; } apply(compiler) { const rules = createLoaderRules(this.options); addCompilerRules(compiler, rules); } } module.exports = MonacoEditorI18nPlugin;