@wukong-kit/extension 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/wukong-extension-sync.js +19 -0
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ main();
|
|
|
10
10
|
function main() {
|
|
11
11
|
const targetRoot = resolve(projectRoot, 'extensions', 'wukong');
|
|
12
12
|
const extensionsRoot = resolve(projectRoot, 'extensions');
|
|
13
|
+
const sourcePkg = JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8'));
|
|
13
14
|
|
|
14
15
|
assertInside(targetRoot, extensionsRoot);
|
|
15
16
|
|
|
@@ -24,6 +25,7 @@ function main() {
|
|
|
24
25
|
copyIfExists(join(packageRoot, 'README.md'), join(targetRoot, 'README.md'));
|
|
25
26
|
copyDir(join(packageRoot, 'dist'), join(targetRoot, 'dist'));
|
|
26
27
|
|
|
28
|
+
verifySyncedExtension(targetRoot, sourcePkg.version);
|
|
27
29
|
console.log(`[WK] Extension synced: ${relative(projectRoot, targetRoot)}`);
|
|
28
30
|
}
|
|
29
31
|
|
|
@@ -77,6 +79,23 @@ function copyDir(source, target) {
|
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
81
|
|
|
82
|
+
function verifySyncedExtension(targetRoot, sourceVersion) {
|
|
83
|
+
const sourceService = join(packageRoot, 'dist', 'services', 'ModuleRegistryService.js');
|
|
84
|
+
const targetService = join(targetRoot, 'dist', 'services', 'ModuleRegistryService.js');
|
|
85
|
+
const targetPkg = JSON.parse(readFileSync(join(targetRoot, 'package.json'), 'utf8'));
|
|
86
|
+
const sourceHasButtonClick = existsSync(sourceService) && readFileSync(sourceService, 'utf8').includes('protected onButtonClick');
|
|
87
|
+
const targetHasButtonClick = existsSync(targetService) && readFileSync(targetService, 'utf8').includes('protected onButtonClick');
|
|
88
|
+
|
|
89
|
+
console.log(`[WK] Source extension: @wukong-kit/extension@${sourceVersion}`);
|
|
90
|
+
console.log(`[WK] Target extension: ${targetPkg.name}@${targetPkg.version ?? 'unknown'}`);
|
|
91
|
+
console.log(`[WK] Source has onButtonClick: ${sourceHasButtonClick}`);
|
|
92
|
+
console.log(`[WK] Target has onButtonClick: ${targetHasButtonClick}`);
|
|
93
|
+
|
|
94
|
+
if (!sourceHasButtonClick || !targetHasButtonClick) {
|
|
95
|
+
throw new Error('Wukong extension sync failed: onButtonClick was not found in the synced extension.');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
80
99
|
function rmDir(target) {
|
|
81
100
|
if (!existsSync(target)) {
|
|
82
101
|
return;
|