Refactoring

This commit is contained in:
syuilo
2019-05-01 18:33:11 +09:00
parent 3444b9c9c8
commit c3cd6ad2d2
7 changed files with 572 additions and 558 deletions

View File

@ -57,7 +57,7 @@ import Vue from 'vue';
import i18n from '../../../../i18n';
import XContainer from './page-editor.container.vue';
import { faSuperscript, faPencilAlt, faSquareRootAlt } from '@fortawesome/free-solid-svg-icons';
import { AiScript } from '../../../scripts/aiscript';
import { isLiteralBlock, funcDefs, blockDefs } from '../../../../../../misc/aiscript/index';
import * as uuid from 'uuid';
export default Vue.extend({
@ -97,7 +97,6 @@ export default Vue.extend({
data() {
return {
AiScript,
error: null,
warn: null,
slots: '',
@ -109,7 +108,7 @@ export default Vue.extend({
icon(): any {
if (this.value.type === null) return null;
if (this.value.type.startsWith('fn:')) return null;
return AiScript.blockDefs.find(x => x.type === this.value.type).icon;
return blockDefs.find(x => x.type === this.value.type).icon;
},
typeText(): any {
if (this.value.type === null) return null;
@ -160,17 +159,17 @@ export default Vue.extend({
return;
}
if (AiScript.isLiteralBlock(this.value)) return;
if (isLiteralBlock(this.value)) return;
const empties = [];
for (let i = 0; i < AiScript.funcDefs[this.value.type].in.length; i++) {
for (let i = 0; i < funcDefs[this.value.type].in.length; i++) {
const id = uuid.v4();
empties.push({ id, type: null });
}
Vue.set(this.value, 'args', empties);
for (let i = 0; i < AiScript.funcDefs[this.value.type].in.length; i++) {
const inType = AiScript.funcDefs[this.value.type].in[i];
for (let i = 0; i < funcDefs[this.value.type].in.length; i++) {
const inType = funcDefs[this.value.type].in[i];
if (typeof inType !== 'number') {
if (inType === 'number') this.value.args[i].type = 'number';
if (inType === 'string') this.value.args[i].type = 'text';

View File

@ -92,7 +92,8 @@ import { faSave, faStickyNote, faTrashAlt } from '@fortawesome/free-regular-svg-
import XVariable from './page-editor.script-block.vue';
import XBlock from './page-editor.block.vue';
import * as uuid from 'uuid';
import { AiScript } from '../../../scripts/aiscript';
import { blockDefs } from '../../../../../../misc/aiscript/index';
import { ASTypeChecker } from '../../../../../../misc/aiscript/type-checker';
import { url } from '../../../../config';
import { collectPageVars } from '../../../scripts/collect-page-vars';
@ -150,14 +151,14 @@ export default Vue.extend({
},
created() {
this.aiScript = new AiScript();
this.aiScript = new ASTypeChecker();
this.$watch('variables', () => {
this.aiScript.injectVars(this.variables);
this.aiScript.variables = this.variables;
}, { deep: true });
this.$watch('content', () => {
this.aiScript.injectPageVars(collectPageVars(this.content));
this.aiScript.pageVars = collectPageVars(this.content);
}, { deep: true });
if (this.page) {
@ -352,7 +353,7 @@ export default Vue.extend({
getScriptBlockList(type: string = null) {
const list = [];
const blocks = AiScript.blockDefs.filter(block => type === null || block.out === null || block.out === type);
const blocks = blockDefs.filter(block => type === null || block.out === null || block.out === type);
for (const block of blocks) {
const category = list.find(x => x.category === block.category);