mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-05-02 00:07:23 +08:00
120e0f6d23
Replace fs-extra/rimraf with native node:fs, lodash with structuredClone/spread, ts-node with tsx, minimist with node:util parseArgs, winston with console logger, async-promise-queue with native Promise concurrency. Use promisify for child_process.exec. Normalize all imports to use node: protocol. Extract Jest config to jest.config.ts and replace ts-jest with @swc/jest.
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import { readFileSync, writeFileSync } from 'node:fs';
|
|
import { join } from 'node:path';
|
|
|
|
import { PLUGIN_PATHS, ROOT } from '../build/helpers';
|
|
import { EMIT_PATH } from '../build/transformers/extract-injectables';
|
|
import { generateDeclarations, transpile } from '../build/transpile';
|
|
|
|
generateDeclarations();
|
|
transpile();
|
|
|
|
const outDirs = PLUGIN_PATHS.map((p) => p.replace(join(ROOT, 'src'), join(ROOT, 'dist')).replace(/[\\/]index.ts/, ''));
|
|
const injectableClasses = JSON.parse(readFileSync(EMIT_PATH, 'utf-8'));
|
|
|
|
outDirs.forEach((dir) => {
|
|
const classes = injectableClasses.filter((entry) => entry.dirName === dir.split(/[\\/]+/).pop());
|
|
|
|
let jsFile: string = readFileSync(join(dir, 'index.js'), 'utf-8'),
|
|
dtsFile: string = readFileSync(join(dir, 'index.d.ts'), 'utf-8');
|
|
|
|
classes.forEach((entry) => {
|
|
dtsFile = dtsFile.replace(`class ${entry.className} `, 'class ' + entry.className + 'Original ');
|
|
dtsFile += `\nexport declare const ${entry.className}: ${entry.className}Original;`;
|
|
jsFile = jsFile.replace(
|
|
new RegExp(`([\\s\\(])${entry.className}([\\s\\.;\\(,])`, 'g'),
|
|
'$1' + entry.className + 'Original$2'
|
|
);
|
|
jsFile = jsFile.replace(
|
|
`export { ${entry.className}Original }`,
|
|
`var ${entry.className} = new ${entry.className}Original();\nexport { ${entry.className} }`
|
|
);
|
|
});
|
|
|
|
writeFileSync(join(dir, 'index.js'), jsFile, 'utf-8');
|
|
writeFileSync(join(dir, 'index.d.ts'), dtsFile, 'utf-8');
|
|
});
|