renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
153 lines • 4.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AllFragments = exports.AttributeFragment = exports.ExtensionTagFragment = exports.PreparedExtensionTagFragment = exports.RuleFragment = exports.StringArrayFragment = exports.ArrayFragment = exports.BooleanFragment = exports.StringFragment = void 0;
exports.string = string;
exports.boolean = boolean;
exports.rule = rule;
exports.preparedExtensionTag = preparedExtensionTag;
exports.extensionTag = extensionTag;
exports.attribute = attribute;
exports.array = array;
exports.isValue = isValue;
exports.isPrimitive = isPrimitive;
const tslib_1 = require("tslib");
const zod_1 = require("zod");
const schema_utils_1 = require("../../../../util/schema-utils");
const starlark = tslib_1.__importStar(require("./starlark"));
exports.StringFragment = zod_1.z.object({
type: zod_1.z.literal('string'),
value: zod_1.z.string(),
isComplete: zod_1.z.literal(true),
});
exports.BooleanFragment = zod_1.z.object({
type: zod_1.z.literal('boolean'),
value: zod_1.z.boolean(),
isComplete: zod_1.z.literal(true),
});
const PrimitiveFragments = zod_1.z.discriminatedUnion('type', [
exports.StringFragment,
exports.BooleanFragment,
]);
exports.ArrayFragment = zod_1.z.object({
type: zod_1.z.literal('array'),
items: (0, schema_utils_1.LooseArray)(PrimitiveFragments),
isComplete: zod_1.z.boolean(),
});
exports.StringArrayFragment = zod_1.z.object({
type: zod_1.z.literal('array'),
items: (0, schema_utils_1.LooseArray)(exports.StringFragment),
isComplete: zod_1.z.boolean(),
});
const ValueFragments = zod_1.z.discriminatedUnion('type', [
exports.StringFragment,
exports.BooleanFragment,
exports.ArrayFragment,
]);
exports.RuleFragment = zod_1.z.object({
type: zod_1.z.literal('rule'),
rule: zod_1.z.string(),
children: (0, schema_utils_1.LooseRecord)(ValueFragments),
isComplete: zod_1.z.boolean(),
});
exports.PreparedExtensionTagFragment = zod_1.z.object({
type: zod_1.z.literal('preparedExtensionTag'),
// See ExtensionTagFragment for documentation of the fields.
extension: zod_1.z.string(),
rawExtension: zod_1.z.string(),
offset: zod_1.z.number(), // start offset in the source string
isComplete: zod_1.z.literal(false), // never complete, parser internal type.
});
exports.ExtensionTagFragment = zod_1.z.object({
type: zod_1.z.literal('extensionTag'),
// The "logical" name of the extension (e.g. `oci` or `maven`).
extension: zod_1.z.string(),
// The "raw" name of the extension as it appears in the MODULE file (e.g. `maven_01` or `maven`)
rawExtension: zod_1.z.string(),
tag: zod_1.z.string(),
children: (0, schema_utils_1.LooseRecord)(ValueFragments),
isComplete: zod_1.z.boolean(),
offset: zod_1.z.number(), // start offset in the source string
rawString: zod_1.z.string().optional(), // raw source string
});
exports.AttributeFragment = zod_1.z.object({
type: zod_1.z.literal('attribute'),
name: zod_1.z.string(),
value: ValueFragments.optional(),
isComplete: zod_1.z.boolean(),
});
exports.AllFragments = zod_1.z.discriminatedUnion('type', [
exports.ArrayFragment,
exports.AttributeFragment,
exports.BooleanFragment,
exports.RuleFragment,
exports.PreparedExtensionTagFragment,
exports.ExtensionTagFragment,
exports.StringFragment,
]);
function string(value) {
return {
type: 'string',
isComplete: true,
value,
};
}
function boolean(value) {
return {
type: 'boolean',
isComplete: true,
value: typeof value === 'string' ? starlark.asBoolean(value) : value,
};
}
function rule(rule, children = {}, isComplete = false) {
return {
type: 'rule',
rule,
isComplete,
children,
};
}
function preparedExtensionTag(extension, rawExtension, offset) {
return {
type: 'preparedExtensionTag',
extension,
rawExtension,
offset,
isComplete: false, // never complete
};
}
function extensionTag(extension, rawExtension, tag, offset, children = {}, rawString, isComplete = false) {
return {
type: 'extensionTag',
extension,
rawExtension,
tag,
offset,
rawString,
isComplete,
children,
};
}
function attribute(name, value, isComplete = false) {
return {
type: 'attribute',
name,
value,
isComplete,
};
}
function array(items = [], isComplete = false) {
return {
type: 'array',
items,
isComplete,
};
}
function isValue(data) {
const result = ValueFragments.safeParse(data);
return result.success;
}
function isPrimitive(data) {
const result = PrimitiveFragments.safeParse(data);
return result.success;
}
//# sourceMappingURL=fragments.js.map