Skip to content

Commit

Permalink
Improved declaration error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
FlorianRappl committed Feb 19, 2024
1 parent fd51003 commit 21c9726
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 33 deletions.
10 changes: 2 additions & 8 deletions src/tooling/piral-cli/src/apps/build-pilet.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
import { dirname, basename, resolve, relative } from 'path';
import { dirname, resolve } from 'path';
import { LogLevels, PiletBuildType, PiletSchemaVersion } from '../types';
import { callPiletBuild, callPiralBuild } from '../bundler';
import { callPiralBuild } from '../bundler';
import {
removeDirectory,
retrievePiletData,
setLogLevel,
progress,
logDone,
logInfo,
createPiletDeclaration,
ForceOverwrite,
matchAnyPilet,
fail,
config,
log,
writeJson,
getPiletSpecMeta,
Expand All @@ -22,10 +19,7 @@ import {
cpuCount,
concurrentWorkers,
normalizePublicUrl,
combinePiletExternals,
retrievePiletsInfo,
validateSharedDependencies,
defaultSchemaVersion,
flattenExternals,
triggerBuildPilet,
} from '../common';
Expand Down
26 changes: 15 additions & 11 deletions src/tooling/piral-cli/src/apps/declaration-pilet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,29 @@ export async function declarationPilet(baseDir = process.cwd(), options: Declara
setLogLevel(logLevel);

const allEntries = await matchAnyPilet(fullBase, entryList);
const results: Array<boolean> = [];

for (const item of allEntries) {
const targetDir = dirname(item);
const { peerDependencies, peerModules, root, apps, piletPackage, importmap } = await retrievePiletData(targetDir);
const piralInstances = apps.map((m) => m.appPackage.name);
const externals = combinePiletExternals(piralInstances, peerDependencies, peerModules, importmap);
const dest = resolve(root, target);

await createPiletDeclaration(
piletPackage.name,
piralInstances,
root,
item,
externals,
dest,
forceOverwrite,
logLevel,
results.push(
await createPiletDeclaration(
piletPackage.name,
piralInstances,
root,
item,
externals,
dest,
forceOverwrite,
logLevel,
),
);
}

logDone(`Declaration created successfully in "${target}"!`);
if (results.every(Boolean)) {
logDone(`Declaration created successfully in "${target}"!`);
}
}
6 changes: 4 additions & 2 deletions src/tooling/piral-cli/src/apps/declaration-piral.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ export async function declarationPiral(baseDir = process.cwd(), options: Declara
} = options;
const fullBase = resolve(process.cwd(), baseDir);
setLogLevel(logLevel);
await createPiralDeclaration(fullBase, entry, target, forceOverwrite, logLevel);
logDone(`Declaration created successfully in "${target}"!`);

if (await createPiralDeclaration(fullBase, entry, target, forceOverwrite, logLevel)) {
logDone(`Declaration created successfully in "${target}"!`);
}
}
33 changes: 21 additions & 12 deletions src/tooling/piral-cli/src/common/declaration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,20 +130,14 @@ function createLogger(): Logger {

async function createDeclarationFile(
options: DeclOptions,
source: string,
target: string,
forceOverwrite: ForceOverwrite,
) {
progress('Bundling declaration file ...');
const result = await generateDeclaration(options);

try {
const result = await generateDeclaration(options);

progress('Writing declaration file ...');
await createFileIfNotExists(target, 'index.d.ts', result, forceOverwrite);
} catch (ex) {
log('declarationCouldNotBeGenerated_0076', source, ex);
}
progress('Writing declaration file ...');
await createFileIfNotExists(target, 'index.d.ts', result, forceOverwrite);
}

export async function createPiletDeclaration(
Expand Down Expand Up @@ -175,7 +169,15 @@ export async function createPiletDeclaration(
logLevel,
logger: createLogger(),
};
return await createDeclarationFile(options, root, target, forceOverwrite);

try {
await createDeclarationFile(options, target, forceOverwrite);
return true;
} catch (ex) {
log('declarationCouldNotBeGenerated_0076', root, ex);
}

return false;
}
}

Expand Down Expand Up @@ -206,8 +208,15 @@ export async function createPiralDeclaration(
validateSharedDependencies(externals);

if (options.apis.length) {
return await createDeclarationFile(options, baseDir, target, forceOverwrite);
try {
await createDeclarationFile(options, target, forceOverwrite);
return true;
} catch (ex) {
log('declarationCouldNotBeGenerated_0076', baseDir, ex);
}
} else {
log('declarationCouldNotBeGenerated_0076', baseDir, 'The main Pilet API interface could not be found.');
}

log('declarationCouldNotBeGenerated_0076', baseDir, 'The main Pilet API interface could not be found.');
return false;
}

0 comments on commit 21c9726

Please sign in to comment.