feat: extension support (#78)

This commit is contained in:
Levi authored and GitHub committed 2023-10-16 09:47:31 +08:00
1 parent 82d316af83
commit c073fc0a67
118 files changed
+6971 -780

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
gopeed.events.onResolve(async function (ctx) {
ctx.res = {
name: "test",
files: Array(2).fill(true).map((_, i) => ({
name: `test-${i}.txt`,
size: 1024,
req: {
url: ctx.req.url + "/" + i,
}
}),
),
};
});
+21
View File
@@ -0,0 +1,21 @@
{
"name": "basic",
"title": "gopeed extension basic test",
"version": "0.0.1",
"scripts": [
{
"event": "onResolve",
"matches": [
"*://github.com/*"
],
"entry": "index.js"
}
],
"settings": [
{
"name": "ua",
"title": "User-Agent",
"type": "string"
}
]
}
+43
View File
@@ -0,0 +1,43 @@
gopeed.events.onResolve(async function (ctx) {
if (ctx.settings.string != null) {
throw new Error("string is not null");
}
if (ctx.settings.number != null) {
throw new Error("number is not null");
}
if (ctx.settings.boolean != null) {
throw new Error("boolean is not null");
}
if (ctx.settings.stringDefault !== "default") {
throw new Error("string default value is incorrect");
}
if (ctx.settings.numberDefault !== 1) {
throw new Error("number default value is incorrect");
}
if (ctx.settings.booleanDefault !== true) {
throw new Error("boolean default value is incorrect");
}
if (ctx.settings.stringValued !== "valued") {
throw new Error("string value is incorrect");
}
if (ctx.settings.numberValued !== 1.1) {
throw new Error("number value is incorrect");
}
if (ctx.settings.booleanValued !== true) {
throw new Error("boolean value is incorrect");
}
ctx.res = {
name: "test",
files: Array(2).fill(true).map((_, i) => ({
name: `test-${i}.txt`,
size: 1024,
req: {
url: ctx.req.url + "/" + i,
}
}),
),
};
});
@@ -0,0 +1,64 @@
{
"name": "settings-all",
"title": "gopeed extension settings all type test",
"version": "0.0.1",
"scripts": [
{
"event": "onResolve",
"matches": [
"*://*/*"
],
"entry": "index.js"
}
],
"settings": [
{
"name": "string",
"title": "string null test",
"type": "string"
},
{
"name": "number",
"title": "number null test",
"type": "number"
},
{
"name": "boolean",
"title": "boolean null test",
"type": "boolean"
},
{
"name": "stringDefault",
"title": "string default test",
"type": "string",
"value": "default"
},
{
"name": "numberDefault",
"title": "number default test",
"type": "number",
"value": 1
},
{
"name": "booleanDefault",
"title": "boolean default test",
"type": "boolean",
"value": true
},
{
"name": "stringValued",
"title": "string valued test",
"type": "string"
},
{
"name": "numberValued",
"title": "number valued test",
"type": "number"
},
{
"name": "booleanValued",
"title": "boolean valued test",
"type": "boolean"
}
]
}
@@ -0,0 +1,17 @@
gopeed.events.onResolve(async function (ctx) {
if (Object.keys(ctx.settings).length > 0){
throw new Error("settings is not empty");
}
ctx.res = {
name: "test",
files: Array(2).fill(true).map((_, i) => ({
name: `test-${i}.txt`,
size: 1024,
req: {
url: ctx.req.url + "/" + i,
}
}),
),
};
});
@@ -0,0 +1,14 @@
{
"name": "settings-empty",
"title": "gopeed extension settings empty test",
"version": "0.0.1",
"scripts": [
{
"event": "onResolve",
"matches": [
"*://*/*"
],
"entry": "index.js"
}
]
}
+3
View File
@@ -0,0 +1,3 @@
gopeed.events.onResolve(async function (ctx) {
// do nothing for test
});
+21
View File
@@ -0,0 +1,21 @@
{
"name": "github-release",
"author": "gopeed",
"title": "Github Release",
"description": "Download github release assets",
"version": "0.0.1",
"homepage": "https://gopeed.com",
"repository": {
"url": "https://github.com/GopeedLab/gopeed-extension-samples",
"directory": "github-release-sample"
},
"scripts": [
{
"event": "onResolve",
"matches": [
"*://github.com/*/releases/*"
],
"entry": "index.js"
}
]
}