2021-06-27 22:06:11 +08:00
|
|
|
|
import RuleInterface from "./RuleInterface";
|
|
|
|
|
import FileObj from "../FileObj";
|
2021-06-28 18:07:02 +08:00
|
|
|
|
import path from 'path';
|
2021-06-27 22:06:11 +08:00
|
|
|
|
|
|
|
|
|
export default class InsertRule implements RuleInterface {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 插入内容
|
|
|
|
|
*/
|
|
|
|
|
insertContent: string;
|
|
|
|
|
/**
|
|
|
|
|
* 操作类别,front:前缀,backend:后缀,at:位置,replace:替换当前文件名
|
|
|
|
|
*/
|
|
|
|
|
type: string;
|
|
|
|
|
/**
|
|
|
|
|
* 当type为at,时的位置,从1开始
|
|
|
|
|
*/
|
|
|
|
|
atInput: number;
|
|
|
|
|
/**
|
|
|
|
|
* 当type为at,时的方向,true:从右到左,false:从左到右
|
|
|
|
|
*/
|
|
|
|
|
atIsRightToleft: boolean;
|
|
|
|
|
/**
|
|
|
|
|
* 忽略拓展名,true:忽略,false:不忽略
|
|
|
|
|
*/
|
|
|
|
|
ignorePostfix: boolean;
|
|
|
|
|
|
|
|
|
|
constructor(data: any) {
|
|
|
|
|
this.insertContent = data.insertContent;
|
|
|
|
|
this.type = data.type;
|
|
|
|
|
this.atInput = data.atInput;
|
|
|
|
|
this.atIsRightToleft = data.atIsRightToleft;
|
|
|
|
|
this.ignorePostfix = data.ignorePostfix;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2021-06-28 18:07:02 +08:00
|
|
|
|
deal(file: FileObj): void {
|
|
|
|
|
let str = this.ignorePostfix ? file.realName : file.name;
|
|
|
|
|
switch (this.type) {
|
|
|
|
|
case "front":
|
|
|
|
|
str = this.insertContent + str;
|
|
|
|
|
break;
|
|
|
|
|
case "backend":
|
|
|
|
|
str = str + this.insertContent;
|
|
|
|
|
break;
|
|
|
|
|
case "at":
|
|
|
|
|
let index = this.atIsRightToleft ? str.length - this.atInput + 1 : this.atInput - 1;
|
|
|
|
|
str = str.substring(0, index) + this.insertContent + str.substring(index);
|
|
|
|
|
break;
|
|
|
|
|
case "replace":
|
|
|
|
|
str = this.insertContent;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (this.ignorePostfix) {
|
|
|
|
|
file.realName = str;
|
|
|
|
|
} else {
|
|
|
|
|
file.expandName = path.extname(str);
|
|
|
|
|
if (file.expandName.length > 0) {
|
|
|
|
|
file.realName = str.substring(0, str.lastIndexOf("."));
|
|
|
|
|
} else {
|
|
|
|
|
file.realName = str;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
file.name = file.realName + file.expandName;
|
2021-06-27 22:06:11 +08:00
|
|
|
|
}
|
|
|
|
|
}
|