| 12345678910111213141516 |
- import {readFileSync} from 'node:fs';
- import {specs} from './legacy-direct-specs.mjs';
- import {legacyAddonFields} from './legacy-direct-projection.mjs';
- export function buildDirectBundle(columns,windows=[],company='7pIbDBJmKx') {
- const definitions=structuredClone(specs);
- for(const [m,s] of Object.entries(definitions)){
- s.fields=legacyAddonFields[m]||(m==='52'?['sy','yb','lj','yp']:['content','synopsis','mp4','ico','author','source']);
- s.addonColumns=columns.filter(c=>c.table_name===s.className).map(c=>c.column_name);
- s.commonColumns=columns.filter(c=>c.table_name==='CommonModel').map(c=>c.column_name);
- if(!s.addonColumns.includes('id')||!s.commonColumns.includes('generalId'))throw Error('Unexpected physical schema');
- }
- const userSource=readFileSync(new URL('../backfill-legacy-users.mjs',import.meta.url),'utf8');
- const userProjection=userSource.slice(userSource.indexOf('function text(value)'),userSource.indexOf('function requestGroups('));
- const prefix='const company={__type:"Pointer",className:"Company",objectId:'+JSON.stringify(company)+'};\n'+userProjection;
- return (prefix+['legacy-direct-supplement','legacy-direct-control','legacy-direct-sync'].map(n=>readFileSync(new URL('../cloud/'+n+'.js',import.meta.url),'utf8')).join('\n')).replaceAll('__SPECS__',JSON.stringify(definitions)).replaceAll('__WINDOWS__',JSON.stringify(windows)).replaceAll('__COMPANY_ID__',JSON.stringify(company));
- }
|