2019-06-25 03:50:46 +00:00
|
|
|
import { safeDump, safeLoadAll } from 'js-yaml';
|
2019-06-16 21:15:01 +00:00
|
|
|
|
2019-08-30 05:24:12 +00:00
|
|
|
import { CONFIG_SCHEMA } from '../config/schema';
|
|
|
|
import { Parser } from '../parser';
|
2019-06-16 21:15:01 +00:00
|
|
|
|
|
|
|
export class YamlParser implements Parser {
|
2019-09-11 13:48:14 +00:00
|
|
|
public dump(...data: Array<any>): string {
|
2019-06-25 04:02:28 +00:00
|
|
|
const docs: Array<any> = [];
|
|
|
|
for (const doc of data) {
|
|
|
|
const part = safeDump(doc, {
|
|
|
|
schema: CONFIG_SCHEMA,
|
|
|
|
});
|
|
|
|
docs.push(part);
|
|
|
|
}
|
|
|
|
return docs.join('\n---\n\n');
|
2019-06-16 21:35:18 +00:00
|
|
|
}
|
|
|
|
|
2019-09-11 13:48:14 +00:00
|
|
|
public parse(body: string): Array<any> {
|
2019-06-25 03:50:46 +00:00
|
|
|
const docs: Array<any> = [];
|
|
|
|
safeLoadAll(body, (doc: any) => docs.push(doc), {
|
2019-06-16 21:15:01 +00:00
|
|
|
schema: CONFIG_SCHEMA,
|
|
|
|
});
|
2019-06-25 03:50:46 +00:00
|
|
|
return docs;
|
2019-06-16 21:15:01 +00:00
|
|
|
}
|
2019-09-01 06:55:11 +00:00
|
|
|
}
|