1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.configForCodebase = exports.normalizeAndValidate = exports.validate = exports.assertUnique = exports.validateCodebase = exports.normalize = exports.DEFAULT_CODEBASE = void 0;
- const error_1 = require("../error");
- exports.DEFAULT_CODEBASE = "default";
- function normalize(config) {
- if (!config) {
- throw new error_1.FirebaseError("No valid functions configuration detected in firebase.json");
- }
- if (Array.isArray(config)) {
- if (config.length < 1) {
- throw new error_1.FirebaseError("Requires at least one functions.source in firebase.json.");
- }
- return config;
- }
- return [config];
- }
- exports.normalize = normalize;
- function validateCodebase(codebase) {
- if (codebase.length === 0 || codebase.length > 63 || !/^[a-z0-9_-]+$/.test(codebase)) {
- throw new error_1.FirebaseError("Invalid codebase name. Codebase must be less than 64 characters and " +
- "can contain only lowercase letters, numeric characters, underscores, and dashes.");
- }
- }
- exports.validateCodebase = validateCodebase;
- function validateSingle(config) {
- if (!config.source) {
- throw new error_1.FirebaseError("codebase source must be specified");
- }
- if (!config.codebase) {
- config.codebase = exports.DEFAULT_CODEBASE;
- }
- validateCodebase(config.codebase);
- return Object.assign(Object.assign({}, config), { source: config.source, codebase: config.codebase });
- }
- function assertUnique(config, property, propval) {
- const values = new Set();
- if (propval) {
- values.add(propval);
- }
- for (const single of config) {
- const value = single[property];
- if (values.has(value)) {
- throw new error_1.FirebaseError(`functions.${property} must be unique but '${value}' was used more than once.`);
- }
- values.add(value);
- }
- }
- exports.assertUnique = assertUnique;
- function validate(config) {
- const validated = config.map((cfg) => validateSingle(cfg));
- assertUnique(validated, "source");
- assertUnique(validated, "codebase");
- return validated;
- }
- exports.validate = validate;
- function normalizeAndValidate(config) {
- return validate(normalize(config));
- }
- exports.normalizeAndValidate = normalizeAndValidate;
- function configForCodebase(config, codebase) {
- const codebaseCfg = config.find((c) => c.codebase === codebase);
- if (!codebaseCfg) {
- throw new error_1.FirebaseError(`No functions config found for codebase ${codebase}`);
- }
- return codebaseCfg;
- }
- exports.configForCodebase = configForCodebase;
|