UNPKG

xchess

Version:

Chess Engine

49 lines (37 loc) 793 B
export {MetaMap} // import {PGNWriter} from '../pgn/writer.js' import {INVALID_META_TAG, INVALID_META_VALUE} from './errors.js' // const pgn = new PGNWriter(); function KEY(keyArg){ const key = String(keyArg); if(/^[a-z0-9_]+$/i.test(key)) return key; throw INVALID_META_TAG(key); } function VALUE(valueArg){ const value = String(valueArg); if(value.includes('"')) throw INVALID_META_VALUE(value); return value; } class MetaMap extends Map { toString(){ return this.pgn; } get pgn(){ // pgn.headers(this); // return pgn.stream.release(); } get(name){ return super.get(String(name)); } has(name){ return super.has(String(name)); } set(name, value){ return super.set(KEY(name), VALUE(value)); } delete(name){ return super.delete(String(name)); } }