Files
botsu.app/scripts/verify-workspace.mjs

37 lines
1.0 KiB
JavaScript

import assert from 'node:assert/strict';
import { access, readFile } from 'node:fs/promises';
import { resolve } from 'node:path';
const root = resolve(import.meta.dirname, '..');
const requiredPaths = [
'.node-version',
'.nvmrc',
'AGENTS.md',
'.env.example',
'.editorconfig',
'package.json',
'apps/client/package.json',
'docs/adr',
'docs/architecture',
'infra',
'packages',
'scripts/dev.mjs',
'scripts/bootstrap-macos.sh',
];
await Promise.all(requiredPaths.map((path) => access(resolve(root, path))));
const rootPackage = JSON.parse(await readFile(resolve(root, 'package.json'), 'utf8'));
const clientPackage = JSON.parse(
await readFile(resolve(root, 'apps/client/package.json'), 'utf8'),
);
assert.equal(rootPackage.private, true, 'the monorepo must remain private');
assert.equal(rootPackage.name, '@botsu/suite');
assert.deepEqual(rootPackage.workspaces, ['apps/*', 'packages/*']);
assert.equal(clientPackage.name, 'cinny');
assert.equal(clientPackage.version, '4.12.6');
console.log('BOTSU workspace structure: OK');