jackson/npm/src/read-config.ts

30 lines
826 B
TypeScript
Raw Normal View History

import * as fs from 'fs';
import * as path from 'path';
2021-12-31 05:56:44 +00:00
import { IdPConfig } from './typings';
2021-12-23 15:06:09 +00:00
const readConfig = async (preLoadedConfig: string): Promise<IdPConfig[]> => {
if (preLoadedConfig.startsWith('./')) {
preLoadedConfig = path.resolve(process.cwd(), preLoadedConfig);
}
2021-12-23 15:06:09 +00:00
const files = await fs.promises.readdir(preLoadedConfig);
2021-12-23 08:17:20 +00:00
const configs: IdPConfig[] = [];
2021-12-23 15:06:09 +00:00
2021-12-31 05:56:44 +00:00
for (const idx in files) {
const file = files[idx];
if (file.endsWith('.js')) {
2021-12-23 08:17:20 +00:00
const config = require(path.join(preLoadedConfig, file)) as IdPConfig;
const rawMetadata = await fs.promises.readFile(
path.join(preLoadedConfig, path.parse(file).name + '.xml'),
'utf8'
);
config.rawMetadata = rawMetadata;
configs.push(config);
}
}
return configs;
};
2021-12-23 15:06:09 +00:00
export default readConfig;