1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- /**
- * Find language definations.
- *
- * Usage:
- *
- * import ecLangPlugin from 'echarts/build/rollup-plugin-ec-lang';
- * let rollupConfig = {
- * plugins: [
- * ecLangPlugin({lang: 'en'}),
- * ...
- * ]
- * };
- */
- const {resolve} = require('path');
- const {readFileSync} = require('fs');
- /**
- * @param {Object} [opt]
- * @param {string} [opt.lang=null] null/undefined/'' or 'en' or 'fi' or a file path.
- */
- function getPlugin(opt) {
- let lang = opt && opt.lang || '';
- return {
- load: function (absolutePath) {
- if (/\/src\/lang\.js$/.test(absolutePath)) {
- let langPath = getLangFileInfo(lang).absolutePath;
- if (langPath) {
- absolutePath = langPath;
- }
- }
- return readFileSync(absolutePath, 'utf-8');
- }
- };
- }
- /**
- * @param {string} lang null/undefined/'' or 'en' or 'fi' or a file path.
- * @return {Object} {isOuter, absolutePath}
- */
- let getLangFileInfo = getPlugin.getLangFileInfo = function (lang) {
- let absolutePath;
- let isOuter = false;
- if (lang) {
- if (/^[a-zA-Z]{2}$/.test(lang)) {
- absolutePath = resolve(__dirname, '../', 'src/lang' + lang.toUpperCase() + '.js');
- }
- else {
- isOuter = true;
- // `lang` is an absolute path or a relative path based on process.cwd().
- absolutePath = resolve(lang);
- }
- }
- return {isOuter, absolutePath};
- };
- module.exports = getPlugin;
|