feat: Add the merge to the file. (#2643)

* feat: Add the merge to the file.

* chore: Fix the early escape
This commit is contained in:
Jade
2024-06-10 22:38:12 -06:00
committed by GitHub
parent 4d6cb091cc
commit 5aefb707fa
3 changed files with 26 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
import * as matches from "ts-matches" import * as matches from "ts-matches"
import * as YAML from "yaml" import * as YAML from "yaml"
import * as TOML from "@iarna/toml" import * as TOML from "@iarna/toml"
import _ from "lodash"
import * as T from "../types" import * as T from "../types"
import * as fs from "fs" import * as fs from "fs"
@@ -82,6 +83,12 @@ export class FileHelper<A> {
), ),
) )
} }
async merge(data: A, effects: T.Effects) {
const fileData = (await this.read(effects).catch(() => ({}))) || {}
const mergeData = _.merge({}, fileData, data)
return await this.write(mergeData, effects)
}
/** /**
* Create a File Helper for an arbitrary file type. * Create a File Helper for an arbitrary file type.
* *

17
sdk/package-lock.json generated
View File

@@ -1,20 +1,22 @@
{ {
"name": "@start9labs/start-sdk", "name": "@start9labs/start-sdk",
"version": "0.4.0-rev0.lib0.rc8.beta10", "version": "0.3.6-alpha1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@start9labs/start-sdk", "name": "@start9labs/start-sdk",
"version": "0.4.0-rev0.lib0.rc8.beta10", "version": "0.3.6-alpha1",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"isomorphic-fetch": "^3.0.0", "isomorphic-fetch": "^3.0.0",
"lodash": "4.*.*",
"ts-matches": "^5.4.1" "ts-matches": "^5.4.1"
}, },
"devDependencies": { "devDependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"@types/jest": "^29.4.0", "@types/jest": "^29.4.0",
"@types/lodash": "^4.17.5",
"jest": "^29.4.3", "jest": "^29.4.3",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"ts-jest": "^29.0.5", "ts-jest": "^29.0.5",
@@ -1136,6 +1138,12 @@
"pretty-format": "^29.0.0" "pretty-format": "^29.0.0"
} }
}, },
"node_modules/@types/lodash": {
"version": "4.17.5",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz",
"integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==",
"dev": true
},
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "18.15.10", "version": "18.15.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz",
@@ -2841,6 +2849,11 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash.memoize": { "node_modules/lodash.memoize": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",

View File

@@ -31,6 +31,7 @@
"homepage": "https://github.com/Start9Labs/start-sdk#readme", "homepage": "https://github.com/Start9Labs/start-sdk#readme",
"dependencies": { "dependencies": {
"isomorphic-fetch": "^3.0.0", "isomorphic-fetch": "^3.0.0",
"lodash": "4.*.*",
"ts-matches": "^5.4.1" "ts-matches": "^5.4.1"
}, },
"prettier": { "prettier": {
@@ -41,13 +42,14 @@
}, },
"devDependencies": { "devDependencies": {
"@iarna/toml": "^2.2.5", "@iarna/toml": "^2.2.5",
"yaml": "^2.2.2",
"@types/jest": "^29.4.0", "@types/jest": "^29.4.0",
"@types/lodash": "^4.17.5",
"jest": "^29.4.3", "jest": "^29.4.3",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"ts-jest": "^29.0.5", "ts-jest": "^29.0.5",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"tsx": "^4.7.1", "tsx": "^4.7.1",
"typescript": "^5.0.4" "typescript": "^5.0.4",
"yaml": "^2.2.2"
} }
} }