Skip to content

Commit d04b42f

Browse files
committed
feat: mergewith
1 parent 0d2428c commit d04b42f

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

src/common/repo.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -448,8 +448,7 @@ export async function saveResourceGroupToFiles(
448448
const manifest = renderManifest(fileMap, nodePath, nodeValue)
449449
console.log('filepath: ', filePath)
450450
console.log('manifest: ', manifest)
451-
const overwrite = manifest.kind === 'AplTeamService' ? true : false
452-
await deps.writeValuesToFile(filePath, manifest, overwrite)
451+
await deps.writeValuesToFile(filePath, manifest)
453452
} catch (e) {
454453
console.log(nodePath)
455454
console.log(fileMap)

src/common/values.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { pathExists } from 'fs-extra'
22
import { mkdir, unlink, writeFile } from 'fs/promises'
3-
import { cloneDeep, get, isEmpty, isEqual, merge, omit, pick, set } from 'lodash'
3+
import { cloneDeep, get, isEmpty, isEqual, merge, mergeWith, omit, pick, set } from 'lodash'
44
import path from 'path'
55
import { supportedK8sVersions } from 'src/supportedK8sVersions.json'
66
import { stringify } from 'yaml'
@@ -102,6 +102,12 @@ export const getRepo = (values: Record<string, any>): Repo => {
102102
return { remote, branch, email, username, password }
103103
}
104104

105+
function mergeCustomizer(prev, next) {
106+
console.info('PREVIOUS: ', prev)
107+
console.info('NEXT: ', next)
108+
return next
109+
}
110+
105111
let hasSops = false
106112
/**
107113
* Writes new values to a file. Will keep the original values if `overwrite` is `false`.
@@ -121,7 +127,7 @@ export const writeValuesToFile = async (
121127
const values = cloneDeep(inValues)
122128
const originalValues = (await loadYaml(targetPath + suffix, { noError: true })) ?? {}
123129
d.debug('originalValues: ', JSON.stringify(originalValues, null, 2))
124-
const mergeResult = merge(cloneDeep(originalValues), values)
130+
const mergeResult = mergeWith(cloneDeep(originalValues), values, mergeCustomizer)
125131
const cleanedValues = removeBlankAttributes(values)
126132
const cleanedMergeResult = removeBlankAttributes(mergeResult)
127133
if (((overwrite && isEmpty(cleanedValues)) || (!overwrite && isEmpty(cleanedMergeResult))) && isSecretsFile) {

values-changes.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,6 @@ changes:
341341
- 'databases.keycloak.imported'
342342
- 'databases.gitea.imported'
343343
- 'databases.gitea.useOtomiDB'
344-
- version: 34
344+
- version: 41
345345
deletions:
346346
- 'teamConfig.{team}.services[].type'

0 commit comments

Comments
 (0)