spanwright
Version:
CLI tool to generate Cloud Spanner E2E testing framework projects with Go database tools and Playwright browser automation
88 lines • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MESSAGES = exports.VALIDATION_PATTERNS = exports.VALIDATION = exports.TEMPLATE_VARS = exports.FILE_PATTERNS = exports.DEFAULTS = exports.ENV_VARS = exports.CLI_FLAGS = exports.GITHUB_URL = exports.APP_DESCRIPTION = exports.APP_NAME = void 0;
// Application constants
exports.APP_NAME = 'Spanwright';
exports.APP_DESCRIPTION = 'Cloud Spanner E2E Testing Framework Generator';
exports.GITHUB_URL = 'https://github.com/nu0ma/spanwright';
// CLI flags
exports.CLI_FLAGS = {
VERSION: ['--version', '-v'],
HELP: ['--help', '-h'],
NON_INTERACTIVE: '--non-interactive',
};
// Environment variables
exports.ENV_VARS = {
CI: 'CI',
NON_INTERACTIVE: 'SPANWRIGHT_NON_INTERACTIVE',
DB_COUNT: 'SPANWRIGHT_DB_COUNT',
PRIMARY_DB_NAME: 'SPANWRIGHT_PRIMARY_DB_NAME',
PRIMARY_SCHEMA_PATH: 'SPANWRIGHT_PRIMARY_SCHEMA_PATH',
SECONDARY_DB_NAME: 'SPANWRIGHT_SECONDARY_DB_NAME',
SECONDARY_SCHEMA_PATH: 'SPANWRIGHT_SECONDARY_SCHEMA_PATH',
};
// Default values
exports.DEFAULTS = {
DB_COUNT: '1',
PRIMARY_DB_NAME: 'primary-db',
PRIMARY_SCHEMA_PATH: './schema',
SECONDARY_DB_NAME: 'secondary-db',
SECONDARY_SCHEMA_PATH: './schema2',
PROJECT_ID: 'test-project',
INSTANCE_ID: 'test-instance',
DOCKER_IMAGE: 'gcr.io/cloud-spanner-emulator/emulator',
CONTAINER_NAME: 'spanner-emulator',
SPANNER_PORT: '9010',
ADMIN_PORT: '9020',
STARTUP_WAIT: '20',
};
// File patterns
exports.FILE_PATTERNS = {
GO_EXTENSION: '.go',
PACKAGE_JSON_TEMPLATE: '_package.json',
GITIGNORE_TEMPLATE: '_gitignore',
GO_MOD_TEMPLATE: 'go.mod.template',
PACKAGE_JSON: 'package.json',
GITIGNORE: '.gitignore',
GO_MOD: 'go.mod',
ENV: '.env',
};
// Template replacements
exports.TEMPLATE_VARS = {
PROJECT_NAME: 'PROJECT_NAME',
};
// Validation patterns
exports.VALIDATION = {
DB_COUNTS: ['1', '2'],
FLAG_PREFIX: '-',
};
// Basic validation patterns
exports.VALIDATION_PATTERNS = {
PROJECT_NAME: /^[a-zA-Z][a-zA-Z0-9_-]*$/,
DATABASE_NAME: /^[a-zA-Z][a-zA-Z0-9_-]*$/,
SCHEMA_PATH: /^[a-zA-Z0-9_./\\-]+$/,
GENERIC_IDENTIFIER: /^[a-zA-Z0-9_-]+$/,
};
// Messages
exports.MESSAGES = {
ERRORS: {
NO_PROJECT_NAME: '❌ Please specify a project name',
DIRECTORY_EXISTS: (name) => `❌ Directory "${name}" already exists`,
INVALID_DB_COUNT: '❌ Please enter 1 or 2',
ENV_DB_COUNT_INVALID: '❌ SPANWRIGHT_DB_COUNT must be 1 or 2',
},
INFO: {
STARTING_SETUP: '🚀 Starting Spanner E2E Test Framework setup',
CREATING_DIRECTORY: '📁 Creating project directory...',
COPYING_TEMPLATES: '📦 Copying template files...',
CONFIGURING_GO: '🔧 Configuring Go modules...',
CREATING_ENV: '⚙️ Creating environment configuration file...',
REMOVING_FILES: '🗑️ Removing unnecessary files (Single DB configuration)...',
COMPLETED: '✅ Project creation completed!',
},
USAGE: {
BASIC: 'Usage: npx spanwright my-project',
HELP_SUGGESTION: 'Try "spanwright --help" for more information.',
},
};
//# sourceMappingURL=constants.js.map