107ac75b1Sopenharmony_ci/*
207ac75b1Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
307ac75b1Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
407ac75b1Sopenharmony_ci * you may not use this file except in compliance with the License.
507ac75b1Sopenharmony_ci * You may obtain a copy of the License at
607ac75b1Sopenharmony_ci *
707ac75b1Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
807ac75b1Sopenharmony_ci *
907ac75b1Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1007ac75b1Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1107ac75b1Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1207ac75b1Sopenharmony_ci * See the License for the specific language governing permissions and
1307ac75b1Sopenharmony_ci * limitations under the License.
1407ac75b1Sopenharmony_ci */
1507ac75b1Sopenharmony_ci
1607ac75b1Sopenharmony_ciimport { BUILD_OFF, ESMODULE, JSBUNDLE } from './pre_define';
1707ac75b1Sopenharmony_ciimport {
1807ac75b1Sopenharmony_ci  resetLog,
1907ac75b1Sopenharmony_ci  transformLog
2007ac75b1Sopenharmony_ci} from './process_ui_syntax';
2107ac75b1Sopenharmony_ciimport {
2207ac75b1Sopenharmony_ci  propertyCollection,
2307ac75b1Sopenharmony_ci  linkCollection,
2407ac75b1Sopenharmony_ci  processSystemApi
2507ac75b1Sopenharmony_ci} from './validate_ui_syntax';
2607ac75b1Sopenharmony_ciimport {
2707ac75b1Sopenharmony_ci  emitLogInfo,
2807ac75b1Sopenharmony_ci  componentInfo,
2907ac75b1Sopenharmony_ci  generateSourceFilesInHar,
3007ac75b1Sopenharmony_ci  getTransformLog
3107ac75b1Sopenharmony_ci} from './utils';
3207ac75b1Sopenharmony_ciimport { generateSourceFilesToTemporary } from './ark_utils';
3307ac75b1Sopenharmony_ciimport { resetComponentCollection } from './validate_ui_syntax';
3407ac75b1Sopenharmony_ciimport { abilityConfig, projectConfig } from '../main';
3507ac75b1Sopenharmony_ciimport { logger } from './compile_info';
3607ac75b1Sopenharmony_ciimport processStructComponentV2 from './process_struct_componentV2';
3707ac75b1Sopenharmony_ci
3807ac75b1Sopenharmony_cimodule.exports = function resultProcess(source: string, map: any): void {
3907ac75b1Sopenharmony_ci  process.env.compiler = BUILD_OFF;
4007ac75b1Sopenharmony_ci  source = processSystemApi(source, true, this.resourcePath);
4107ac75b1Sopenharmony_ci  if (/\.(ets|ts)$/.test(this.resourcePath)) {
4207ac75b1Sopenharmony_ci    componentInfo.id = 0;
4307ac75b1Sopenharmony_ci    propertyCollection.clear();
4407ac75b1Sopenharmony_ci    linkCollection.clear();
4507ac75b1Sopenharmony_ci    resetComponentCollection();
4607ac75b1Sopenharmony_ci    processStructComponentV2.resetStructMapInEts();
4707ac75b1Sopenharmony_ci    if (transformLog && transformLog.errors.length) {
4807ac75b1Sopenharmony_ci      emitLogInfo(this, getTransformLog(transformLog));
4907ac75b1Sopenharmony_ci      resetLog();
5007ac75b1Sopenharmony_ci    }
5107ac75b1Sopenharmony_ci  }
5207ac75b1Sopenharmony_ci  if (projectConfig.compileMode === JSBUNDLE &&
5307ac75b1Sopenharmony_ci    [abilityConfig.abilityEntryFile].concat(abilityConfig.projectAbilityPath).concat(abilityConfig.testRunnerFile).includes(this.resourcePath)) {
5407ac75b1Sopenharmony_ci    source = source.replace(/exports\.default/, 'globalThis.exports.default');
5507ac75b1Sopenharmony_ci  }
5607ac75b1Sopenharmony_ci
5707ac75b1Sopenharmony_ci  if (projectConfig.compileMode === ESMODULE && projectConfig.processTs === false &&
5807ac75b1Sopenharmony_ci    process.env.compilerType && process.env.compilerType === 'ark' && !projectConfig.compileHar) {
5907ac75b1Sopenharmony_ci    generateSourceFilesToTemporary(this.resourcePath, source, map, projectConfig, logger);
6007ac75b1Sopenharmony_ci  }
6107ac75b1Sopenharmony_ci
6207ac75b1Sopenharmony_ci  if (projectConfig.compileHar) {
6307ac75b1Sopenharmony_ci    generateSourceFilesInHar(this.resourcePath, source, '.js', projectConfig);
6407ac75b1Sopenharmony_ci  }
6507ac75b1Sopenharmony_ci
6607ac75b1Sopenharmony_ci  this.callback(null, source, map);
6707ac75b1Sopenharmony_ci};
68