@graphql-hive/cli
Version: 
A CLI util to manage and control your GraphQL Hive
39 lines • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parse = parse;
const zod_1 = require("zod");
const UUIDModel = zod_1.z.string().uuid();
/**
 * Parse a target slug into its parts. Returns an error if slug is invalid
 */
function parse(str) {
    const uuidResult = UUIDModel.safeParse(str);
    if (uuidResult.success) {
        return {
            type: 'ok',
            data: {
                byId: uuidResult.data,
            },
        };
    }
    const parts = str.split('/');
    const organizationSlug = parts.at(0);
    const projectSlug = parts.at(1);
    const targetSlug = parts.at(2);
    if (!organizationSlug || !projectSlug || !targetSlug || parts.length > 3) {
        return {
            type: 'error',
        };
    }
    return {
        type: 'ok',
        data: {
            bySelector: {
                organizationSlug,
                projectSlug,
                targetSlug,
            },
        },
    };
}
//# sourceMappingURL=target-input.js.map