refactor folders to move "/state" (IApplicationState) inside "/context" (IApplicationContext)
This commit is contained in:
@@ -31,7 +31,7 @@
|
|||||||
- **Stateless**, extends `Vue`
|
- **Stateless**, extends `Vue`
|
||||||
- **Stateful**, extends [`StatefulVue`](./src/presentation/StatefulVue.ts)
|
- **Stateful**, extends [`StatefulVue`](./src/presentation/StatefulVue.ts)
|
||||||
- The source of truth for the state lies in application layer (`./src/application/`) and must be updated from the views if they're mutating the state
|
- The source of truth for the state lies in application layer (`./src/application/`) and must be updated from the views if they're mutating the state
|
||||||
- They mutate or/and react to changes in [application state](src/application/State/ApplicationState.ts).
|
- They mutate or/and react to changes in [application state](src/application/Context/State/ApplicationState.ts).
|
||||||
- You can react by getting the state and listening to it and update the view accordingly in [`mounted()`](https://vuejs.org/v2/api/#mounted) method.
|
- You can react by getting the state and listening to it and update the view accordingly in [`mounted()`](https://vuejs.org/v2/api/#mounted) method.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
- Event driven as in components simply listens to events from the state and act accordingly.
|
- Event driven as in components simply listens to events from the state and act accordingly.
|
||||||
- **Application Layer**
|
- **Application Layer**
|
||||||
- Keeps the application state
|
- Keeps the application state
|
||||||
- The [state](src/application/State/ApplicationState.ts) is a mutable singleton & event producer.
|
- The [state](src/application/Context/State/ApplicationState.ts) is a mutable singleton & event producer.
|
||||||
- The application is defined & controlled in a [single YAML file](src/application/application.yaml) (see [Data-driven programming](https://en.wikipedia.org/wiki/Data-driven_programming))
|
- The application is defined & controlled in a [single YAML file](src/application/application.yaml) (see [Data-driven programming](https://en.wikipedia.org/wiki/Data-driven_programming))
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { IApplicationContext } from './IApplicationContext';
|
import { IApplicationContext } from './IApplicationContext';
|
||||||
import { IApplication } from '@/domain/IApplication';
|
import { IApplication } from '@/domain/IApplication';
|
||||||
import { IApplicationState } from './IApplicationState';
|
import { IApplicationState } from './State/IApplicationState';
|
||||||
import { ApplicationState } from './ApplicationState';
|
import { ApplicationState } from './State/ApplicationState';
|
||||||
import applicationFile from 'js-yaml-loader!@/application/application.yaml';
|
import applicationFile from 'js-yaml-loader!@/application/application.yaml';
|
||||||
import { parseApplication } from '../Parser/ApplicationParser';
|
import { parseApplication } from '../Parser/ApplicationParser';
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { ApplicationContext } from './ApplicationContext';
|
import { ApplicationContext } from './ApplicationContext';
|
||||||
import { IApplicationContext } from '@/application/State/IApplicationContext';
|
import { IApplicationContext } from '@/application/Context/IApplicationContext';
|
||||||
import applicationFile from 'js-yaml-loader!@/application/application.yaml';
|
import applicationFile from 'js-yaml-loader!@/application/application.yaml';
|
||||||
import { parseApplication } from '@/application/Parser/ApplicationParser';
|
import { parseApplication } from '@/application/Parser/ApplicationParser';
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { IApplication } from '@/domain/IApplication';
|
import { IApplication } from '@/domain/IApplication';
|
||||||
import { IApplicationState } from './IApplicationState';
|
import { IApplicationState } from './State/IApplicationState';
|
||||||
|
|
||||||
export interface IApplicationContext {
|
export interface IApplicationContext {
|
||||||
readonly app: IApplication;
|
readonly app: IApplication;
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import { CodeChangedEvent } from './Event/CodeChangedEvent';
|
import { CodeChangedEvent } from './Event/CodeChangedEvent';
|
||||||
import { CodePosition } from './Position/CodePosition';
|
import { CodePosition } from './Position/CodePosition';
|
||||||
import { ICodeChangedEvent } from './Event/ICodeChangedEvent';
|
import { ICodeChangedEvent } from './Event/ICodeChangedEvent';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { IUserSelection } from '@/application/State/Selection/IUserSelection';
|
import { IUserSelection } from '@/application/Context/State/Selection/IUserSelection';
|
||||||
import { UserScriptGenerator } from './Generation/UserScriptGenerator';
|
import { UserScriptGenerator } from './Generation/UserScriptGenerator';
|
||||||
import { Signal } from '@/infrastructure/Events/Signal';
|
import { Signal } from '@/infrastructure/Events/Signal';
|
||||||
import { IApplicationCode } from './IApplicationCode';
|
import { IApplicationCode } from './IApplicationCode';
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { ICodeChangedEvent } from './ICodeChangedEvent';
|
import { ICodeChangedEvent } from './ICodeChangedEvent';
|
||||||
import { SelectedScript } from '../../Selection/SelectedScript';
|
import { SelectedScript } from '../../Selection/SelectedScript';
|
||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
import { ICodePosition } from '@/application/State/Code/Position/ICodePosition';
|
import { ICodePosition } from '@/application/Context/State/Code/Position/ICodePosition';
|
||||||
|
|
||||||
export class CodeChangedEvent implements ICodeChangedEvent {
|
export class CodeChangedEvent implements ICodeChangedEvent {
|
||||||
public readonly code: string;
|
public readonly code: string;
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
import { ICodePosition } from '@/application/State/Code/Position/ICodePosition';
|
import { ICodePosition } from '@/application/Context/State/Code/Position/ICodePosition';
|
||||||
|
|
||||||
export interface ICodeChangedEvent {
|
export interface ICodeChangedEvent {
|
||||||
readonly code: string;
|
readonly code: string;
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
|
import { ICodePosition } from '@/application/Context/State/Code/Position/ICodePosition';
|
||||||
|
|
||||||
|
export interface IUserScript {
|
||||||
|
code: string;
|
||||||
|
scriptPositions: Map<SelectedScript, ICodePosition>;
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { IUserScript } from './IUserScript';
|
import { IUserScript } from './IUserScript';
|
||||||
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { IUserScriptGenerator } from './IUserScriptGenerator';
|
import { IUserScriptGenerator } from './IUserScriptGenerator';
|
||||||
import { CodeBuilder } from './CodeBuilder';
|
import { CodeBuilder } from './CodeBuilder';
|
||||||
import { ICodePosition } from '@/application/State/Code/Position/ICodePosition';
|
import { ICodePosition } from '@/application/Context/State/Code/Position/ICodePosition';
|
||||||
import { CodePosition } from '../Position/CodePosition';
|
import { CodePosition } from '../Position/CodePosition';
|
||||||
import { IUserScript } from './IUserScript';
|
import { IUserScript } from './IUserScript';
|
||||||
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Category } from '@/domain/Category';
|
import { Category } from '@/domain/Category';
|
||||||
import { Application } from '@/domain/Application';
|
import { Application } from '@/domain/Application';
|
||||||
import { IApplication } from '@/domain/IApplication';
|
import { IApplication } from '@/domain/IApplication';
|
||||||
import { YamlApplication } from 'js-yaml-loader!./../application.yaml';
|
import { YamlApplication } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { parseCategory } from './CategoryParser';
|
import { parseCategory } from './CategoryParser';
|
||||||
import { parseProjectInformation } from './ProjectInformationParser';
|
import { parseProjectInformation } from './ProjectInformationParser';
|
||||||
import { ScriptCompiler } from './Compiler/ScriptCompiler';
|
import { ScriptCompiler } from './Compiler/ScriptCompiler';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { YamlCategory, YamlScript } from 'js-yaml-loader!./application.yaml';
|
import { YamlCategory, YamlScript } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { Script } from '@/domain/Script';
|
import { Script } from '@/domain/Script';
|
||||||
import { Category } from '@/domain/Category';
|
import { Category } from '@/domain/Category';
|
||||||
import { parseDocUrls } from './DocumentationParser';
|
import { parseDocUrls } from './DocumentationParser';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { IScriptCode } from '@/domain/IScriptCode';
|
import { IScriptCode } from '@/domain/IScriptCode';
|
||||||
import { YamlScript } from 'js-yaml-loader!./application.yaml';
|
import { YamlScript } from 'js-yaml-loader!@/application.yaml';
|
||||||
|
|
||||||
export interface IScriptCompiler {
|
export interface IScriptCompiler {
|
||||||
canCompile(script: YamlScript): boolean;
|
canCompile(script: YamlScript): boolean;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { generateIlCode, IILCode } from './ILCode';
|
import { generateIlCode, IILCode } from './ILCode';
|
||||||
import { IScriptCode } from '@/domain/IScriptCode';
|
import { IScriptCode } from '@/domain/IScriptCode';
|
||||||
import { ScriptCode } from '@/domain/ScriptCode';
|
import { ScriptCode } from '@/domain/ScriptCode';
|
||||||
import { YamlScript, YamlFunction, FunctionCall, ScriptFunctionCall, FunctionCallParameters } from 'js-yaml-loader!./application.yaml';
|
import { YamlScript, YamlFunction, FunctionCall, ScriptFunctionCall, FunctionCallParameters } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { IScriptCompiler } from './IScriptCompiler';
|
import { IScriptCompiler } from './IScriptCompiler';
|
||||||
|
|
||||||
interface ICompiledCode {
|
interface ICompiledCode {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Script } from '@/domain/Script';
|
import { Script } from '@/domain/Script';
|
||||||
import { YamlScript } from 'js-yaml-loader!./application.yaml';
|
import { YamlScript } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { parseDocUrls } from './DocumentationParser';
|
import { parseDocUrls } from './DocumentationParser';
|
||||||
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
||||||
import { IScriptCompiler } from './Compiler/IScriptCompiler';
|
import { IScriptCompiler } from './Compiler/IScriptCompiler';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
||||||
import { YamlScriptingDefinition } from 'js-yaml-loader!./application.yaml';
|
import { YamlScriptingDefinition } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { ScriptingDefinition } from '@/domain/ScriptingDefinition';
|
import { ScriptingDefinition } from '@/domain/ScriptingDefinition';
|
||||||
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
||||||
import { IProjectInformation } from '@/domain/IProjectInformation';
|
import { IProjectInformation } from '@/domain/IProjectInformation';
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
|
||||||
import { ICodePosition } from '@/application/State/Code/Position/ICodePosition';
|
|
||||||
|
|
||||||
export interface IUserScript {
|
|
||||||
code: string;
|
|
||||||
scriptPositions: Map<SelectedScript, ICodePosition>;
|
|
||||||
}
|
|
||||||
@@ -19,12 +19,12 @@
|
|||||||
import { StatefulVue } from '@/presentation/StatefulVue';
|
import { StatefulVue } from '@/presentation/StatefulVue';
|
||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
import { ICategory } from '@/domain/ICategory';
|
import { ICategory } from '@/domain/ICategory';
|
||||||
import { IApplicationState } from '@/application/State/IApplicationState';
|
import { IApplicationState } from '@/application/Context/State/IApplicationState';
|
||||||
import { IFilterResult } from '@/application/State/Filter/IFilterResult';
|
import { IFilterResult } from '@/application/Context/State/Filter/IFilterResult';
|
||||||
import { parseAllCategories, parseSingleCategory, getScriptNodeId, getCategoryNodeId, getCategoryId, getScriptId } from './ScriptNodeParser';
|
import { parseAllCategories, parseSingleCategory, getScriptNodeId, getCategoryNodeId, getCategoryId, getScriptId } from './ScriptNodeParser';
|
||||||
import SelectableTree from './SelectableTree/SelectableTree.vue';
|
import SelectableTree from './SelectableTree/SelectableTree.vue';
|
||||||
import { INode, NodeType } from './SelectableTree/Node/INode';
|
import { INode, NodeType } from './SelectableTree/Node/INode';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { INodeSelectedEvent } from './SelectableTree/INodeSelectedEvent';
|
import { INodeSelectedEvent } from './SelectableTree/INodeSelectedEvent';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
import { IReverter } from './Reverter/IReverter';
|
import { IReverter } from './Reverter/IReverter';
|
||||||
import { StatefulVue } from '@/presentation/StatefulVue';
|
import { StatefulVue } from '@/presentation/StatefulVue';
|
||||||
import { INode } from './INode';
|
import { INode } from './INode';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { getReverter } from './Reverter/ReverterFactory';
|
import { getReverter } from './Reverter/ReverterFactory';
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { IReverter } from './IReverter';
|
import { IReverter } from './IReverter';
|
||||||
import { getCategoryId } from '../../../ScriptNodeParser';
|
import { getCategoryId } from '../../../ScriptNodeParser';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { IApplication } from '@/domain/IApplication';
|
import { IApplication } from '@/domain/IApplication';
|
||||||
import { ScriptReverter } from './ScriptReverter';
|
import { ScriptReverter } from './ScriptReverter';
|
||||||
import { IUserSelection } from '@/application/State/Selection/IUserSelection';
|
import { IUserSelection } from '@/application/Context/State/Selection/IUserSelection';
|
||||||
|
|
||||||
export class CategoryReverter implements IReverter {
|
export class CategoryReverter implements IReverter {
|
||||||
private readonly categoryId: number;
|
private readonly categoryId: number;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { IUserSelection } from '@/application/State/IApplicationState';
|
import { IUserSelection } from '@/application/Context/State/IApplicationState';
|
||||||
|
|
||||||
export interface IReverter {
|
export interface IReverter {
|
||||||
getState(selectedScripts: ReadonlyArray<SelectedScript>): boolean;
|
getState(selectedScripts: ReadonlyArray<SelectedScript>): boolean;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { IReverter } from './IReverter';
|
import { IReverter } from './IReverter';
|
||||||
import { getScriptId } from '../../../ScriptNodeParser';
|
import { getScriptId } from '../../../ScriptNodeParser';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { IUserSelection } from '@/application/State/IApplicationState';
|
import { IUserSelection } from '@/application/Context/State/IApplicationState';
|
||||||
|
|
||||||
export class ScriptReverter implements IReverter {
|
export class ScriptReverter implements IReverter {
|
||||||
private readonly scriptId: string;
|
private readonly scriptId: string;
|
||||||
|
|||||||
@@ -45,11 +45,10 @@
|
|||||||
import { Component } from 'vue-property-decorator';
|
import { Component } from 'vue-property-decorator';
|
||||||
import { StatefulVue } from '@/presentation/StatefulVue';
|
import { StatefulVue } from '@/presentation/StatefulVue';
|
||||||
import SelectableOption from './SelectableOption.vue';
|
import SelectableOption from './SelectableOption.vue';
|
||||||
import { IApplicationState } from '@/application/State/IApplicationState';
|
|
||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
||||||
import { IApplicationContext } from '../../../application/State/IApplicationContext';
|
import { IApplicationContext } from '@/application/Context/IApplicationContext';
|
||||||
|
|
||||||
enum SelectionState {
|
enum SelectionState {
|
||||||
Standard,
|
Standard,
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
import { Component } from 'vue-property-decorator';
|
import { Component } from 'vue-property-decorator';
|
||||||
import { StatefulVue } from '@/presentation/StatefulVue';
|
import { StatefulVue } from '@/presentation/StatefulVue';
|
||||||
import { Grouping } from './Grouping/Grouping';
|
import { Grouping } from './Grouping/Grouping';
|
||||||
import { IFilterResult } from '@/application/State/Filter/IFilterResult';
|
import { IFilterResult } from '@/application/Context/State/Filter/IFilterResult';
|
||||||
import TheGrouper from '@/presentation/Scripts/Grouping/TheGrouper.vue';
|
import TheGrouper from '@/presentation/Scripts/Grouping/TheGrouper.vue';
|
||||||
import TheSelector from '@/presentation/Scripts/Selector/TheSelector.vue';
|
import TheSelector from '@/presentation/Scripts/Selector/TheSelector.vue';
|
||||||
import ScriptsTree from '@/presentation/Scripts/ScriptsTree/ScriptsTree.vue';
|
import ScriptsTree from '@/presentation/Scripts/ScriptsTree/ScriptsTree.vue';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Vue } from 'vue-property-decorator';
|
import { Vue } from 'vue-property-decorator';
|
||||||
import { AsyncLazy } from '@/infrastructure/Threading/AsyncLazy';
|
import { AsyncLazy } from '@/infrastructure/Threading/AsyncLazy';
|
||||||
import { IApplicationContext } from '@/application/State/IApplicationContext';
|
import { IApplicationContext } from '@/application/Context/IApplicationContext';
|
||||||
import { buildContext } from '@/application/State/ApplicationContextProvider';
|
import { buildContext } from '@/application/Context/ApplicationContextProvider';
|
||||||
|
|
||||||
export abstract class StatefulVue extends Vue {
|
export abstract class StatefulVue extends Vue {
|
||||||
private static instance = new AsyncLazy<IApplicationContext>(
|
private static instance = new AsyncLazy<IApplicationContext>(
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import { Component, Prop } from 'vue-property-decorator';
|
|||||||
import { StatefulVue } from './StatefulVue';
|
import { StatefulVue } from './StatefulVue';
|
||||||
import ace from 'ace-builds';
|
import ace from 'ace-builds';
|
||||||
import 'ace-builds/webpack-resolver';
|
import 'ace-builds/webpack-resolver';
|
||||||
import { CodeBuilder } from '@/application/State/Code/Generation/CodeBuilder';
|
import { CodeBuilder } from '@/application/Context/State/Code/Generation/CodeBuilder';
|
||||||
import { ICodeChangedEvent } from '@/application/State/Code/Event/ICodeChangedEvent';
|
import { ICodeChangedEvent } from '@/application/Context/State/Code/Event/ICodeChangedEvent';
|
||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ import { SaveFileDialog, FileType } from '@/infrastructure/SaveFileDialog';
|
|||||||
import { Clipboard } from '@/infrastructure/Clipboard';
|
import { Clipboard } from '@/infrastructure/Clipboard';
|
||||||
import IconButton from './IconButton.vue';
|
import IconButton from './IconButton.vue';
|
||||||
import { Environment } from '@/application/Environment/Environment';
|
import { Environment } from '@/application/Environment/Environment';
|
||||||
import { IApplicationCode } from '../application/State/IApplicationState';
|
import { IApplicationCode } from '@/application/Context/State/IApplicationState';
|
||||||
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
||||||
import { IApplicationContext } from '@/application/State/IApplicationContext';
|
import { IApplicationContext } from '@/application/Context/IApplicationContext';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
components: {
|
components: {
|
||||||
@@ -64,7 +64,7 @@ function saveCode(context: IApplicationContext) {
|
|||||||
const fileName = `privacy-script.${context.app.scripting.fileExtension}`;
|
const fileName = `privacy-script.${context.app.scripting.fileExtension}`;
|
||||||
const content = context.state.code.current;
|
const content = context.state.code.current;
|
||||||
const type = getType(context.app.scripting.language);
|
const type = getType(context.app.scripting.language);
|
||||||
SaveFileDialog.saveFile(content, fileName, FileType.BatchFile);
|
SaveFileDialog.saveFile(content, fileName, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getType(language: ScriptingLanguage) {
|
function getType(language: ScriptingLanguage) {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
import { Component, Watch } from 'vue-property-decorator';
|
import { Component, Watch } from 'vue-property-decorator';
|
||||||
import { StatefulVue } from './StatefulVue';
|
import { StatefulVue } from './StatefulVue';
|
||||||
import { NonCollapsing } from '@/presentation/Scripts/Cards/NonCollapsingDirective';
|
import { NonCollapsing } from '@/presentation/Scripts/Cards/NonCollapsingDirective';
|
||||||
import { IUserFilter } from '@/application/State/IApplicationState';
|
import { IUserFilter } from '@/application/Context/State/IApplicationState';
|
||||||
|
|
||||||
@Component( {
|
@Component( {
|
||||||
directives: { NonCollapsing },
|
directives: { NonCollapsing },
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { UserSelection } from '@/application/State/Selection/UserSelection';
|
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
|
||||||
import { ApplicationCode } from '@/application/State/Code/ApplicationCode';
|
import { ApplicationCode } from '@/application/Context/State/Code/ApplicationCode';
|
||||||
import { ScriptStub } from './../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../stubs/ScriptStub';
|
||||||
import { CategoryStub } from './../../stubs/CategoryStub';
|
import { CategoryStub } from '../../../stubs/CategoryStub';
|
||||||
import { ApplicationStub } from './../../stubs/ApplicationStub';
|
import { ApplicationStub } from '../../../stubs/ApplicationStub';
|
||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { ApplicationState } from '@/application/State/ApplicationState';
|
import { ApplicationState } from '@/application/Context/State/ApplicationState';
|
||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
|
|
||||||
describe('ApplicationState', () => {
|
describe('ApplicationState', () => {
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { CategoryStub } from './../../../stubs/CategoryStub';
|
import { CategoryStub } from '../../../../stubs/CategoryStub';
|
||||||
import { ScriptStub } from './../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../stubs/ScriptStub';
|
||||||
import { ApplicationStub } from './../../../stubs/ApplicationStub';
|
import { ApplicationStub } from '../../../../stubs/ApplicationStub';
|
||||||
import { UserSelection } from '@/application/State/Selection/UserSelection';
|
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
|
||||||
import { ApplicationCode } from '@/application/State/Code/ApplicationCode';
|
import { ApplicationCode } from '@/application/Context/State/Code/ApplicationCode';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { ICodeChangedEvent } from '@/application/State/Code/Event/ICodeChangedEvent';
|
import { ICodeChangedEvent } from '@/application/Context/State/Code/Event/ICodeChangedEvent';
|
||||||
import { IUserScriptGenerator } from '@/application/State/Code/Generation/IUserScriptGenerator';
|
import { IUserScriptGenerator } from '@/application/Context/State/Code/Generation/IUserScriptGenerator';
|
||||||
import { CodePosition } from '@/application/State/Code/Position/CodePosition';
|
import { CodePosition } from '@/application/Context/State/Code/Position/CodePosition';
|
||||||
import { ICodePosition } from '@/application/State/Code/Position/ICodePosition';
|
import { ICodePosition } from '@/application/Context/State/Code/Position/ICodePosition';
|
||||||
import { ScriptingDefinitionStub } from './../../../stubs/ScriptingDefinitionStub';
|
import { ScriptingDefinitionStub } from '../../../../stubs/ScriptingDefinitionStub';
|
||||||
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
||||||
import { IUserScript } from '@/application/State/Code/Generation/IUserScript';
|
import { IUserScript } from '@/application/Context/State/Code/Generation/IUserScript';
|
||||||
|
|
||||||
// TODO: Test scriptingDefinition: IScriptingDefinition logic
|
// TODO: Test scriptingDefinition: IScriptingDefinition logic
|
||||||
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { CodeChangedEvent } from '@/application/State/Code/Event/CodeChangedEvent';
|
import { CodeChangedEvent } from '@/application/Context/State/Code/Event/CodeChangedEvent';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { ICodePosition } from '@/application/State/Code/Position/ICodePosition';
|
import { ICodePosition } from '@/application/Context/State/Code/Position/ICodePosition';
|
||||||
import { CodePosition } from '@/application/State/Code/Position/CodePosition';
|
import { CodePosition } from '@/application/Context/State/Code/Position/CodePosition';
|
||||||
import { SelectedScriptStub } from '../../../../stubs/SelectedScriptStub';
|
import { SelectedScriptStub } from '../../../../../stubs/SelectedScriptStub';
|
||||||
import { ScriptStub } from '../../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../../stubs/ScriptStub';
|
||||||
|
|
||||||
describe('CodeChangedEvent', () => {
|
describe('CodeChangedEvent', () => {
|
||||||
describe('ctor', () => {
|
describe('ctor', () => {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { CodeBuilder } from '@/application/State/Code/Generation/CodeBuilder';
|
import { CodeBuilder } from '@/application/Context/State/Code/Generation/CodeBuilder';
|
||||||
|
|
||||||
describe('CodeBuilder', () => {
|
describe('CodeBuilder', () => {
|
||||||
describe('appendLine', () => {
|
describe('appendLine', () => {
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { UserScriptGenerator } from '@/application/State/Code/Generation/UserScriptGenerator';
|
import { UserScriptGenerator } from '@/application/Context/State/Code/Generation/UserScriptGenerator';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { CodeBuilder } from '@/application/State/Code/Generation/CodeBuilder';
|
import { CodeBuilder } from '@/application/Context/State/Code/Generation/CodeBuilder';
|
||||||
import { ScriptStub } from '../../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../../stubs/ScriptStub';
|
||||||
import { ScriptingDefinitionStub } from '../../../../stubs/ScriptingDefinitionStub';
|
import { ScriptingDefinitionStub } from '../../../../../stubs/ScriptingDefinitionStub';
|
||||||
|
|
||||||
describe('UserScriptGenerator', () => {
|
describe('UserScriptGenerator', () => {
|
||||||
describe('scriptingDefinition', () => {
|
describe('scriptingDefinition', () => {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { CodePosition } from '@/application/State/Code/Position/CodePosition';
|
import { CodePosition } from '@/application/Context/State/Code/Position/CodePosition';
|
||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { CategoryStub } from './../../../stubs/CategoryStub';
|
import { CategoryStub } from '../../../../stubs/CategoryStub';
|
||||||
import { ScriptStub } from './../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../stubs/ScriptStub';
|
||||||
import { FilterResult } from '@/application/State/Filter/FilterResult';
|
import { FilterResult } from '@/application/Context/State/Filter/FilterResult';
|
||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import { CategoryStub } from './../../../stubs/CategoryStub';
|
import { CategoryStub } from '../../../../stubs/CategoryStub';
|
||||||
import { ScriptStub } from './../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../stubs/ScriptStub';
|
||||||
import { IFilterResult } from '@/application/State/Filter/IFilterResult';
|
import { IFilterResult } from '@/application/Context/State/Filter/IFilterResult';
|
||||||
import { ApplicationStub } from './../../../stubs/ApplicationStub';
|
import { ApplicationStub } from '../../../../stubs/ApplicationStub';
|
||||||
import { UserFilter } from '@/application/State/Filter/UserFilter';
|
import { UserFilter } from '@/application/Context/State/Filter/UserFilter';
|
||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { ScriptStub } from './../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../stubs/ScriptStub';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
import { SelectedScriptStub } from '../../../stubs/SelectedScriptStub';
|
import { SelectedScriptStub } from '../../../../stubs/SelectedScriptStub';
|
||||||
import { ScriptStub } from '../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../stubs/ScriptStub';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { CategoryStub } from '../../../stubs/CategoryStub';
|
import { CategoryStub } from '../../../../stubs/CategoryStub';
|
||||||
import { ApplicationStub } from '../../../stubs/ApplicationStub';
|
import { ApplicationStub } from '../../../../stubs/ApplicationStub';
|
||||||
import { UserSelection } from '@/application/State/Selection/UserSelection';
|
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
|
||||||
|
|
||||||
describe('UserSelection', () => {
|
describe('UserSelection', () => {
|
||||||
describe('ctor', () => {
|
describe('ctor', () => {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { parseCategory } from '@/application/Parser/CategoryParser';
|
import { parseCategory } from '@/application/Parser/CategoryParser';
|
||||||
import { YamlCategory, CategoryOrScript, YamlScript } from 'js-yaml-loader!./application.yaml';
|
import { YamlCategory, CategoryOrScript, YamlScript } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { parseScript } from '@/application/Parser/ScriptParser';
|
import { parseScript } from '@/application/Parser/ScriptParser';
|
||||||
import { parseDocUrls } from '@/application/Parser/DocumentationParser';
|
import { parseDocUrls } from '@/application/Parser/DocumentationParser';
|
||||||
import { ScriptCompilerStub } from '../../stubs/ScriptCompilerStub';
|
import { ScriptCompilerStub } from '../../stubs/ScriptCompilerStub';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import 'mocha';
|
|||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { ScriptCompiler } from '@/application/Parser/Compiler/ScriptCompiler';
|
import { ScriptCompiler } from '@/application/Parser/Compiler/ScriptCompiler';
|
||||||
import { YamlScriptStub } from '../../../stubs/YamlScriptStub';
|
import { YamlScriptStub } from '../../../stubs/YamlScriptStub';
|
||||||
import { YamlFunction, YamlScript, FunctionCall, ScriptFunctionCall, FunctionCallParameters } from 'js-yaml-loader!./application.yaml';
|
import { YamlFunction, YamlScript, FunctionCall, ScriptFunctionCall, FunctionCallParameters } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { IScriptCode } from '@/domain/IScriptCode';
|
import { IScriptCode } from '@/domain/IScriptCode';
|
||||||
import { IScriptCompiler } from '@/application/Parser/Compiler/IScriptCompiler';
|
import { IScriptCompiler } from '@/application/Parser/Compiler/IScriptCompiler';
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { YamlDocumentable } from 'js-yaml-loader!./application.yaml';
|
import { YamlDocumentable } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { parseDocUrls } from '@/application/Parser/DocumentationParser';
|
import { parseDocUrls } from '@/application/Parser/DocumentationParser';
|
||||||
|
|
||||||
describe('DocumentationParser', () => {
|
describe('DocumentationParser', () => {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'mocha';
|
import 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
import { YamlScriptingDefinition } from 'js-yaml-loader!./application.yaml';
|
import { YamlScriptingDefinition } from 'js-yaml-loader!@/application.yaml';
|
||||||
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
import { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
||||||
import { parseScriptingDefinition } from '@/application/Parser/ScriptingDefinitionParser';
|
import { parseScriptingDefinition } from '@/application/Parser/ScriptingDefinitionParser';
|
||||||
import { ProjectInformationStub } from './../../stubs/ProjectInformationStub';
|
import { ProjectInformationStub } from './../../stubs/ProjectInformationStub';
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import { CategoryReverter } from '@/presentation/Scripts/ScriptsTree/SelectableT
|
|||||||
import { getCategoryNodeId } from '@/presentation/Scripts/ScriptsTree/ScriptNodeParser';
|
import { getCategoryNodeId } from '@/presentation/Scripts/ScriptsTree/ScriptNodeParser';
|
||||||
import { CategoryStub } from '../../../../../../stubs/CategoryStub';
|
import { CategoryStub } from '../../../../../../stubs/CategoryStub';
|
||||||
import { ApplicationStub } from '../../../../../../stubs/ApplicationStub';
|
import { ApplicationStub } from '../../../../../../stubs/ApplicationStub';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { UserSelection } from '@/application/State/Selection/UserSelection';
|
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
|
||||||
|
|
||||||
describe('CategoryReverter', () => {
|
describe('CategoryReverter', () => {
|
||||||
describe('getState', () => {
|
describe('getState', () => {
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import { ScriptReverter } from '@/presentation/Scripts/ScriptsTree/SelectableTre
|
|||||||
import { SelectedScriptStub } from '../../../../../../stubs/SelectedScriptStub';
|
import { SelectedScriptStub } from '../../../../../../stubs/SelectedScriptStub';
|
||||||
import { getScriptNodeId } from '@/presentation/Scripts/ScriptsTree/ScriptNodeParser';
|
import { getScriptNodeId } from '@/presentation/Scripts/ScriptsTree/ScriptNodeParser';
|
||||||
import { ScriptStub } from '../../../../../../stubs/ScriptStub';
|
import { ScriptStub } from '../../../../../../stubs/ScriptStub';
|
||||||
import { UserSelection } from '@/application/State/Selection/UserSelection';
|
import { UserSelection } from '@/application/Context/State/Selection/UserSelection';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { ApplicationStub } from '../../../../../../stubs/ApplicationStub';
|
import { ApplicationStub } from '../../../../../../stubs/ApplicationStub';
|
||||||
import { CategoryStub } from '../../../../../../stubs/CategoryStub';
|
import { CategoryStub } from '../../../../../../stubs/CategoryStub';
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { IScriptCompiler } from '@/application/Parser/Compiler/IScriptCompiler';
|
import { IScriptCompiler } from '@/application/Parser/Compiler/IScriptCompiler';
|
||||||
import { IScriptCode } from '@/domain/IScriptCode';
|
import { IScriptCode } from '@/domain/IScriptCode';
|
||||||
import { YamlScript } from 'js-yaml-loader!./application.yaml';
|
import { YamlScript } from 'js-yaml-loader!@/application.yaml';
|
||||||
|
|
||||||
export class ScriptCompilerStub implements IScriptCompiler {
|
export class ScriptCompilerStub implements IScriptCompiler {
|
||||||
public compilables = new Map<YamlScript, IScriptCode>();
|
public compilables = new Map<YamlScript, IScriptCode>();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { BaseEntity } from '@/infrastructure/Entity/BaseEntity';
|
import { BaseEntity } from '@/infrastructure/Entity/BaseEntity';
|
||||||
import { IScript } from '@/domain/IScript';
|
import { IScript } from '@/domain/IScript';
|
||||||
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
|
|
||||||
export class ScriptStub extends BaseEntity<string> implements IScript {
|
export class ScriptStub extends BaseEntity<string> implements IScript {
|
||||||
public name = `name${this.id}`;
|
public name = `name${this.id}`;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { SelectedScript } from '@/application/State/Selection/SelectedScript';
|
import { SelectedScript } from '@/application/Context/State/Selection/SelectedScript';
|
||||||
import { ScriptStub } from './ScriptStub';
|
import { ScriptStub } from './ScriptStub';
|
||||||
|
|
||||||
export class SelectedScriptStub extends SelectedScript {
|
export class SelectedScriptStub extends SelectedScript {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
import { RecommendationLevel } from '@/domain/RecommendationLevel';
|
||||||
import { ScriptFunctionCall, YamlScript } from 'js-yaml-loader!./application.yaml';
|
import { ScriptFunctionCall, YamlScript } from 'js-yaml-loader!@/application.yaml';
|
||||||
|
|
||||||
export class YamlScriptStub implements YamlScript {
|
export class YamlScriptStub implements YamlScript {
|
||||||
public static createWithCode(): YamlScriptStub {
|
public static createWithCode(): YamlScriptStub {
|
||||||
|
|||||||
Reference in New Issue
Block a user