Files
memind/health-page-data-bootstrap.mjs
T
john 2baf29b3ae feat(health): complete P0 health channel — baseline engine, page-data, MindSpace UI
Deliver encrypted health zone, observation API, baseline maturity pipeline,
page-data bindings, and H5/WeChat channel integration for health P0.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 18:04:57 +08:00

33 lines
950 B
JavaScript

import { HEALTH_PAGE_DATA_DATASETS, healthPageDataDdlForBackend } from './health-page-data-schema.mjs';
const bootstrappedUsers = new Set();
function resolveUserDataBackend(userDataSpace) {
if (userDataSpace?.backend) return userDataSpace.backend;
if (userDataSpace?.privateDataDb) return 'sqlite';
return 'postgres';
}
export function resetHealthPageDataBootstrapCache() {
bootstrappedUsers.clear();
}
export async function ensureHealthPageDataForUser(userDataSpace, userId) {
if (!userDataSpace || !userId) return false;
const key = String(userId);
if (bootstrappedUsers.has(key)) return true;
const backend = resolveUserDataBackend(userDataSpace);
const ddl = healthPageDataDdlForBackend(backend);
for (const sql of ddl) {
await userDataSpace.executeSql(sql);
}
for (const dataset of HEALTH_PAGE_DATA_DATASETS) {
await userDataSpace.upsertDataset(dataset);
}
bootstrappedUsers.add(key);
return true;
}