Refactored Loon resource parser

This commit is contained in:
Peng-YM
2022-05-25 18:17:08 +08:00
parent 7b4f75fddc
commit bbfd139ec8
7 changed files with 79 additions and 21 deletions

File diff suppressed because one or more lines are too long

View File

@@ -7,8 +7,6 @@ import eslint from 'gulp-eslint-new';
import pkg from './package.json';
const DEST_FILE = 'sub-store.min.js';
export function lint() {
return gulp
.src('src/**/*.js')
@@ -32,23 +30,39 @@ export function styles() {
.pipe(gulp.dest((file) => file.base));
}
export function scripts() {
return browserify('src/main.js')
.transform('babelify', {
presets: [ [ '@babel/preset-env' ] ]
})
.plugin('tinyify')
.bundle()
.pipe(fs.createWriteStream(DEST_FILE));
function scripts(src, dest) {
return () => {
return browserify(src)
.transform('babelify', {
presets: [ [ '@babel/preset-env' ] ]
})
.plugin('tinyify')
.bundle()
.pipe(fs.createWriteStream(dest));
};
}
export function banner() {
return gulp
.src(DEST_FILE)
.pipe(header(fs.readFileSync('./banner', 'utf-8'), { pkg, updated: new Date().toLocaleString() }))
.pipe(gulp.dest((file) => file.base));
function banner(dest) {
return () => gulp
.src(dest)
.pipe(header(fs.readFileSync('./banner', 'utf-8'), { pkg, updated: new Date().toLocaleString() }))
.pipe(gulp.dest((file) => file.base));
}
const build = gulp.series(lint, styles, scripts, banner);
const artifacts = [
{ src: 'src/main.js', dest: 'sub-store.min.js' },
{ src: 'src/products/resource-parser.loon.js', dest: 'dist/sub-store-parser.loon.min.js'}
]
export default build;
export const build = gulp.series(
gulp.parallel(artifacts.map(artifact => scripts(artifact.src, artifact.dest))),
gulp.parallel(artifacts.map(artifact => banner(artifact.dest)))
);
const all = gulp.series(
lint,
styles,
build
)
export default all;

View File

@@ -1,6 +1,6 @@
{
"name": "sub-store",
"version": "1.5.1",
"version": "1.6",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
"main": "src/main.js",
"scripts": {

View File

@@ -0,0 +1,20 @@
/* eslint-disable no-undef */
import { ProxyUtils } from '../core/proxy-utils';
import { RuleUtils } from '../core/rule-utils';
const RESOURCE_TYPE = {
PROXY: 1,
RULE: 2,
};
let result = $resource;
if ($resourceType === RESOURCE_TYPE.PROXY) {
const proxies = ProxyUtils.parse($resource);
result = ProxyUtils.produce(proxies, 'Loon');
} else if ($resourceType === RESOURCE_TYPE.RULE) {
const rules = RuleUtils.parse($resource);
result = RuleUtils.produce(rules, 'Loon');
}
$done(result);

View File

@@ -6,8 +6,8 @@
* ███████║╚██████╔╝██████╔╝ ███████║ ██║ ╚██████╔╝██║ ██║███████╗
* ╚══════╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
* Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket!
* @updated: 2022/5/25 下午5:13:43
* @version: 1.5.1
* @updated: 2022/5/25 下午6:14:57
* @version: 1.6
* @author: Peng-YM
* @github: https://github.com/Peng-YM/Sub-Store
* @documentation: https://www.notion.so/Sub-Store-6259586994d34c11a4ced5c406264b46