ddd
This commit is contained in:
parent
0a343ecbc5
commit
c3a6f5ff37
80 changed files with 2512 additions and 1625 deletions
20
scripts/split-puzzle-patterns.js
Normal file
20
scripts/split-puzzle-patterns.js
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
'use strict';
|
||||
const fs=require('fs');
|
||||
const path=require('path');
|
||||
|
||||
const root=path.resolve(__dirname,'..');
|
||||
const corePath=path.join(root,'puzzle-core.js');
|
||||
const patternsPath=path.join(root,'puzzle-patterns.js');
|
||||
const source=fs.readFileSync(corePath,'utf8');
|
||||
const loader="const PuzzlePatterns=root.BendPuzzlePatterns||(typeof module==='object'&&module.exports?require('./puzzle-patterns'):null);\nif(!PuzzlePatterns)throw new Error('BendPuzzlePatterns is not loaded');\nconst MICRO_PATTERN_SETS=PuzzlePatterns.MICRO_PATTERN_SETS;\n";
|
||||
|
||||
if(source.includes("require('./puzzle-patterns')")){
|
||||
if(!fs.existsSync(patternsPath))throw new Error('puzzle-core.js is split but puzzle-patterns.js is missing');
|
||||
process.exit(0);
|
||||
}
|
||||
const start=source.indexOf('const MICRO_PATTERN_SETS='),end=source.indexOf('\nconst H_PORT_PROFILES=',start);
|
||||
if(start<0||end<0)throw new Error('Could not locate the generated micro-pattern table');
|
||||
const declaration=source.slice(start,end),expression=declaration.slice('const MICRO_PATTERN_SETS='.length,-1);
|
||||
const patternModule=`'use strict';\n// Generated puzzle routing patterns, split from puzzle-core.js. Do not edit by hand.\n(function(root,factory){const api=factory();if(typeof module==='object'&&module.exports)module.exports=api;if(root)root.BendPuzzlePatterns=api})(typeof globalThis!=='undefined'?globalThis:this,()=>Object.freeze({MICRO_PATTERN_SETS:Object.freeze(${expression})}));\n`;
|
||||
fs.writeFileSync(patternsPath,patternModule);
|
||||
fs.writeFileSync(corePath,source.slice(0,start)+loader+source.slice(end+1));
|
||||
Loading…
Add table
Add a link
Reference in a new issue