@salesforce/core
Version:
Core libraries to interact with SFDX projects, orgs, and APIs.
57 lines • 2.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MetadataRegistrySchema = void 0;
/*
* Copyright (c) 2023, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
const zod_1 = require("zod");
const SuffixIndexSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.string());
const DirectoryIndexSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.string());
/**
* TypeInfoSchema has a circular reference (children.types references TypeIndexSchema,
* which references TypeInfoSchema). We use z.lazy() to defer schema evaluation until
* runtime to avoid "Cannot access before initialization" errors. z.ZodType<T> provides
* an explicit type annotation since TypeScript can't infer recursive types properly.
*/
const TypeInfoSchema = zod_1.z.lazy(() => zod_1.z.object({
id: zod_1.z.string(),
name: zod_1.z.string(),
directoryName: zod_1.z.string(),
suffix: zod_1.z.string().optional(),
strictDirectoryName: zod_1.z.boolean().optional(),
ignoreParsedFullName: zod_1.z.boolean().optional(),
folderContentType: zod_1.z.string().optional(),
folderType: zod_1.z.string().optional(),
xmlElementName: zod_1.z.string().optional(),
uniqueIdElement: zod_1.z.string().optional(),
isAddressable: zod_1.z.boolean().optional(),
unaddressableWithoutParent: zod_1.z.boolean().optional(),
supportsWildcardAndName: zod_1.z.boolean().optional(),
supportsPartialDelete: zod_1.z.boolean().optional(),
aliasFor: zod_1.z.string().optional(),
children: zod_1.z
.object({
types: TypeIndexSchema,
suffixes: SuffixIndexSchema,
directories: DirectoryIndexSchema.optional(),
})
.optional(),
strategies: zod_1.z
.object({
adapter: zod_1.z.enum(['mixedContent', 'matchingContentFile', 'decomposed', 'bundle', 'default']),
transformer: zod_1.z.enum(['decomposed', 'staticResource', 'standard']).optional(),
decomposition: zod_1.z.enum(['topLevel', 'folderPerType']).optional(),
})
.optional(),
}));
const TypeIndexSchema = zod_1.z.lazy(() => zod_1.z.record(zod_1.z.string(), TypeInfoSchema));
exports.MetadataRegistrySchema = zod_1.z.object({
types: TypeIndexSchema,
suffixes: SuffixIndexSchema,
strictDirectoryNames: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
childTypes: zod_1.z.record(zod_1.z.string(), zod_1.z.string()),
});
//# sourceMappingURL=registryVariants.js.map