MCPcopy
hub / github.com/subquery/subql / getMultichainManifestPath

Function getMultichainManifestPath

packages/common/src/project/utils.ts:149–176  ·  view source on GitHub ↗
(subquery: string)

Source from the content-addressed store, hash-verified

147}
148
149export function getMultichainManifestPath(subquery: string): string | undefined {
150 const stats = fs.statSync(subquery);
151 let multichainManifestPath: string | undefined;
152 let projectRoot: string | undefined;
153
154 if (stats.isDirectory()) {
155 projectRoot = subquery;
156 const multichainManifestCandidate = path.resolve(subquery, DEFAULT_MULTICHAIN_MANIFEST);
157 if (fs.existsSync(multichainManifestCandidate)) {
158 multichainManifestPath = multichainManifestCandidate;
159 }
160 } else if (stats.isFile()) {
161 const {dir, ext} = path.parse(subquery);
162 projectRoot = dir;
163 if (extensionIsYamlOrJSON(ext)) {
164 const multichainManifestContent = yaml.load(fs.readFileSync(subquery, 'utf8')) as MultichainProjectManifest;
165 if (multichainManifestContent.projects && Array.isArray(multichainManifestContent.projects)) {
166 multichainManifestPath = path.resolve(dir, subquery);
167 }
168 }
169 }
170
171 if (multichainManifestPath && projectRoot) {
172 return path.relative(projectRoot, multichainManifestPath);
173 }
174
175 return undefined;
176}
177
178export function validateSemver(current: string, required: string): boolean {
179 return satisfies(current, required, {includePrerelease: true});

Callers 3

publishAdapterFunction · 0.90

Calls 1

extensionIsYamlOrJSONFunction · 0.85

Tested by

no test coverage detected