mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-20 08:33:52 +01:00
36 lines
837 B
TypeScript
36 lines
837 B
TypeScript
import { Context, PluginDefinition } from '@yaakapp/api';
|
|
import YAML from 'yaml';
|
|
import { deleteUndefinedAttrs, isJSObject } from './common';
|
|
import { convertInsomniaV4 } from './v4';
|
|
import { convertInsomniaV5 } from './v5';
|
|
|
|
export const plugin: PluginDefinition = {
|
|
importer: {
|
|
name: 'Insomnia',
|
|
description: 'Import Insomnia workspaces',
|
|
async onImport(_ctx: Context, args: { text: string }) {
|
|
return convertInsomnia(args.text);
|
|
},
|
|
},
|
|
};
|
|
|
|
export function convertInsomnia(contents: string) {
|
|
let parsed: any;
|
|
|
|
try {
|
|
parsed = JSON.parse(contents);
|
|
} catch (e) {
|
|
}
|
|
|
|
try {
|
|
parsed = parsed ?? YAML.parse(contents);
|
|
} catch (e) {
|
|
}
|
|
|
|
if (!isJSObject(parsed)) return null;
|
|
|
|
const result = convertInsomniaV5(parsed) ?? convertInsomniaV4(parsed);
|
|
|
|
return deleteUndefinedAttrs(result);
|
|
}
|