feat: validate ios RN particle metal path
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
tei
2026-09-18 22:21:00 +09:00
parent bdd7f40f90
commit d8bb9f547b
21 changed files with 553 additions and 25 deletions

View File

@@ -0,0 +1,2 @@
# Expo/RN prebuild output is generated locally and must not enter this source host.
/ios/

View File

@@ -6,6 +6,7 @@
"orientation": "landscape",
"newArchEnabled": true,
"plugins": ["./plugins/withParticleNativeAndroid"],
"android": { "package": "org.maplibre.particle.rntesthost", "minSdkVersion": 24 }
"android": { "package": "org.maplibre.particle.rntesthost", "minSdkVersion": 24 },
"ios": { "bundleIdentifier": "org.maplibre.particle.rntesthost", "supportsTablet": true }
}
}

View File

@@ -5,10 +5,23 @@ const { getDefaultConfig } = require("expo/metro-config");
const config = getDefaultConfig(__dirname);
config.resolver.assetExts = [...new Set([...config.resolver.assetExts, "f32", "u8", "qbin"])];
const packageRoot = path.resolve(__dirname, "../../../packages/maplibre-particle-rn");
const fixtureCandidates = [
path.resolve(__dirname, "..", "particle-v3-fields"),
path.resolve(__dirname, "..", "..", "particle-v3-fields"),
];
config.watchFolders = fixtureCandidates.filter((candidate) => fs.existsSync(candidate));
config.watchFolders = [
...new Set([
...(config.watchFolders ?? []),
...fixtureCandidates.filter((candidate) => fs.existsSync(candidate)),
packageRoot,
]),
];
config.resolver.nodeModulesPaths = [
...new Set([
path.resolve(__dirname, "node_modules"),
...(config.resolver.nodeModulesPaths ?? []),
]),
];
module.exports = config;

View File

@@ -14,20 +14,20 @@ function two(id: string, title: string, fieldValueSource: V3Dataset["fieldValueS
}
export const fieldDatasets: readonly V3Dataset[] = [
two("wind-real", "Wind(本地真实 canonical)", "VECTOR_MAGNITUDE", true, 1,
frame("T0", require("../../particle-v3-fields/wind-real/2026080700/metadata.json") as Metadata, require("../../particle-v3-fields/wind-real/2026080700/validity.u8"), undefined, require("../../particle-v3-fields/wind-real/2026080700/vector.f32")),
frame("T1", require("../../particle-v3-fields/wind-real/2026080706/metadata.json") as Metadata, require("../../particle-v3-fields/wind-real/2026080706/validity.u8"), undefined, require("../../particle-v3-fields/wind-real/2026080706/vector.f32"))),
frame("T0", require("../../../particle-v3-fields/wind-real/2026080700/metadata.json") as Metadata, require("../../../particle-v3-fields/wind-real/2026080700/validity.u8"), undefined, require("../../../particle-v3-fields/wind-real/2026080700/vector.f32")),
frame("T1", require("../../../particle-v3-fields/wind-real/2026080706/metadata.json") as Metadata, require("../../../particle-v3-fields/wind-real/2026080706/validity.u8"), undefined, require("../../../particle-v3-fields/wind-real/2026080706/vector.f32"))),
two("rain-decoder-fixture", "Rain(decoder fallback)", "SCALAR", false, 1,
frame("T0", require("../../particle-v3-fields/rain-decoder-fixture/2026090912/metadata.json") as Metadata, require("../../particle-v3-fields/rain-decoder-fixture/2026090912/validity.u8"), require("../../particle-v3-fields/rain-decoder-fixture/2026090912/scalar.f32")),
frame("T1", require("../../particle-v3-fields/rain-decoder-fixture/2026090918/metadata.json") as Metadata, require("../../particle-v3-fields/rain-decoder-fixture/2026090918/validity.u8"), require("../../particle-v3-fields/rain-decoder-fixture/2026090918/scalar.f32"))),
frame("T0", require("../../../particle-v3-fields/rain-decoder-fixture/2026090912/metadata.json") as Metadata, require("../../../particle-v3-fields/rain-decoder-fixture/2026090912/validity.u8"), require("../../../particle-v3-fields/rain-decoder-fixture/2026090912/scalar.f32")),
frame("T1", require("../../../particle-v3-fields/rain-decoder-fixture/2026090918/metadata.json") as Metadata, require("../../../particle-v3-fields/rain-decoder-fixture/2026090918/validity.u8"), require("../../../particle-v3-fields/rain-decoder-fixture/2026090918/scalar.f32"))),
two("wave-real", "Wave(本地真实 WAVEBIN1)", "SCALAR", true, 1.75,
frame("T0", require("../../particle-v3-fields/wave-real/2026090918/metadata.json") as Metadata, require("../../particle-v3-fields/wave-real/2026090918/validity.u8"), require("../../particle-v3-fields/wave-real/2026090918/scalar.f32"), require("../../particle-v3-fields/wave-real/2026090918/vector.f32")),
frame("T1", require("../../particle-v3-fields/wave-real/2026090919/metadata.json") as Metadata, require("../../particle-v3-fields/wave-real/2026090919/validity.u8"), require("../../particle-v3-fields/wave-real/2026090919/scalar.f32"), require("../../particle-v3-fields/wave-real/2026090919/vector.f32"))),
frame("T0", require("../../../particle-v3-fields/wave-real/2026090918/metadata.json") as Metadata, require("../../../particle-v3-fields/wave-real/2026090918/validity.u8"), require("../../../particle-v3-fields/wave-real/2026090918/scalar.f32"), require("../../../particle-v3-fields/wave-real/2026090918/vector.f32")),
frame("T1", require("../../../particle-v3-fields/wave-real/2026090919/metadata.json") as Metadata, require("../../../particle-v3-fields/wave-real/2026090919/validity.u8"), require("../../../particle-v3-fields/wave-real/2026090919/scalar.f32"), require("../../../particle-v3-fields/wave-real/2026090919/vector.f32"))),
two("tide-real", "Tide/Current(本地真实 BIN)", "VECTOR_MAGNITUDE", true, 1,
frame("T0", require("../../particle-v3-fields/tide-real/2026090901/metadata.json") as Metadata, require("../../particle-v3-fields/tide-real/2026090901/validity.u8"), undefined, require("../../particle-v3-fields/tide-real/2026090901/vector.f32")),
frame("T1", require("../../particle-v3-fields/tide-real/2026090902/metadata.json") as Metadata, require("../../particle-v3-fields/tide-real/2026090902/validity.u8"), undefined, require("../../particle-v3-fields/tide-real/2026090902/vector.f32"))),
frame("T0", require("../../../particle-v3-fields/tide-real/2026090901/metadata.json") as Metadata, require("../../../particle-v3-fields/tide-real/2026090901/validity.u8"), undefined, require("../../../particle-v3-fields/tide-real/2026090901/vector.f32")),
frame("T1", require("../../../particle-v3-fields/tide-real/2026090902/metadata.json") as Metadata, require("../../../particle-v3-fields/tide-real/2026090902/validity.u8"), undefined, require("../../../particle-v3-fields/tide-real/2026090902/vector.f32"))),
two("wave-synthetic-independence", "Wave synthetic independence", "SCALAR", true, 2.5,
frame("T0", require("../../particle-v3-fields/wave-synthetic-independence/2026010100/metadata.json") as Metadata, require("../../particle-v3-fields/wave-synthetic-independence/2026010100/validity.u8"), require("../../particle-v3-fields/wave-synthetic-independence/2026010100/scalar.f32"), require("../../particle-v3-fields/wave-synthetic-independence/2026010100/vector.f32")),
frame("T1", require("../../particle-v3-fields/wave-synthetic-independence/2026010106/metadata.json") as Metadata, require("../../particle-v3-fields/wave-synthetic-independence/2026010106/validity.u8"), require("../../particle-v3-fields/wave-synthetic-independence/2026010106/scalar.f32"), require("../../particle-v3-fields/wave-synthetic-independence/2026010106/vector.f32"))),
frame("T0", require("../../../particle-v3-fields/wave-synthetic-independence/2026010100/metadata.json") as Metadata, require("../../../particle-v3-fields/wave-synthetic-independence/2026010100/validity.u8"), require("../../../particle-v3-fields/wave-synthetic-independence/2026010100/scalar.f32"), require("../../../particle-v3-fields/wave-synthetic-independence/2026010100/vector.f32")),
frame("T1", require("../../../particle-v3-fields/wave-synthetic-independence/2026010106/metadata.json") as Metadata, require("../../../particle-v3-fields/wave-synthetic-independence/2026010106/validity.u8"), require("../../../particle-v3-fields/wave-synthetic-independence/2026010106/scalar.f32"), require("../../../particle-v3-fields/wave-synthetic-independence/2026010106/vector.f32"))),
];
async function uri(module: number, label: string): Promise<string> {