32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
/**
|
|
* DWG parser — rust/dwg-wasm wrapper around the acadrust crate (MPL-2.0,
|
|
* consumed unmodified; see rust/dwg-wasm). Emits the parseResult shape
|
|
* Viewer2D.load() consumes. Lazy-imported so the wasm is only fetched when a
|
|
* DWG is actually opened.
|
|
*
|
|
* History: until 2026-07-10 this module selected between acadrust and
|
|
* @horu2day/pure-cad-parser (?dwgparser= toggle). The old parser was removed
|
|
* after side-by-side validation (PROGRESS.md Phase 15).
|
|
*
|
|
* Post-process: fixDwgKoreanText repairs CP949→Latin-1 mojibake common in
|
|
* older Korean DWGs (see fixDwgKoreanText.ts). Unicode-correct drawings
|
|
* (e.g. BasicSample) are left unchanged.
|
|
*/
|
|
|
|
import { fixDwgKoreanText } from './fixDwgKoreanText';
|
|
|
|
export type CadParseResult = {
|
|
version?: string;
|
|
vars?: Record<string, unknown>;
|
|
entities?: unknown[];
|
|
tables?: Record<string, unknown>;
|
|
stats?: Record<string, unknown>;
|
|
};
|
|
|
|
/** Parse a DWG buffer. Returns a parseResult for Viewer2D.load(). */
|
|
export async function parseDwgBuffer(bytes: Uint8Array): Promise<CadParseResult> {
|
|
const { initAcadrustParser, parseDwgAcadrust } = await import('./acadrustParser');
|
|
await initAcadrustParser();
|
|
return fixDwgKoreanText(parseDwgAcadrust(bytes));
|
|
}
|