All files / lib/init-steps s3-initialize.js

96.3% Statements 26/27
62.5% Branches 5/8
100% Functions 1/1
96.3% Lines 26/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76                          2x 2x 2x   2x 2x 2x     1x   1x       1x     1x   1x 1x 1x     1x 1x 1x   1x 1x 1x   1x 1x 1x 1x   1x     2x                                   2x      
/* 
 * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 *
 *     http://aws.amazon.com/apache2.0/
 *
 * or in the "license" file accompanying this file. This file 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.
*/
"use strict";
const fs = require('fs-extra')
const path = require('path')
const moment = require('moment')
 
const awsmobileBaseManager = require('../awsm-base-manager.js')
const pathManager = require('../utils/awsmobilejs-path-manager.js')
const awsmobilejsConstant = require('../utils/awsmobilejs-constant.js')
 
function run(initInfo){
	Eif(initInfo.strategy){
 
		Iif(initInfo.strategy == 'import' || initInfo.strategy == 'conform'){
			//cloneAWSMobileJSDir will leave the original awsmobilejs folder intact
			initInfo.backupAWSMobileJSDirPath = awsmobileBaseManager.cloneAWSMobileBase(initInfo.projectPath)
		}else{
            initInfo.backupAWSMobileJSDirPath = awsmobileBaseManager.backupAwsmobileBase(initInfo.projectPath)
		}
 
		awsmobileBaseManager.ensureFolderStructure(initInfo.projectPath)
 
		let projectInfo = projectInfoTemplate
		Eif(initInfo.projectInfo){
			Object.assign(projectInfo, initInfo.projectInfo)
		}
	
		projectInfo.ProjectName = path.basename(initInfo.projectPath)
		projectInfo.ProjectPath = initInfo.projectPath
		projectInfo.Framework = initInfo.framework
	
		let jsonString = JSON.stringify(projectInfo, null, '\t')
		const projectInfoFilePath = pathManager.getProjectInfoFilePath(initInfo.projectPath)
		fs.writeFileSync(projectInfoFilePath, jsonString, 'utf8')
	
		initInfo.projectInfo = projectInfo
		jsonString = JSON.stringify(initInfo, null, '\t')
		const initInfoFilePath = pathManager.getInitInfoFilePath(initInfo.projectPath)
		fs.writeFileSync(initInfoFilePath, jsonString, 'utf8')
	}
	return initInfo
}
 
const projectInfoTemplate = {
	"ProjectName": "",
	"ProjectPath": "",
	"InitializationTime": "",
	"LastConfigurationTime": "",
	"LastNPMInstallTime": "",
	"FrontendLastBuildTime": "",
	"LastPublishTime": "",
	"BackendLastSyncTime": "",
	"BackendLastBuildTime": "",
	"BackendLastPushTime": "",
	"BackendProjectID": "",
	"BackendProjectName":  "",
    "BackendProjectConsoleUrl": "",
	"BackendProjectCreationTime": "",
	"BackendProjectLastUpdatedTime": ""
}
 
module.exports = {
    run
}