Deno plugins (#42)

Switch from BoaJS to Deno core
This commit is contained in:
Gregory Schier
2024-06-07 10:47:41 -07:00
committed by GitHub
parent 993d4dc65d
commit 392b549646
32 changed files with 1378 additions and 5663 deletions

View File

@@ -8,6 +8,8 @@ export default defineConfig({
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/exporter-curl'),
emptyOutDir: true,
sourcemap: true,
outDir: resolve(__dirname, 'build'),
},
});

View File

@@ -1,6 +1,6 @@
import jp from 'jsonpath';
export function pluginHookResponseFilter(filter, text) {
export function pluginHookResponseFilter(ctx, filter, text) {
let parsed;
try {
parsed = JSON.parse(text);

View File

@@ -8,6 +8,8 @@ export default defineConfig({
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/filter-jsonpath'),
emptyOutDir: true,
sourcemap: true,
outDir: resolve(__dirname, 'build'),
},
});

View File

@@ -1,7 +1,7 @@
import xpath from 'xpath';
import { DOMParser } from '@xmldom/xmldom';
export function pluginHookResponseFilter(filter, text) {
export function pluginHookResponseFilter(ctx, filter, text) {
const doc = new DOMParser().parseFromString(text, 'text/xml');
const filtered = `${xpath.select(filter, doc)}`;
return { filtered };

View File

@@ -8,6 +8,8 @@ export default defineConfig({
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/filter-xpath'),
emptyOutDir: true,
sourcemap: true,
outDir: resolve(__dirname, 'build'),
},
});

View File

@@ -43,7 +43,7 @@ type Pair = string | boolean;
type PairsByName = Record<string, Pair[]>;
export function pluginHookImport(rawData: string) {
export function pluginHookImport(ctx: any, rawData: string) {
if (!rawData.match(/^\s*curl /)) {
return null;
}

View File

@@ -8,6 +8,8 @@ export default defineConfig({
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/importer-curl'),
emptyOutDir: true,
sourcemap: true,
outDir: resolve(__dirname, 'build'),
},
});

View File

@@ -5,7 +5,7 @@ import {
HttpRequest,
Workspace,
} from '../../../src-web/lib/models';
import { parse as parseYaml } from 'yaml';
import '../../../src-web/plugin/runtime.d.ts';
type AtLeast<T, K extends keyof T> = Partial<T> & Pick<T, K>;
@@ -17,7 +17,7 @@ export interface ExportResources {
folders: AtLeast<Folder, 'name' | 'id' | 'model' | 'workspaceId'>[];
}
export function pluginHookImport(contents: string) {
export function pluginHookImport(ctx: YaakContext, contents: string) {
let parsed: any;
try {
@@ -25,8 +25,10 @@ export function pluginHookImport(contents: string) {
} catch (e) {}
try {
parsed = parseYaml(contents);
} catch (e) {}
parsed = parsed ?? YAML.parse(contents);
} catch (e) {
console.log('FAILED', e);
}
if (!isJSObject(parsed)) return;
if (!Array.isArray(parsed.resources)) return;

View File

@@ -8,6 +8,8 @@ export default defineConfig({
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/importer-insomnia'),
emptyOutDir: true,
sourcemap: true,
outDir: resolve(__dirname, 'build'),
},
});

View File

@@ -13,7 +13,11 @@ interface ExportResources {
folders: AtLeast<Folder, 'name' | 'id' | 'model' | 'workspaceId'>[];
}
export function pluginHookImport(contents: string): { resources: ExportResources } | undefined {
export function pluginHookImport(
ctx: any,
contents: string,
): { resources: ExportResources } | undefined {
console.log('CTX', ctx);
const root = parseJSONToRecord(contents);
if (root == null) return;

View File

@@ -23,7 +23,7 @@ describe('importer-postman', () => {
for (const fixture of fixtures) {
test('Imports ' + fixture, () => {
const contents = fs.readFileSync(path.join(p, fixture), 'utf-8');
const imported = pluginHookImport(contents);
const imported = pluginHookImport({}, contents);
const folder0 = newId('folder');
const folder1 = newId('folder');
expect(imported).toEqual({

View File

@@ -8,6 +8,8 @@ export default defineConfig({
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/importer-postman'),
emptyOutDir: true,
sourcemap: true,
outDir: resolve(__dirname, 'build'),
},
});

View File

@@ -1,4 +1,4 @@
export function pluginHookImport(contents: string) {
export function pluginHookImport(ctx: any, contents: string) {
let parsed;
try {
parsed = JSON.parse(contents);
@@ -18,7 +18,7 @@ export function pluginHookImport(contents: string) {
// Migrate v1 to v2 -- changes requests to httpRequests
if ('requests' in parsed.resources) {
parsed.resources.httpRequests = parsed.resources.requests;
delete parsed.resources.requests;
delete parsed.resources['requests'];
}
return { resources: parsed.resources }; // Should already be in the correct format

View File

@@ -8,6 +8,8 @@ export default defineConfig({
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/importer-yaak'),
emptyOutDir: true,
sourcemap: true,
outDir: resolve(__dirname, 'build'),
},
});