Skip to content

Commit

Permalink
chore(plugin-api): add support for plugin generatorName configuration…
Browse files Browse the repository at this point in the history
… in custom logic
  • Loading branch information
overbit committed May 7, 2024
1 parent 50b763a commit e84dabd
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 37 deletions.
29 changes: 15 additions & 14 deletions packages/amplication-plugin-api/src/plugin/github-plugin.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
NpmTags,
PluginData,
PluginList,
PluginYml,
PluginCatalogEntryYml,
} from "./plugin.types";
import { AMPLICATION_GITHUB_URL, emptyPlugin } from "./plugin.constants";
import { AmplicationLogger } from "@amplication/util/nestjs/logging";
Expand Down Expand Up @@ -106,7 +106,7 @@ export class GitPluginService {

const pluginConfig = await response.text();

const fileYml: PluginYml = yaml.load(pluginConfig) as PluginYml;
const fileYml = yaml.load(pluginConfig) as PluginCatalogEntryYml;

const pluginId = pluginList[index]["name"].replace(".yml", "");

Expand All @@ -115,7 +115,7 @@ export class GitPluginService {
++index;

yield {
plugin: {
pluginCatalogEntry: {
...fileYml,
pluginId,
},
Expand Down Expand Up @@ -150,23 +150,24 @@ export class GitPluginService {
const pluginsArr: Plugin[] = [];

for await (const pluginConfig of this.getPluginConfig(pluginCatalog)) {
if (!(pluginConfig as PluginData).plugin.pluginId) continue;
if (!(pluginConfig as PluginData).pluginCatalogEntry.pluginId) continue;

const { npm, plugin, downloads } = pluginConfig;
const { npm, pluginCatalogEntry, downloads } = pluginConfig;
pluginsArr.push({
id: "",
id: undefined,
createdAt: npm.time ? new Date(npm.time.created) : new Date(),
description: plugin.description,
github: plugin.github,
icon: plugin.icon,
name: plugin.name,
npm: plugin.npm,
pluginId: plugin.pluginId,
description: pluginCatalogEntry.description,
github: pluginCatalogEntry.github,
icon: pluginCatalogEntry.icon,
name: pluginCatalogEntry.name,
npm: pluginCatalogEntry.npm,
pluginId: pluginCatalogEntry.pluginId,
taggedVersions: npm["dist-tags"],
website: plugin.website,
website: pluginCatalogEntry.website,
updatedAt: npm.time ? new Date(npm.time.modified) : new Date(),
downloads: downloads,
categories: plugin.categories,
categories: pluginCatalogEntry.categories,
codeGeneratorName: pluginCatalogEntry.generator,
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export const AMPLICATION_GITHUB_URL =
export const NPM_DOWNLOADS_API = "https://api.npmjs.org/downloads/point/";

export const emptyPlugin: PluginData = {
plugin: {
pluginCatalogEntry: {
id: "",
name: "",
description: "",
Expand All @@ -20,6 +20,7 @@ export const emptyPlugin: PluginData = {
categories: "[]",
resourceTypes: "",
pluginId: "",
generator: "",
},
npm: {
"dist-tags": {},
Expand Down
24 changes: 4 additions & 20 deletions packages/amplication-plugin-api/src/plugin/plugin.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,6 @@ interface PluginsDataObj {
};
}

const setPluginData = (plugin) => ({
description: plugin.description,
github: plugin.github,
icon: plugin.icon,
name: plugin.name,
npm: plugin.npm,
website: plugin.website,
taggedVersions: plugin.taggedVersions,
pluginId: plugin.pluginId,
createdAt: plugin.createdAt,
updatedAt: plugin.updatedAt,
categories: plugin.categories,
downloads: plugin.downloads,
});

@Injectable()
export class PluginService extends PluginServiceBase {
constructor(
Expand All @@ -58,16 +43,15 @@ export class PluginService extends PluginServiceBase {
throw pluginsList;
}

const pluginsAndCategories = pluginsList.reduce(
(pluginsDataObj: PluginsDataObj, plugin: PluginCreateInput) => {
const pluginData = setPluginData(plugin);
const pluginsAndCategories: PluginsDataObj = pluginsList.reduce(
(pluginsDataObj: PluginsDataObj, plugin: Plugin) => {
pluginsDataObj.pluginsData.push(plugin);

pluginsDataObj.pluginsData.push(pluginData);
const pluginUpdate = this.prisma.plugin.update({
where: {
pluginId: plugin.pluginId,
},
data: pluginData,
data: plugin,
});
pluginsDataObj.pluginUpdate.push(pluginUpdate);

Expand Down
5 changes: 3 additions & 2 deletions packages/amplication-plugin-api/src/plugin/plugin.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ export interface NpmDownloads {
}

export interface PluginData {
plugin: PluginYml;
pluginCatalogEntry: PluginCatalogEntryYml;
npm: NpmTags;
downloads: number;
}

export interface PluginYml {
export interface PluginCatalogEntryYml {
id: string;
name: string;
description: string;
Expand All @@ -30,6 +30,7 @@ export interface PluginYml {
categories: string;
resourceTypes: string;
pluginId?: string;
generator: string;
}

export interface PluginList {
Expand Down

0 comments on commit e84dabd

Please sign in to comment.