@supernovaio/cli
Version:
Supernova.io Command Line Interface
73 lines (71 loc) • 3.7 kB
JavaScript
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5b80a86e-3e0f-57f9-9a49-8bce1bf07cc7")}catch(e){}}();
import { isPrivateDependencyScopePattern, resolveExactPrivatePackages } from "../../helpers.js";
import { emphasis } from "../../ui.js";
import { promptDependencyPackageNames, promptPrivateRegistryConfiguration } from "./prompts.js";
export function createDependencyHandlers(services) {
return {
async CONFIGURE_DEPENDENCIES(context) {
services.ui.renderStep("Design system dependencies");
const dependencyPackageNames = await promptDependencyPackageNames(context, services.ui.error, services.ui.log);
services.ui.log(`${emphasis("Packages to add:")} ${dependencyPackageNames.join(", ")}`);
return {
dependencyPackageNames,
};
},
async CONFIGURE_PRIVATE_REGISTRY(context) {
if (!context.dependencyPackageNames?.length) {
services.ui.error("Design system packages are missing.");
}
services.ui.renderStep("Package access");
const registryConfig = await promptPrivateRegistryConfiguration({
context,
ensureLocalNpmrcFile: services.dependencies.ensureLocalNpmrcFile,
error: services.ui.error,
log: services.ui.log,
});
if (registryConfig.dependencyMode === "Public") {
await services.dependencies.applyTemplateDependencyConfiguration({
...context,
dependencyMode: "Public",
});
services.ui.log(`${emphasis("Public packages:")} ${context.dependencyPackageNames.join(", ")}`);
return {
dependencyMode: "Public",
privateDependencyEntries: undefined,
npmToken: undefined,
};
}
const privateDependencyEntries = services.dependencies.createPrivateDependencyEntries(context.dependencyPackageNames);
await services.dependencies.applyTemplateDependencyConfiguration({
...context,
dependencyMode: "Private",
privateDependencyEntries,
});
const privatePackageNames = resolveExactPrivatePackages({
...context,
dependencyMode: "Private",
privateDependencyEntries,
});
const privateScopePattern = privateDependencyEntries.find(entry => isPrivateDependencyScopePattern(entry));
services.ui.log(`${emphasis("Private packages:")} ${privatePackageNames.join(", ")}`);
if (privateScopePattern) {
services.ui.log(`${emphasis("Auto-added Supernova scope pattern:")} ${privateScopePattern}`);
}
return {
dependencyMode: "Private",
privateDependencyEntries,
npmToken: registryConfig.npmToken,
};
},
async VALIDATE_DEPENDENCY_ACCESS(context) {
services.ui.renderStep("Validate dependency access");
if (!context.templateDestinationPath) {
services.ui.error("Template destination path is missing.");
}
await services.dependencies.validateTemplateDependencies(context);
return undefined;
},
};
}
//# sourceMappingURL=index.js.map
//# debugId=5b80a86e-3e0f-57f9-9a49-8bce1bf07cc7