webgal-parser 4.3.11 → 4.3.13-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/package.json +9 -5
  2. package/rollup.config.js +45 -29
  3. package/{config → src/config}/scriptConfig.ts +1 -0
  4. package/{sceneParser.ts → src/sceneParser.ts} +5 -5
  5. package/{scriptParser → src/scriptParser}/scriptParser.ts +1 -1
  6. package/test/parser.test.ts +29 -0
  7. package/test/{test.ts → test-resources/start.txt} +0 -12
  8. package/build/index.global.js +0 -482
  9. package/build/index.global.js.map +0 -1
  10. package/build/index.js +0 -460
  11. package/build/index.js.map +0 -1
  12. package/build/types/index.d.ts +0 -10
  13. package/build/types/interface/assets.d.ts +0 -12
  14. package/build/types/interface/runtimeInterface.d.ts +0 -9
  15. package/build/types/interface/sceneInterface.d.ts +0 -94
  16. package/build/types/sceneParser.d.ts +0 -14
  17. package/build/types/scriptParser/argsParser.d.ts +0 -9
  18. package/build/types/scriptParser/assetsScanner.d.ts +0 -9
  19. package/build/types/scriptParser/commandParser.d.ts +0 -9
  20. package/build/types/scriptParser/contentParser.d.ts +0 -9
  21. package/build/types/scriptParser/scriptParser.d.ts +0 -9
  22. package/build/types/scriptParser/subSceneScanner.d.ts +0 -7
  23. package/config/scriptConfig.js +0 -46
  24. package/index.d.ts +0 -10
  25. package/index.js +0 -483
  26. package/index.js.map +0 -1
  27. package/interface/assets.d.ts +0 -12
  28. package/interface/assets.js +0 -16
  29. package/interface/runtimeInterface.d.ts +0 -9
  30. package/interface/runtimeInterface.js +0 -2
  31. package/interface/sceneInterface.d.ts +0 -91
  32. package/interface/sceneInterface.js +0 -32
  33. package/sceneParser.d.ts +0 -14
  34. package/sceneParser.js +0 -53
  35. package/scriptParser/argsParser.d.ts +0 -9
  36. package/scriptParser/argsParser.js +0 -70
  37. package/scriptParser/assetsScanner.d.ts +0 -9
  38. package/scriptParser/assetsScanner.js +0 -75
  39. package/scriptParser/commandParser.d.ts +0 -9
  40. package/scriptParser/commandParser.js +0 -60
  41. package/scriptParser/contentParser.d.ts +0 -9
  42. package/scriptParser/contentParser.js +0 -68
  43. package/scriptParser/scriptParser.d.ts +0 -9
  44. package/scriptParser/scriptParser.js +0 -81
  45. package/scriptParser/subSceneScanner.d.ts +0 -7
  46. package/scriptParser/subSceneScanner.js +0 -26
  47. package/test/test.js +0 -10
  48. /package/{index.ts → src/index.ts} +0 -0
  49. /package/{interface → src/interface}/assets.ts +0 -0
  50. /package/{interface → src/interface}/runtimeInterface.ts +0 -0
  51. /package/{interface → src/interface}/sceneInterface.ts +0 -0
  52. /package/{scriptParser → src/scriptParser}/argsParser.ts +0 -0
  53. /package/{scriptParser → src/scriptParser}/assetsScanner.ts +0 -0
  54. /package/{scriptParser → src/scriptParser}/commandParser.ts +0 -0
  55. /package/{scriptParser → src/scriptParser}/contentParser.ts +0 -0
  56. /package/{scriptParser → src/scriptParser}/subSceneScanner.ts +0 -0
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "webgal-parser",
3
- "version": "4.3.11",
3
+ "version": "4.3.13-1",
4
4
  "description": "WebGAL script parser",
5
5
  "scripts": {
6
- "test": "node test/test.js",
6
+ "test": "vitest",
7
+ "coverage": "vitest run --coverage",
7
8
  "build": "rimraf -rf ./build && rollup --config"
8
9
  },
9
- "module": "./build/index.js",
10
- "main": "index.js",
10
+ "module": "./build/es/index.js",
11
+ "main": "./build/cjs/index.js",
11
12
  "author": "Mahiru <Mahiru_@outlook.com>",
12
13
  "license": "MPL-2.0",
13
14
  "dependencies": {
@@ -20,6 +21,8 @@
20
21
  "@rollup/plugin-node-resolve": "^15.0.1",
21
22
  "@rollup/plugin-typescript": "^9.0.2",
22
23
  "@types/lodash": "^4.14.189",
24
+ "@types/node": "^18.14.0",
25
+ "@vitest/coverage-c8": "^0.28.5",
23
26
  "rollup": "^3.3.0",
24
27
  "rollup-plugin-babel": "^4.4.0",
25
28
  "rollup-plugin-dts": "^5.0.0",
@@ -27,7 +30,8 @@
27
30
  "rollup-plugin-typescript2": "^0.34.1",
28
31
  "ts-node": "^10.9.1",
29
32
  "tslib": "^2.4.1",
30
- "typescript": "^4.9.3"
33
+ "typescript": "^4.9.3",
34
+ "vitest": "^0.28.5"
31
35
  },
32
36
  "type": "module"
33
37
  }
package/rollup.config.js CHANGED
@@ -1,32 +1,48 @@
1
- import typescript from 'rollup-plugin-typescript2';
1
+ import typescript from "rollup-plugin-typescript2";
2
+ import resolve from "@rollup/plugin-node-resolve";
3
+ import commonjs from "@rollup/plugin-commonjs";
2
4
 
3
5
  const mode = process.env.MODE;
4
- const isProd = mode === 'prod';
5
- import pkg from './package.json' assert { type: "json" };
6
+ const isProd = mode === "prod";
6
7
 
7
- export default {
8
- input: `index.ts`,
9
- output: [
10
- {
11
- file: pkg.main,
12
- exports: 'named',
13
- format: 'cjs',
14
- sourcemap: !isProd
15
- },
16
- {
17
- file: pkg.module,
18
- format: 'es',
19
- sourcemap: !isProd
20
- },
21
- {
22
- file: 'build/index.global.js',
23
- name: 'webgalparser',
24
- format: 'iife',
25
- sourcemap: !isProd
26
- },
27
- ],
28
- plugins: [typescript({
29
- useTsconfigDeclarationDir: true,
30
- tsconfigOverride: { compilerOptions: { sourceMap: !isProd } }
31
- })],
32
- };
8
+ export default [
9
+ {
10
+ input: `./src/index.ts`,
11
+ output:
12
+ {
13
+ file: "./build/es/index.js",
14
+ format: "es",
15
+ sourcemap: !isProd
16
+ },
17
+ plugins: [
18
+ resolve(), commonjs(), typescript({
19
+ useTsconfigDeclarationDir: true,
20
+ tsconfigOverride: {
21
+ compilerOptions: {
22
+ sourceMap: !isProd,
23
+ declarationDir: "build/es"
24
+ }, include: ["src"]
25
+ }
26
+ })]
27
+ }, {
28
+ input: `./src/index.ts`,
29
+ output: [
30
+ {
31
+ file: "./build/cjs/index.js",
32
+ exports: "named",
33
+ format: "cjs",
34
+ sourcemap: !isProd
35
+ },
36
+ ],
37
+ plugins: [
38
+ resolve(), commonjs(), typescript({
39
+ useTsconfigDeclarationDir: true,
40
+ tsconfigOverride: {
41
+ compilerOptions: {
42
+ sourceMap: !isProd,
43
+ declarationDir: "build/cjs"
44
+ }, include: ["src"]
45
+ }
46
+ })],
47
+ }
48
+ ];
@@ -29,6 +29,7 @@ export const SCRIPT_CONFIG = [
29
29
  { scriptString: 'callScene', scriptType: commandType.callScene },
30
30
  { scriptString: 'setTextbox', scriptType: commandType.setTextbox},
31
31
  { scriptString: 'setAnimation', scriptType: commandType.setAnimation },
32
+ { scriptString: 'playEffect', scriptType: commandType.playEffect },
32
33
  ];
33
34
  export const ADD_NEXT_ARG_LIST = [
34
35
  commandType.bgm,
@@ -1,6 +1,6 @@
1
1
  import { IAsset, IScene, ISentence } from "./interface/sceneInterface";
2
2
  import { scriptParser } from "./scriptParser/scriptParser";
3
- import * as __ from "lodash";
3
+ import uniqWith from "lodash/uniqWith";
4
4
  import { fileType } from "./interface/assets";
5
5
 
6
6
  /**
@@ -16,13 +16,13 @@ import { fileType } from "./interface/assets";
16
16
  */
17
17
  export const sceneParser = (rawScene: string, sceneName: string, sceneUrl: string
18
18
  , assetsPrefetcher: ((assetList: Array<IAsset>) => void), assetSetter: (fileName: string, assetType: fileType) => string
19
- , ADD_NEXT_ARG_LIST:any, SCRIPT_CONFIG:any): IScene => {
19
+ , ADD_NEXT_ARG_LIST: any, SCRIPT_CONFIG: any): IScene => {
20
20
  const rawSentenceList = rawScene.split("\n"); // 原始句子列表
21
21
 
22
22
  // 去分号留到后面去做了,现在注释要单独处理
23
23
  const rawSentenceListWithoutEmpty = rawSentenceList;
24
- // .map((sentence) => sentence.split(";")[0])
25
- // .filter((sentence) => sentence.trim() !== "");
24
+ // .map((sentence) => sentence.split(";")[0])
25
+ // .filter((sentence) => sentence.trim() !== "");
26
26
  let assetsList: Array<IAsset> = []; // 场景资源列表
27
27
  let subSceneList: Array<string> = []; // 子场景列表
28
28
  const sentenceList: Array<ISentence> = rawSentenceListWithoutEmpty.map((sentence) => {
@@ -34,7 +34,7 @@ export const sceneParser = (rawScene: string, sceneName: string, sceneUrl: strin
34
34
  });
35
35
 
36
36
  // 开始资源的预加载
37
- assetsList = __.uniqWith(assetsList); // 去重
37
+ assetsList = uniqWith(assetsList); // 去重
38
38
  assetsPrefetcher(assetsList);
39
39
 
40
40
  return {
@@ -31,7 +31,7 @@ export const scriptParser = (sentenceRaw: string, assetSetter: any, ADD_NEXT_ARG
31
31
  command: commandType.comment, // 语句类型
32
32
  commandRaw: "comment", // 命令原始内容,方便调试
33
33
  content: sentenceRaw.split(";")[1] ?? "", // 语句内容
34
- args: [], // 参数列表
34
+ args: [{ key: "next", value: true }], // 参数列表
35
35
  sentenceAssets: [], // 语句携带的资源列表
36
36
  subScene: [] // 语句携带的子场景
37
37
  };
@@ -0,0 +1,29 @@
1
+ import SceneParser from "../src/index";
2
+ import { ADD_NEXT_ARG_LIST, SCRIPT_CONFIG } from "../src/config/scriptConfig";
3
+ import { expect, test } from "vitest";
4
+ import { commandType, ISentence } from "../src/interface/sceneInterface";
5
+ import * as fsp from 'fs/promises'
6
+
7
+ test("label", async () => {
8
+
9
+ const sceneRaw = await fsp.readFile('test/test-resources/start.txt');
10
+ const sceneText = sceneRaw.toString();
11
+
12
+ const parser = new SceneParser((assetList) => {
13
+ }, (fileName, assetType) => {
14
+ return fileName;
15
+ }, ADD_NEXT_ARG_LIST, SCRIPT_CONFIG);
16
+
17
+ const result = parser.parse(sceneText, "start", "/start.txt");
18
+ const expectSentenceItem: ISentence = {
19
+ command: commandType.label,
20
+ commandRaw: "label",
21
+ content: "end",
22
+ args: [
23
+ { key: "next", value: true }
24
+ ],
25
+ sentenceAssets: [],
26
+ subScene: []
27
+ };
28
+ expect(result.sentenceList).toContainEqual(expectSentenceItem);
29
+ });
@@ -1,12 +1,3 @@
1
- import { SceneParser } from "../index";
2
- import { ADD_NEXT_ARG_LIST, SCRIPT_CONFIG } from "../config/scriptConfig";
3
-
4
- const parser = new SceneParser((assetList) => {
5
- }, (fileName, assetType) => {
6
- return fileName;
7
- }, ADD_NEXT_ARG_LIST, SCRIPT_CONFIG);
8
-
9
- const result = parser.parse(`
10
1
  ; 初始场景,以及特效演示
11
2
  changeBg:c4.jpg -next;
12
3
  unlockCg:c4.jpg -name=街前; 解锁部分CG
@@ -112,6 +103,3 @@ jumpLabel:end;
112
103
  label:end;
113
104
  changeFigure:none -next;
114
105
  WebGAL:基础演出的展示已经结束。;
115
- `, "test", "/test.txt");
116
-
117
- console.log(result);