1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16const fs = require('fs'); 17const path = require('path'); 18 19function copyESLibs() { 20 const targetLibPath = path.resolve(__dirname, process.env.NODE_ENV === 'production' ? '../package' : '..', 'libs'); 21 if (!fs.existsSync(targetLibPath)) { 22 fs.mkdirSync(targetLibPath); 23 } 24 const esLibPath = path.resolve(__dirname, '../node_modules/typescript/lib'); 25 const libFiles = fs.readdirSync(esLibPath); 26 const excludeFiles = ['lib.dom.d.ts']; 27 libFiles.forEach((file) => { 28 const srcFilePath = path.resolve(esLibPath, file); 29 if (fs.statSync(srcFilePath).isDirectory()) { 30 return; 31 } 32 const targetFile = path.resolve(targetLibPath, file); 33 if (fs.existsSync(targetFile)) { 34 return; 35 } 36 37 if (file.endsWith('.d.ts') && file.startsWith('lib.') && !excludeFiles.includes(file)) { 38 fs.copyFileSync(srcFilePath, targetFile); 39 } 40 }); 41 excludeFiles.forEach((excludeFile) => { 42 const targetFile = path.resolve(targetLibPath, excludeFile); 43 if (fs.existsSync(targetFile)) { 44 fs.unlinkSync(targetFile); 45 } 46 }); 47} 48 49copyESLibs(); 50 51exports.copyESLibs = copyESLibs; 52