UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

45 lines (44 loc) 1.95 kB
import { RuntimeInventory } from "@apic/smith-inventory"; import { getMasterContent } from "../resources/wmgw-smith-master.js"; import { getCombinedSource } from "../resources/wmgw-smith-schemas-json.js"; import { getDefaultVersions } from "../resources/wmgw-smith-defaultVersion.js"; import { getCombinedRuleset } from "../resources/wmgw-smith-ruleset.js"; export class WMGWRuntimeInventory extends RuntimeInventory { constructor() { super(); this.extendDefaultVersions(getDefaultVersions(), true); this.extendRulesetDefinitions(getCombinedRuleset(), true); this.extendSchemaDefinitions(getCombinedSource(), true); try { // Add custom master content this.webmMasterContent = getMasterContent(); // Add custom schema definitions this.webmSchemaDefinitions = getCombinedSource(); // Add custom default versions this.webmDefaultVersionMap = getDefaultVersions(); this.webmRulesetDefinitions = getCombinedRuleset(); } catch (error) { this.webmSchemaDefinitions = {}; this.webmRulesetDefinitions = {}; this.webmDefaultVersionMap = {}; this.webmMasterContent = {}; } } /** * Hook method for subclasses to populate their extensions before schema retrieval * This is called automatically by getSchema() before looking up the schema * @param key - The kind name and version requested being requested */ getOverriddenSchema(key) { return this.webmSchemaDefinitions[key]; } /** * Hook method for subclasses to populate their extensions before schema retrieval * This is called automatically by getSchema() before looking up the schema * @param key - The kind name and version requested being requested */ getOverriddenRule(key) { return this.webmRulesetDefinitions[key]; } }