nadesiko3 3.7.20 → 3.7.22
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.
- package/batch/command.txt +483 -445
- package/batch/jsplugin2text.nako3 +1 -1
- package/batch/pickup_command.nako3 +12 -0
- package/core/command/snako.mts +5 -1
- package/core/deno/snako.ts +5 -1
- package/core/package-lock.json +382 -21
- package/core/package.json +4 -4
- package/core/src/README.md +98 -0
- package/core/src/nako3.mts +178 -614
- package/core/src/nako_basic_plugins.mts +39 -0
- package/core/src/nako_core_version.mts +2 -2
- package/core/src/nako_csv.mts +0 -1
- package/core/src/nako_event.mts +49 -0
- package/core/src/nako_gen.mts +291 -202
- package/core/src/nako_indent_inline.mts +2 -2
- package/core/src/nako_lex_rules.mts +1 -1
- package/core/src/nako_parser3.mts +106 -165
- package/core/src/nako_parser_async.mts +97 -0
- package/core/src/nako_parser_base.mts +4 -55
- package/core/src/nako_parser_message.mts +105 -0
- package/core/src/nako_parser_operator.mts +93 -0
- package/core/src/nako_plugin_manager.mts +260 -0
- package/core/src/nako_require.mts +292 -0
- package/core/src/nako_runner.mts +191 -0
- package/core/src/nako_tokenizer.mts +221 -0
- package/core/src/plugin_csv.mts +1 -1
- package/core/src/plugin_system.mts +34 -3259
- package/core/src/plugin_system_array.mts +699 -0
- package/core/src/plugin_system_datetime.mts +368 -0
- package/core/src/plugin_system_debug.mts +403 -0
- package/core/src/plugin_system_dict.mts +85 -0
- package/core/src/plugin_system_json.mts +73 -0
- package/core/src/plugin_system_math.mts +383 -0
- package/core/src/plugin_system_regexp.mts +120 -0
- package/core/src/plugin_system_stdio.mts +86 -0
- package/core/src/plugin_system_string.mts +666 -0
- package/core/src/plugin_system_timer.mts +152 -0
- package/core/src/plugin_system_types.mts +151 -0
- package/core/src/plugin_system_url.mts +193 -0
- package/core/src/plugin_toml.mts +3 -3
- package/core/test/fixtures/README.md +39 -0
- package/core/test/fixtures/make_parser_ast_golden.mjs +31 -0
- package/core/test/fixtures/parser_ast_golden.json +8027 -0
- package/core/test/fixtures/parser_corpus.mjs +120 -0
- package/core/test/indent_test.mjs +6 -0
- package/core/test/nako_basic_plugins_test.mjs +44 -0
- package/core/test/nako_event_test.mjs +85 -0
- package/core/test/nako_gen_perf_test.mjs +178 -0
- package/core/test/nako_parser_async_test.mjs +112 -0
- package/core/test/nako_parser_test.mjs +160 -0
- package/core/test/nako_plugin_manager_test.mjs +185 -0
- package/core/test/nako_require_test.mjs +153 -0
- package/core/test/nako_runner_test.mjs +114 -0
- package/core/test/nako_tokenizer_test.mjs +115 -0
- package/core/test/plugin_system_debug_test.mjs +141 -0
- package/core/test/plugin_system_split_test.mjs +179 -0
- package/core/test/plugin_system_test.mjs +6 -0
- package/core/tsconfig.json +0 -1
- package/package.json +24 -34
- package/release/_hash.txt +40 -40
- package/release/_script-tags.txt +16 -16
- package/release/command.json +1 -1
- package/release/command.json.js +1 -1
- package/release/command_cnako3.json +1 -1
- package/release/command_list.json +1 -1
- package/release/edit_main.js +6 -6
- package/release/edit_main.js.map +3 -3
- package/release/editor.js +6 -6
- package/release/plugin_datetime.js +1 -1
- package/release/plugin_datetime.js.map +3 -3
- package/release/plugin_keigo.js.map +3 -3
- package/release/plugin_markup.js +47 -47
- package/release/plugin_markup.js.map +3 -3
- package/release/plugin_weykturtle3d.js +1 -1
- package/release/plugin_weykturtle3d.js.map +3 -3
- package/release/version.js +2 -2
- package/release/version_main.js +2 -2
- package/release/version_main.js.map +2 -2
- package/release/wnako3.js +187 -214
- package/release/wnako3.js.map +4 -4
- package/release/wnako3webworker.js +172 -199
- package/release/wnako3webworker.js.map +4 -4
- package/src/cnako3mod.mjs +8 -4
- package/src/cnako3mod.mts +8 -4
- package/src/nako_version.mjs +2 -2
- package/src/nako_version.mts +2 -2
- package/src/plugin_browser_ajax.mjs +4 -4
- package/src/plugin_browser_ajax.mts +4 -4
- package/src/plugin_browser_audio.mjs +10 -10
- package/src/plugin_browser_audio.mts +10 -10
- package/src/plugin_browser_camera.mjs +4 -4
- package/src/plugin_browser_camera.mts +4 -4
- package/src/plugin_browser_canvas.mjs +2 -2
- package/src/plugin_browser_canvas.mts +2 -2
- package/src/plugin_browser_crypto.mjs +3 -3
- package/src/plugin_browser_crypto.mts +3 -3
- package/src/plugin_browser_dom_event.mjs +1 -1
- package/src/plugin_browser_dom_event.mts +1 -1
- package/src/plugin_browser_geolocation.mjs +1 -1
- package/src/plugin_browser_geolocation.mts +1 -1
- package/src/plugin_browser_hotkey.mjs +1 -1
- package/src/plugin_browser_hotkey.mts +1 -1
- package/src/plugin_browser_html.mjs +1 -1
- package/src/plugin_browser_html.mts +1 -1
- package/src/plugin_browser_location.mjs +1 -1
- package/src/plugin_browser_location.mts +1 -1
- package/src/plugin_browser_speech.mjs +1 -1
- package/src/plugin_browser_speech.mts +1 -1
- package/src/plugin_browser_storage.mjs +2 -2
- package/src/plugin_browser_storage.mts +2 -2
- package/src/plugin_httpserver.mjs +186 -15
- package/src/plugin_httpserver.mts +178 -12
- package/src/plugin_keigo.mjs +2 -2
- package/src/plugin_keigo.mts +2 -2
- package/src/plugin_node.mjs +48 -49
- package/src/plugin_node.mts +53 -54
- package/src/plugin_weykturtle3d.mjs +56 -56
- package/src/plugin_weykturtle3d.mts +56 -56
- package/src/wnako3.mjs +1 -1
- package/src/wnako3.mts +1 -1
- package/src/wnako3_editor.mjs +5 -5
- package/src/wnako3_editor.mts +5 -5
- package/src/wnako3mod.mjs +5 -2
- package/src/wnako3mod.mts +5 -2
- package/test/common/wnako3mod_test.mjs +48 -0
- package/test/node/package_json_test.mjs +17 -0
- package/test/node/plugin_httpserver_test.mjs +239 -0
- package/tools/nako3server/index.nako3 +4 -2
- package/core/src/nako3.mjs +0 -1021
- package/core/src/nako_ast.mjs +0 -4
- package/core/src/nako_colors.mjs +0 -77
- package/core/src/nako_core_version.mjs +0 -8
- package/core/src/nako_csv.mjs +0 -193
- package/core/src/nako_errors.mjs +0 -166
- package/core/src/nako_from_dncl.mjs +0 -285
- package/core/src/nako_from_dncl2.mjs +0 -347
- package/core/src/nako_gen.mjs +0 -2500
- package/core/src/nako_global.mjs +0 -138
- package/core/src/nako_indent.mjs +0 -442
- package/core/src/nako_indent_chars.mjs +0 -29
- package/core/src/nako_indent_inline.mjs +0 -361
- package/core/src/nako_josi_list.mjs +0 -47
- package/core/src/nako_lex_rules.mjs +0 -319
- package/core/src/nako_lexer.mjs +0 -794
- package/core/src/nako_logger.mjs +0 -221
- package/core/src/nako_parser3.mjs +0 -3250
- package/core/src/nako_parser_base.mjs +0 -403
- package/core/src/nako_parser_const.mjs +0 -37
- package/core/src/nako_prepare.mjs +0 -329
- package/core/src/nako_reserved_words.mjs +0 -42
- package/core/src/nako_source_mapping.mjs +0 -207
- package/core/src/nako_test.mjs +0 -37
- package/core/src/nako_token.mjs +0 -1
- package/core/src/nako_tools.mjs +0 -53
- package/core/src/nako_types.mjs +0 -14
- package/core/src/plugin_api.mjs +0 -4
- package/core/src/plugin_csv.mjs +0 -97
- package/core/src/plugin_math.mjs +0 -352
- package/core/src/plugin_promise.mjs +0 -102
- package/core/src/plugin_system.mjs +0 -3810
- package/core/src/plugin_test.mjs +0 -52
- package/core/src/plugin_toml.mjs +0 -39
|
@@ -288,9 +288,9 @@ class Turtle3D extends TypedTurtle3DEventTarget implements Turtle3DEventTarget {
|
|
|
288
288
|
this.disposal = true
|
|
289
289
|
this.flagLoaded = true
|
|
290
290
|
this.raiseModelChanged()
|
|
291
|
-
}, (
|
|
291
|
+
}, (_xhr: XMLHttpRequest) => {
|
|
292
292
|
// nothing
|
|
293
|
-
}, (
|
|
293
|
+
}, (_xhr: XMLHttpRequest) => {
|
|
294
294
|
this.discardModel()
|
|
295
295
|
this.f_visible = false
|
|
296
296
|
this.obj.visible = false
|
|
@@ -404,7 +404,7 @@ class Turtle3D extends TypedTurtle3DEventTarget implements Turtle3DEventTarget {
|
|
|
404
404
|
const euler = new this.three.Euler()
|
|
405
405
|
euler.fromArray(m.angle)
|
|
406
406
|
|
|
407
|
-
const
|
|
407
|
+
const _dir = new this.three.Quaternion()
|
|
408
408
|
this.obj.quaternion.setFromEuler(euler)
|
|
409
409
|
}
|
|
410
410
|
if (que instanceof CommandPromise) {
|
|
@@ -600,7 +600,7 @@ class WeykTurtle3DSystem {
|
|
|
600
600
|
const three = this.getThree()
|
|
601
601
|
const id = this.turtles.length
|
|
602
602
|
const tt = new Turtle3D(three, id)
|
|
603
|
-
tt.addEventListener('modelChanged', (
|
|
603
|
+
tt.addEventListener('modelChanged', (_e) => {
|
|
604
604
|
const redraw = !!this.sys.__getSysVar('T3D自動描画')
|
|
605
605
|
if (redraw) {
|
|
606
606
|
this.doDraw(true)
|
|
@@ -766,7 +766,7 @@ class WeykTurtle3DSystem {
|
|
|
766
766
|
|
|
767
767
|
const scene = this.getScene()
|
|
768
768
|
|
|
769
|
-
const
|
|
769
|
+
const _camera = this.getCamera()
|
|
770
770
|
|
|
771
771
|
if (scene && this._lines) {
|
|
772
772
|
scene.add(this._lines)
|
|
@@ -878,7 +878,7 @@ class WeykTurtle3DSystem {
|
|
|
878
878
|
}
|
|
879
879
|
|
|
880
880
|
animationStart():void {
|
|
881
|
-
const
|
|
881
|
+
const _wait = this.getWait()
|
|
882
882
|
const macrorun = !!this.sys.__getSysVar('T3D自動実行')
|
|
883
883
|
if (!macrorun) {
|
|
884
884
|
return
|
|
@@ -938,7 +938,7 @@ class WeykTurtle3DSystem {
|
|
|
938
938
|
return hasNext
|
|
939
939
|
}
|
|
940
940
|
|
|
941
|
-
animationFrame(callback: () => void,
|
|
941
|
+
animationFrame(callback: () => void, _element?: Element) {
|
|
942
942
|
window.setTimeout(callback, 1000 / 60)
|
|
943
943
|
}
|
|
944
944
|
|
|
@@ -1076,7 +1076,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1076
1076
|
asyncFn: true,
|
|
1077
1077
|
pure: true,
|
|
1078
1078
|
fn: async function(plugins: string[], sys: NakoSystem):Promise<void> {
|
|
1079
|
-
const [
|
|
1079
|
+
const [_turtle3d, three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1080
1080
|
const l = plugins.length
|
|
1081
1081
|
if (l === 0) {
|
|
1082
1082
|
return
|
|
@@ -1123,7 +1123,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1123
1123
|
josi: [['に'], ['を']],
|
|
1124
1124
|
pure: true,
|
|
1125
1125
|
fn: function(callback: CallbackType<void>, plugins: string[], sys: NakoSystem):void {
|
|
1126
|
-
const [
|
|
1126
|
+
const [_turtle3d, three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1127
1127
|
const l = plugins.length
|
|
1128
1128
|
if (l === 0) {
|
|
1129
1129
|
callback()
|
|
@@ -1132,7 +1132,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1132
1132
|
const baseUrl = sys.__getSysVar('T3DベースURL')
|
|
1133
1133
|
const callbacks = (function(callback, total) {
|
|
1134
1134
|
let count = 0
|
|
1135
|
-
return function(
|
|
1135
|
+
return function(_success: boolean) {
|
|
1136
1136
|
count += 1
|
|
1137
1137
|
if (count === total) {
|
|
1138
1138
|
callback()
|
|
@@ -1162,7 +1162,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1162
1162
|
josi: [],
|
|
1163
1163
|
pure: true,
|
|
1164
1164
|
fn: function(sys: NakoSystem): number {
|
|
1165
|
-
const [turtle3d,
|
|
1165
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1166
1166
|
turtle3d.initTurtle()
|
|
1167
1167
|
const modelUrl = sys.__getSysVar('T3DカメモデルURL')
|
|
1168
1168
|
const id = turtle3d.createTurtle(modelUrl)
|
|
@@ -1175,7 +1175,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1175
1175
|
josi: [['に', 'へ', 'の']],
|
|
1176
1176
|
pure: true,
|
|
1177
1177
|
fn: function(id: number, sys: NakoSystem):void {
|
|
1178
|
-
const [turtle3d,
|
|
1178
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1179
1179
|
turtle3d.target = id
|
|
1180
1180
|
},
|
|
1181
1181
|
return_none: true
|
|
@@ -1187,7 +1187,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1187
1187
|
josi: [['に', 'へ']],
|
|
1188
1188
|
pure: true,
|
|
1189
1189
|
fn: function(url: string, sys: NakoSystem):Promise<number> {
|
|
1190
|
-
const [turtle3d,
|
|
1190
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1191
1191
|
return turtle3d.queCurrentTurtle(new CommandModel(url))
|
|
1192
1192
|
},
|
|
1193
1193
|
return_none: false
|
|
@@ -1217,7 +1217,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1217
1217
|
josi: [],
|
|
1218
1218
|
pure: true,
|
|
1219
1219
|
fn: function(sys: NakoSystem): Promise<number> {
|
|
1220
|
-
const [turtle3d,
|
|
1220
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1221
1221
|
return turtle3d.queCurrentTurtle(new CommandHome('set'))
|
|
1222
1222
|
},
|
|
1223
1223
|
return_none: false
|
|
@@ -1227,7 +1227,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1227
1227
|
josi: [],
|
|
1228
1228
|
pure: true,
|
|
1229
1229
|
fn: function(sys: NakoSystem): Promise<number> {
|
|
1230
|
-
const [turtle3d,
|
|
1230
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1231
1231
|
return turtle3d.queCurrentTurtle(new CommandHome('jump'))
|
|
1232
1232
|
},
|
|
1233
1233
|
return_none: false
|
|
@@ -1247,7 +1247,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1247
1247
|
josi: [['だけ']],
|
|
1248
1248
|
pure: true,
|
|
1249
1249
|
fn: function(l: number, sys: NakoSystem): Promise<number> {
|
|
1250
|
-
const [turtle3d,
|
|
1250
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1251
1251
|
return turtle3d.queCurrentTurtle(new CommandMoveDirection('f', l))
|
|
1252
1252
|
},
|
|
1253
1253
|
return_none: false
|
|
@@ -1257,7 +1257,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1257
1257
|
josi: [['だけ']],
|
|
1258
1258
|
pure: true,
|
|
1259
1259
|
fn: function(l: number, sys: NakoSystem): Promise<number> {
|
|
1260
|
-
const [turtle3d,
|
|
1260
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1261
1261
|
return turtle3d.queCurrentTurtle(new CommandMoveDirection('b', l))
|
|
1262
1262
|
},
|
|
1263
1263
|
return_none: false
|
|
@@ -1267,7 +1267,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1267
1267
|
josi: [['だけ']],
|
|
1268
1268
|
pure: true,
|
|
1269
1269
|
fn: function(l: number, sys: NakoSystem): Promise<number> {
|
|
1270
|
-
const [turtle3d,
|
|
1270
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1271
1271
|
return turtle3d.queCurrentTurtle(new CommandMoveDirection('u', l))
|
|
1272
1272
|
},
|
|
1273
1273
|
return_none: false
|
|
@@ -1277,7 +1277,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1277
1277
|
josi: [['だけ']],
|
|
1278
1278
|
pure: true,
|
|
1279
1279
|
fn: function(l: number, sys: NakoSystem): Promise<number> {
|
|
1280
|
-
const [turtle3d,
|
|
1280
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1281
1281
|
return turtle3d.queCurrentTurtle(new CommandMoveDirection('d', l))
|
|
1282
1282
|
},
|
|
1283
1283
|
return_none: false
|
|
@@ -1287,7 +1287,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1287
1287
|
josi: [['だけ']],
|
|
1288
1288
|
pure: true,
|
|
1289
1289
|
fn: function(l: number, sys: NakoSystem): Promise<number> {
|
|
1290
|
-
const [turtle3d,
|
|
1290
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1291
1291
|
return turtle3d.queCurrentTurtle(new CommandMoveDirection('l', l))
|
|
1292
1292
|
},
|
|
1293
1293
|
return_none: false
|
|
@@ -1297,7 +1297,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1297
1297
|
josi: [['だけ']],
|
|
1298
1298
|
pure: true,
|
|
1299
1299
|
fn: function(l: number, sys: NakoSystem): Promise<number> {
|
|
1300
|
-
const [turtle3d,
|
|
1300
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1301
1301
|
return turtle3d.queCurrentTurtle(new CommandMoveDirection('r', l))
|
|
1302
1302
|
},
|
|
1303
1303
|
return_none: false
|
|
@@ -1307,7 +1307,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1307
1307
|
josi: [['へ', 'に'], ['だけ']],
|
|
1308
1308
|
pure: true,
|
|
1309
1309
|
fn: function(dir:string, l: number, sys: NakoSystem): Promise<number> {
|
|
1310
|
-
const [turtle3d,
|
|
1310
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1311
1311
|
let cmd:MoveDirection
|
|
1312
1312
|
if (dir === '前' || dir === 'FORWARD' || dir === 'まえ') {
|
|
1313
1313
|
cmd = 'f'
|
|
@@ -1333,7 +1333,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1333
1333
|
josi: [['に', 'へ', 'の']],
|
|
1334
1334
|
pure: true,
|
|
1335
1335
|
fn: function(angle: THREENS.EulerArray, sys: NakoSystem): Promise<number> {
|
|
1336
|
-
const [turtle3d,
|
|
1336
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1337
1337
|
return turtle3d.queCurrentTurtle(new CommandAngle(angle))
|
|
1338
1338
|
},
|
|
1339
1339
|
return_none: false
|
|
@@ -1343,7 +1343,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1343
1343
|
josi: [['だけ']],
|
|
1344
1344
|
pure: true,
|
|
1345
1345
|
fn: function(a: number, sys: NakoSystem): Promise<number> {
|
|
1346
|
-
const [turtle3d,
|
|
1346
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1347
1347
|
return turtle3d.queCurrentTurtle(new CommandRotate('r', a))
|
|
1348
1348
|
},
|
|
1349
1349
|
return_none: false
|
|
@@ -1353,7 +1353,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1353
1353
|
josi: [['だけ']],
|
|
1354
1354
|
pure: true,
|
|
1355
1355
|
fn: function(a: number, sys: NakoSystem): Promise<number> {
|
|
1356
|
-
const [turtle3d,
|
|
1356
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1357
1357
|
return turtle3d.queCurrentTurtle(new CommandRotate('l', a))
|
|
1358
1358
|
},
|
|
1359
1359
|
return_none: false
|
|
@@ -1363,7 +1363,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1363
1363
|
josi: [['だけ']],
|
|
1364
1364
|
pure: true,
|
|
1365
1365
|
fn: function(a: number, sys: NakoSystem): Promise<number> {
|
|
1366
|
-
const [turtle3d,
|
|
1366
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1367
1367
|
return turtle3d.queCurrentTurtle(new CommandRotate('u', a))
|
|
1368
1368
|
},
|
|
1369
1369
|
return_none: false
|
|
@@ -1373,7 +1373,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1373
1373
|
josi: [['だけ']],
|
|
1374
1374
|
pure: true,
|
|
1375
1375
|
fn: function(a: number, sys: NakoSystem): Promise<number> {
|
|
1376
|
-
const [turtle3d,
|
|
1376
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1377
1377
|
return turtle3d.queCurrentTurtle(new CommandRotate('d', a))
|
|
1378
1378
|
},
|
|
1379
1379
|
return_none: false
|
|
@@ -1383,7 +1383,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1383
1383
|
josi: [['へ', 'に'], ['だけ']],
|
|
1384
1384
|
pure: true,
|
|
1385
1385
|
fn: function(dir: string, a: number, sys: NakoSystem): Promise<number> {
|
|
1386
|
-
const [turtle3d,
|
|
1386
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1387
1387
|
let cmd:RotateDirection
|
|
1388
1388
|
if (dir === '上' || dir === 'UP' || dir === 'うえ') {
|
|
1389
1389
|
cmd = 'u'
|
|
@@ -1405,7 +1405,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1405
1405
|
josi: [['だけ']],
|
|
1406
1406
|
pure: true,
|
|
1407
1407
|
fn: function(a: number, sys: NakoSystem): Promise<number> {
|
|
1408
|
-
const [turtle3d,
|
|
1408
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1409
1409
|
return turtle3d.queCurrentTurtle(new CommandRoll('r', a))
|
|
1410
1410
|
},
|
|
1411
1411
|
return_none: false
|
|
@@ -1415,7 +1415,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1415
1415
|
josi: [['だけ']],
|
|
1416
1416
|
pure: true,
|
|
1417
1417
|
fn: function(a: number, sys: NakoSystem): Promise<number> {
|
|
1418
|
-
const [turtle3d,
|
|
1418
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1419
1419
|
return turtle3d.queCurrentTurtle(new CommandRoll('l', a))
|
|
1420
1420
|
},
|
|
1421
1421
|
return_none: false
|
|
@@ -1425,7 +1425,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1425
1425
|
josi: [['に', 'へ'], ['だけ']],
|
|
1426
1426
|
pure: true,
|
|
1427
1427
|
fn: function(dir: string, a: number, sys: NakoSystem): Promise<number> {
|
|
1428
|
-
const [turtle3d,
|
|
1428
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1429
1429
|
let cmd:RollDirection
|
|
1430
1430
|
if (dir === '右' || dir === 'RIGHT' || dir === 'みぎ') {
|
|
1431
1431
|
cmd = 'r'
|
|
@@ -1454,7 +1454,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1454
1454
|
josi: [['に', 'へ']],
|
|
1455
1455
|
pure: true,
|
|
1456
1456
|
fn: function(w: number, sys: NakoSystem): Promise<number> {
|
|
1457
|
-
const [turtle3d,
|
|
1457
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1458
1458
|
return turtle3d.queCurrentTurtle(new CommandPenWidth(w))
|
|
1459
1459
|
},
|
|
1460
1460
|
return_none: false
|
|
@@ -1464,7 +1464,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1464
1464
|
josi: [['に', 'へ']],
|
|
1465
1465
|
pure: true,
|
|
1466
1466
|
fn: function(w: boolean|number, sys: NakoSystem): Promise<number> {
|
|
1467
|
-
const [turtle3d,
|
|
1467
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1468
1468
|
return turtle3d.queCurrentTurtle(new CommandPenEnable(!!w))
|
|
1469
1469
|
},
|
|
1470
1470
|
return_none: false
|
|
@@ -1474,7 +1474,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1474
1474
|
josi: [],
|
|
1475
1475
|
pure: true,
|
|
1476
1476
|
fn: function(sys: NakoSystem):void {
|
|
1477
|
-
const [turtle3d,
|
|
1477
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1478
1478
|
turtle3d.clearAll()
|
|
1479
1479
|
},
|
|
1480
1480
|
return_none: true
|
|
@@ -1484,7 +1484,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1484
1484
|
josi: [],
|
|
1485
1485
|
pure: true,
|
|
1486
1486
|
fn: function(sys: NakoSystem): Promise<number> {
|
|
1487
|
-
const [turtle3d,
|
|
1487
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1488
1488
|
return turtle3d.queCurrentTurtle(new CommandVisible(false))
|
|
1489
1489
|
},
|
|
1490
1490
|
return_none: false
|
|
@@ -1494,7 +1494,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1494
1494
|
josi: [],
|
|
1495
1495
|
pure: true,
|
|
1496
1496
|
fn: function(sys: NakoSystem): Promise<number> {
|
|
1497
|
-
const [turtle3d,
|
|
1497
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1498
1498
|
return turtle3d.queCurrentTurtle(new CommandVisible(true))
|
|
1499
1499
|
},
|
|
1500
1500
|
return_none: false
|
|
@@ -1504,7 +1504,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1504
1504
|
josi: [['に', 'へ']],
|
|
1505
1505
|
pure: true,
|
|
1506
1506
|
fn: function(n: number, sys: NakoSystem):void {
|
|
1507
|
-
const [turtle3d,
|
|
1507
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1508
1508
|
if (n < 0 || n >= turtle3d.turtles.length) {
|
|
1509
1509
|
throw Error('指定された番号のカメはいません。')
|
|
1510
1510
|
}
|
|
@@ -1521,7 +1521,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1521
1521
|
josi: [['に', 'へ']],
|
|
1522
1522
|
pure: true,
|
|
1523
1523
|
fn: function(to: string|Element|null, sys: NakoSystem):THREENS.WebGLRenderer {
|
|
1524
|
-
const [turtle3d,
|
|
1524
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1525
1525
|
|
|
1526
1526
|
if (typeof to === 'string') { to = document.querySelector(to) || document.getElementById(to) }
|
|
1527
1527
|
if (!to) { throw new Error('T3D描画準備に指定した描画先に誤りがあります') }
|
|
@@ -1537,7 +1537,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1537
1537
|
josi: [],
|
|
1538
1538
|
pure: true,
|
|
1539
1539
|
fn: function(sys: NakoSystem):void {
|
|
1540
|
-
const [turtle3d,
|
|
1540
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1541
1541
|
turtle3d.doDraw(true)
|
|
1542
1542
|
},
|
|
1543
1543
|
return_none: true
|
|
@@ -1547,7 +1547,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1547
1547
|
josi: [],
|
|
1548
1548
|
pure: true,
|
|
1549
1549
|
fn: function(sys: NakoSystem):void {
|
|
1550
|
-
const [turtle3d,
|
|
1550
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1551
1551
|
turtle3d.doDraw(false)
|
|
1552
1552
|
},
|
|
1553
1553
|
return_none: true
|
|
@@ -1557,7 +1557,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1557
1557
|
josi: [],
|
|
1558
1558
|
pure: true,
|
|
1559
1559
|
fn: function(sys: NakoSystem):void {
|
|
1560
|
-
const [turtle3d,
|
|
1560
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1561
1561
|
turtle3d.animationTick()
|
|
1562
1562
|
},
|
|
1563
1563
|
return_none: true
|
|
@@ -1567,7 +1567,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1567
1567
|
josi: [['に', 'へ']],
|
|
1568
1568
|
pure: true,
|
|
1569
1569
|
fn: function(c: number, sys: NakoSystem):void {
|
|
1570
|
-
const [turtle3d,
|
|
1570
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1571
1571
|
const renderer = turtle3d.getRenderer()
|
|
1572
1572
|
renderer.setClearColor(c)
|
|
1573
1573
|
turtle3d.animationStart()
|
|
@@ -1579,7 +1579,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1579
1579
|
josi: [['に', 'へ']],
|
|
1580
1580
|
pure: true,
|
|
1581
1581
|
fn: function(a: number, sys: NakoSystem):void {
|
|
1582
|
-
const [turtle3d,
|
|
1582
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1583
1583
|
const renderer = turtle3d.getRenderer()
|
|
1584
1584
|
renderer.setClearAlpha(a)
|
|
1585
1585
|
turtle3d.animationStart()
|
|
@@ -1591,7 +1591,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1591
1591
|
josi: [],
|
|
1592
1592
|
pure: true,
|
|
1593
1593
|
fn: function(sys: NakoSystem): null|string {
|
|
1594
|
-
const [turtle3d,
|
|
1594
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1595
1595
|
if (!turtle3d._lines) { return null }
|
|
1596
1596
|
return JSON.stringify(turtle3d._lines.toJSON())
|
|
1597
1597
|
},
|
|
@@ -1602,7 +1602,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1602
1602
|
josi: [],
|
|
1603
1603
|
pure: true,
|
|
1604
1604
|
fn: function(sys: NakoSystem):void {
|
|
1605
|
-
const [turtle3d,
|
|
1605
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1606
1606
|
turtle3d.clearRenderer()
|
|
1607
1607
|
},
|
|
1608
1608
|
return_none: true
|
|
@@ -1612,7 +1612,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1612
1612
|
josi: [],
|
|
1613
1613
|
pure: true,
|
|
1614
1614
|
fn: function(sys: NakoSystem): THREENS.WebGLRenderer {
|
|
1615
|
-
const [turtle3d,
|
|
1615
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1616
1616
|
return turtle3d.getRenderer()
|
|
1617
1617
|
},
|
|
1618
1618
|
return_none: false
|
|
@@ -1622,7 +1622,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1622
1622
|
josi: [],
|
|
1623
1623
|
pure: true,
|
|
1624
1624
|
fn: function(sys: NakoSystem): THREENS.Scene {
|
|
1625
|
-
const [turtle3d,
|
|
1625
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1626
1626
|
return turtle3d.getScene()
|
|
1627
1627
|
},
|
|
1628
1628
|
return_none: false
|
|
@@ -1632,7 +1632,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1632
1632
|
josi: [],
|
|
1633
1633
|
pure: true,
|
|
1634
1634
|
fn: function(sys: NakoSystem): THREENS.Camera {
|
|
1635
|
-
const [turtle3d,
|
|
1635
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1636
1636
|
return turtle3d.getCamera()
|
|
1637
1637
|
},
|
|
1638
1638
|
return_none: false
|
|
@@ -1642,7 +1642,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1642
1642
|
josi: [],
|
|
1643
1643
|
pure: true,
|
|
1644
1644
|
fn: function(sys: NakoSystem): null|THREENS.Group {
|
|
1645
|
-
const [turtle3d,
|
|
1645
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1646
1646
|
return turtle3d._lines
|
|
1647
1647
|
},
|
|
1648
1648
|
return_none: false
|
|
@@ -1665,7 +1665,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1665
1665
|
josi: [['を']],
|
|
1666
1666
|
asyncFn: true,
|
|
1667
1667
|
pure: true,
|
|
1668
|
-
fn: function(p: Promise<any>,
|
|
1668
|
+
fn: function(p: Promise<any>, _sys: NakoSystem): Promise<any> {
|
|
1669
1669
|
return p
|
|
1670
1670
|
},
|
|
1671
1671
|
return_none: false
|
|
@@ -1689,7 +1689,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1689
1689
|
josi: [],
|
|
1690
1690
|
pure: true,
|
|
1691
1691
|
fn: function(sys: NakoSystem):void {
|
|
1692
|
-
const [turtle3d,
|
|
1692
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1693
1693
|
if (turtle3d._controls) {
|
|
1694
1694
|
turtle3d._controls.enabled = true
|
|
1695
1695
|
}
|
|
@@ -1701,7 +1701,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1701
1701
|
josi: [],
|
|
1702
1702
|
pure: true,
|
|
1703
1703
|
fn: function(sys: NakoSystem):void {
|
|
1704
|
-
const [turtle3d,
|
|
1704
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1705
1705
|
if (turtle3d._controls) {
|
|
1706
1706
|
turtle3d._controls.enabled = false
|
|
1707
1707
|
}
|
|
@@ -1713,7 +1713,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1713
1713
|
josi: [],
|
|
1714
1714
|
pure: true,
|
|
1715
1715
|
fn: function(sys: NakoSystem):void {
|
|
1716
|
-
const [turtle3d,
|
|
1716
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1717
1717
|
turtle3d.setCameraHelper(true)
|
|
1718
1718
|
},
|
|
1719
1719
|
return_none: true
|
|
@@ -1723,7 +1723,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1723
1723
|
josi: [],
|
|
1724
1724
|
pure: true,
|
|
1725
1725
|
fn: function(sys: NakoSystem):void {
|
|
1726
|
-
const [turtle3d,
|
|
1726
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1727
1727
|
turtle3d.setCameraHelper(false)
|
|
1728
1728
|
},
|
|
1729
1729
|
return_none: true
|
|
@@ -1733,7 +1733,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1733
1733
|
josi: [],
|
|
1734
1734
|
pure: true,
|
|
1735
1735
|
fn: function(sys: NakoSystem):void {
|
|
1736
|
-
const [turtle3d,
|
|
1736
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1737
1737
|
turtle3d.setAxisHelper(true)
|
|
1738
1738
|
},
|
|
1739
1739
|
return_none: true
|
|
@@ -1743,7 +1743,7 @@ const PluginWeykTurtle3D: NakoPluginObject = {
|
|
|
1743
1743
|
josi: [],
|
|
1744
1744
|
pure: true,
|
|
1745
1745
|
fn: function(sys: NakoSystem):void {
|
|
1746
|
-
const [turtle3d,
|
|
1746
|
+
const [turtle3d, _three] = WeykTurtle3DSystem.getEnv(sys)
|
|
1747
1747
|
turtle3d.setAxisHelper(false)
|
|
1748
1748
|
},
|
|
1749
1749
|
return_none: true
|
package/src/wnako3.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { WebNakoCompiler } from './wnako3mod.mjs';
|
|
|
3
3
|
// ブラウザから取り込まれる時 navigator.nako3 になでしこを登録
|
|
4
4
|
if ((typeof navigator) === 'object' && !navigator.exportWNako3) {
|
|
5
5
|
const wnako3 = navigator.nako3 = new WebNakoCompiler();
|
|
6
|
-
window.addEventListener('DOMContentLoaded', (
|
|
6
|
+
window.addEventListener('DOMContentLoaded', (_e) => {
|
|
7
7
|
const isAutoRun = wnako3.checkScriptTagParam();
|
|
8
8
|
if (isAutoRun) {
|
|
9
9
|
wnako3.runNakoScript();
|
package/src/wnako3.mts
CHANGED
|
@@ -4,7 +4,7 @@ import { WebNakoCompiler } from './wnako3mod.mjs'
|
|
|
4
4
|
// ブラウザから取り込まれる時 navigator.nako3 になでしこを登録
|
|
5
5
|
if ((typeof navigator) === 'object' && !(navigator as any).exportWNako3) {
|
|
6
6
|
const wnako3 = (navigator as any).nako3 = new WebNakoCompiler()
|
|
7
|
-
window.addEventListener('DOMContentLoaded', (
|
|
7
|
+
window.addEventListener('DOMContentLoaded', (_e) => {
|
|
8
8
|
const isAutoRun = wnako3.checkScriptTagParam()
|
|
9
9
|
|
|
10
10
|
if (isAutoRun) { wnako3.runNakoScript() }
|
package/src/wnako3_editor.mjs
CHANGED
|
@@ -603,17 +603,17 @@ export class BackgroundTokenizer {
|
|
|
603
603
|
}
|
|
604
604
|
// ace側から呼ばれるが無視するメソッド
|
|
605
605
|
// @ts-ignore
|
|
606
|
-
start(
|
|
606
|
+
start(_startRow) { }
|
|
607
607
|
// @ts-ignore
|
|
608
|
-
fireUpdateEvent(
|
|
608
|
+
fireUpdateEvent(_firstRow, _lastRow) { }
|
|
609
609
|
// @ts-ignore
|
|
610
|
-
setDocument(
|
|
610
|
+
setDocument(_doc) { }
|
|
611
611
|
scheduleStart() { }
|
|
612
612
|
// @ts-ignore
|
|
613
|
-
setTokenizer(
|
|
613
|
+
setTokenizer(_tokenizer) { }
|
|
614
614
|
stop() { }
|
|
615
615
|
// @ts-ignore
|
|
616
|
-
getState(
|
|
616
|
+
getState(_row) { return 'start'; }
|
|
617
617
|
}
|
|
618
618
|
/**
|
|
619
619
|
* シンタックスハイライト以外のエディタの挙動の定義。
|
package/src/wnako3_editor.mts
CHANGED
|
@@ -692,17 +692,17 @@ export class BackgroundTokenizer {
|
|
|
692
692
|
|
|
693
693
|
// ace側から呼ばれるが無視するメソッド
|
|
694
694
|
// @ts-ignore
|
|
695
|
-
start(
|
|
695
|
+
start(_startRow) { /* pass */ }
|
|
696
696
|
// @ts-ignore
|
|
697
|
-
fireUpdateEvent(
|
|
697
|
+
fireUpdateEvent(_firstRow, _lastRow) { /* pass */ }
|
|
698
698
|
// @ts-ignore
|
|
699
|
-
setDocument(
|
|
699
|
+
setDocument(_doc) { /* pass */ }
|
|
700
700
|
scheduleStart() { /* pass */ }
|
|
701
701
|
// @ts-ignore
|
|
702
|
-
setTokenizer(
|
|
702
|
+
setTokenizer(_tokenizer) { /* pass */ }
|
|
703
703
|
stop() { /* pass */ }
|
|
704
704
|
// @ts-ignore
|
|
705
|
-
getState(
|
|
705
|
+
getState(_row) { return 'start' }
|
|
706
706
|
}
|
|
707
707
|
|
|
708
708
|
/**
|
package/src/wnako3mod.mjs
CHANGED
|
@@ -149,7 +149,7 @@ export class WebNakoCompiler extends NakoCompiler {
|
|
|
149
149
|
if (this.localFiles && this.localFiles[filePath]) { // ローカルファイルを使う場合
|
|
150
150
|
return {
|
|
151
151
|
task: (() => {
|
|
152
|
-
return (new Promise((resolve,
|
|
152
|
+
return (new Promise((resolve, _reject) => {
|
|
153
153
|
const s = this.localFiles[filePath];
|
|
154
154
|
resolve(s);
|
|
155
155
|
}));
|
|
@@ -179,7 +179,7 @@ export class WebNakoCompiler extends NakoCompiler {
|
|
|
179
179
|
try {
|
|
180
180
|
pathname = new URL(name).pathname;
|
|
181
181
|
}
|
|
182
|
-
catch
|
|
182
|
+
catch {
|
|
183
183
|
// 単純にパスに変換できなければ、location.hrefを参考にパスを組み立てる
|
|
184
184
|
try {
|
|
185
185
|
let baseDir = dirname(fromFile);
|
|
@@ -236,6 +236,9 @@ function dirname(s) {
|
|
|
236
236
|
}
|
|
237
237
|
function resolveURL(base, s) {
|
|
238
238
|
const baseA = base.split('/');
|
|
239
|
+
if (baseA.length > 0 && baseA[baseA.length - 1] === '') {
|
|
240
|
+
baseA.pop();
|
|
241
|
+
}
|
|
239
242
|
const sA = s.split('/');
|
|
240
243
|
for (const p of sA) {
|
|
241
244
|
if (p === '') {
|
package/src/wnako3mod.mts
CHANGED
|
@@ -166,7 +166,7 @@ export class WebNakoCompiler extends NakoCompiler {
|
|
|
166
166
|
if (this.localFiles && this.localFiles[filePath]) { // ローカルファイルを使う場合
|
|
167
167
|
return {
|
|
168
168
|
task: (() => {
|
|
169
|
-
return (new Promise((resolve,
|
|
169
|
+
return (new Promise((resolve, _reject) => {
|
|
170
170
|
const s: string = this.localFiles[filePath]
|
|
171
171
|
resolve(s)
|
|
172
172
|
}))
|
|
@@ -194,7 +194,7 @@ export class WebNakoCompiler extends NakoCompiler {
|
|
|
194
194
|
} else {
|
|
195
195
|
try {
|
|
196
196
|
pathname = new URL(name).pathname
|
|
197
|
-
} catch
|
|
197
|
+
} catch {
|
|
198
198
|
// 単純にパスに変換できなければ、location.hrefを参考にパスを組み立てる
|
|
199
199
|
try {
|
|
200
200
|
let baseDir = dirname(fromFile)
|
|
@@ -240,6 +240,9 @@ function dirname(s: string) {
|
|
|
240
240
|
|
|
241
241
|
function resolveURL(base: string, s: string) {
|
|
242
242
|
const baseA = base.split('/')
|
|
243
|
+
if (baseA.length > 0 && baseA[baseA.length - 1] === '') {
|
|
244
|
+
baseA.pop()
|
|
245
|
+
}
|
|
243
246
|
const sA = s.split('/')
|
|
244
247
|
for (const p of sA) {
|
|
245
248
|
if (p === '') { continue }
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import assert from 'assert'
|
|
2
|
+
import { WebNakoCompiler } from '../../src/wnako3mod.mjs'
|
|
3
|
+
|
|
4
|
+
describe('wnako3mod_test', () => {
|
|
5
|
+
let originalWindow
|
|
6
|
+
|
|
7
|
+
before(() => {
|
|
8
|
+
// window のモック
|
|
9
|
+
originalWindow = globalThis.window
|
|
10
|
+
globalThis.window = {
|
|
11
|
+
location: {
|
|
12
|
+
href: 'http://localhost:8888/index.html'
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
after(() => {
|
|
18
|
+
globalThis.window = originalWindow
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('resolvePath で baseDir が / のときの // スタートの不具合が修正されていること', () => {
|
|
22
|
+
const compiler = new WebNakoCompiler()
|
|
23
|
+
const token = { file: 'main', line: 1 }
|
|
24
|
+
|
|
25
|
+
// http://localhost:8888/index.html から hoge.nako3 を取り込む想定
|
|
26
|
+
const result = compiler.resolvePath('hoge.nako3', token, '')
|
|
27
|
+
// 結果が /hoge.nako3 になるべき(//hoge.nako3 ではなく)
|
|
28
|
+
assert.strictEqual(result.filePath, '/hoge.nako3')
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
it('resolvePath で baseDir が /dir/ のとき', () => {
|
|
32
|
+
const compiler = new WebNakoCompiler()
|
|
33
|
+
const token = { file: 'main', line: 1 }
|
|
34
|
+
|
|
35
|
+
globalThis.window.location.href = 'http://localhost:8888/dir/index.html'
|
|
36
|
+
const result = compiler.resolvePath('hoge.nako3', token, '')
|
|
37
|
+
assert.strictEqual(result.filePath, '/dir/hoge.nako3')
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
it('resolvePath で baseDir が /dir/subdir/ のとき', () => {
|
|
41
|
+
const compiler = new WebNakoCompiler()
|
|
42
|
+
const token = { file: 'main', line: 1 }
|
|
43
|
+
|
|
44
|
+
globalThis.window.location.href = 'http://localhost:8888/dir/subdir/index.html'
|
|
45
|
+
const result = compiler.resolvePath('hoge.nako3', token, '')
|
|
46
|
+
assert.strictEqual(result.filePath, '/dir/subdir/hoge.nako3')
|
|
47
|
+
})
|
|
48
|
+
})
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import fs from 'node:fs'
|
|
2
|
+
import assert from 'node:assert'
|
|
3
|
+
import { test } from 'node:test'
|
|
4
|
+
|
|
5
|
+
test('package.json に node-fetch の依存がない', () => {
|
|
6
|
+
const pkgUrl = new URL('../../package.json', import.meta.url)
|
|
7
|
+
const pkg = JSON.parse(fs.readFileSync(pkgUrl, 'utf-8'))
|
|
8
|
+
const dependencySections = [
|
|
9
|
+
'dependencies',
|
|
10
|
+
'devDependencies',
|
|
11
|
+
'optionalDependencies',
|
|
12
|
+
'peerDependencies'
|
|
13
|
+
]
|
|
14
|
+
for (const section of dependencySections) {
|
|
15
|
+
assert.equal(pkg[section]?.['node-fetch'], undefined, `${section} に node-fetch が含まれています`)
|
|
16
|
+
}
|
|
17
|
+
})
|