chore: Get config takes in the config

This commit is contained in:
BluJ
2023-02-16 16:28:21 -07:00
parent 6d1181eba3
commit a6a766b24e
2 changed files with 8 additions and 5 deletions

View File

@@ -18,7 +18,8 @@ const matchConfig = dictionary([string, any]);
* @returns
*/
export const getConfig =
(spec: ConfigSpec): ExpectedExports.getConfig => async (effects) => {
<A extends ConfigSpec>(spec: Config<A>): ExpectedExports.getConfig =>
async (effects) => {
const config = await effects
.readFile({
path: "start9/config.yaml",
@@ -34,7 +35,7 @@ export const getConfig =
return {
result: {
config,
spec,
spec: spec.build(),
},
};
};
@@ -48,12 +49,12 @@ export const getConfig =
* @returns A funnction for getConfig and the matcher for the spec sent in
*/
export const getConfigAndMatcher = <Spec extends ConfigSpec>(
spec: Config<Spec> | Spec,
spec: Config<Spec>,
): [
ExpectedExports.getConfig,
matches.Parser<unknown, TypeFromProps<Spec>>,
] => {
const specBuilt: Spec = spec instanceof Config ? spec.build() : spec;
const specBuilt: Spec = spec.build();
return [
async (effects) => {

View File

@@ -4,6 +4,7 @@ import * as M from "../migrations.ts";
import * as util from "../util.ts";
import { EmVer } from "../emver-lite/mod.ts";
import { ConfigSpec } from "../types/config-types.ts";
import { Config } from "../config/mod.ts";
export interface NoRepeat<version extends string, type extends "up" | "down"> {
version: version;
@@ -31,7 +32,8 @@ export function updateConfig<
): M.MigrationFn<version, type> {
return M.migrationFn(async (effects: T.Effects) => {
await noRepeatGuard(effects, noRepeat, async () => {
let config = util.unwrapResultType(await getConfig({})(effects)).config;
let config =
util.unwrapResultType(await getConfig(Config.of({}))(effects)).config;
if (config) {
try {
config = await fn(config, effects);