UNPKG

@swell/cli

Version:

Swell's command line interface/utility

156 lines (155 loc) 5.09 kB
/// <reference types="node" /> import { AppConfig } from './app-config.js'; export { AppConfig, FunctionProcessingError, IgnoringFileError, } from './app-config.js'; export { allBaseFilesInDir, allConfigDirsPaths, allConfigFilesInDir, allConfigFilesPaths, allConfigFilesPathsByType, getAllConfigPaths, globAllFilesByPath, isPathDirectory, } from './paths.js'; export declare const PUSH_CONCURRENCY = 3; /** * An app as defined by the Swell API. This is different than an app * configuration that developers define. */ export interface App { categories?: Array<string>; client?: any; client_id?: string; compatibilities?: { [key: string]: string; }; configs?: AppConfig[]; date_created?: string; date_updated?: string; description?: string; extensions?: Array<any>; features?: Array<string>; frontend?: { deployment?: null | object; deployment_hash?: string; deployment_id?: string; framework?: string; service?: string; url?: string; }; highlights?: Array<{ id: string; image_src?: unknown; title: string; }>; id?: string; installed?: { date_created: string; id: string; }; kind?: string; logo_icon?: unknown; name?: string; preview_image?: unknown; preview_mobile_image?: unknown; private_id?: string; public_id?: string; published?: boolean; purchase_options?: Array<string>; storefront?: { [key: string]: any; }; styles?: Array<{ color: string; color_alt?: string; id: string; label: string; preview_image?: unknown; preview_mobile_image?: unknown; }>; theme?: { [key: string]: any; }; type?: string; use_cases?: Array<string>; version?: string; } export declare enum SwellJsonFields { DESCRIPTION = "description", EXTENSIONS = "extensions", ID = "id", KIND = "kind", NAME = "name", PERMISSIONS = "permissions", STOREFRONT = "storefront", THEME = "theme", TYPE = "type", VERSION = "version" } export interface AppVersion { date_created: string; description?: string; id: string; name: string; published?: boolean; release_notes?: string; released?: boolean; supported?: boolean; version: string; } export declare enum ConfigType { ASSET = "asset", CONTENT = "content", FILE = "file", FRONTEND = "frontend", FUNCTION = "function", MODEL = "model", NOTIFICATION = "notification", SETTING = "setting", THEME = "theme", WEBHOOK = "webhook" } export type ConfigTypeKey = keyof typeof ConfigType; export declare const StorefrontConfigTypes: ConfigTypeKey[]; export declare const ThemeConfigTypes: ConfigTypeKey[]; export type ConfigPathsType = { [key in ConfigTypeKey]: string; }; export declare const ConfigPaths: ConfigPathsType; export declare const StorefrontConfigPaths: ConfigPathsType; export declare const ThemeConfigPaths: ConfigPathsType; export declare enum ConfigInputFields { FILE = "file", NAME = "name", TYPE = "type", VALUES = "values", VERSION = "version" } export interface FrontendProjectType { buildCommand: string; configFileName: string; deployPath: string; devCommand: string; installCommand: string; name: string; slug: string; } export declare const FrontendProjectTypes: FrontendProjectType[]; export declare function getAppSlugId(app: App): string | undefined; export declare function getFrontendProjectType(appPath: string): FrontendProjectType | undefined; export declare function getConfigTypeFromPath(path: string): ConfigType | undefined; export declare function getConfigTypeKeyFromValue(value: string): string | undefined; export declare function filePathExists(filePath: string): boolean; export declare function filePathExistsAsync(filePath: string): Promise<boolean>; export declare function writeFile(file: string, data: string): Promise<void>; export declare function deleteFile(file: string): Promise<void>; export declare function writeJsonFile(file: string, data?: any): Promise<void>; export declare function hashFile(filePath: string, fileContents?: Buffer, relativePath?: string): string; export declare function hashString(...contents: (Buffer | string)[]): string; export declare function appAssetImage(appPath: string, fileName: string): string | undefined; export declare function appConfigFromFile(filePath: string, configType: ConfigType, appPath: string): AppConfig; export declare function findAppConfig(app: App, filePath: string, configType: ConfigType): AppConfig | undefined; interface BatchAppFiles { configs: AppConfig[]; type: ConfigType; label: string; concurrency: number; } /** * Get files to push in batches prioritized by dependencies * * @param {AppConfig[]} configs - List of app configs * @returns {BatchAppFiles[]} Batches of files to push */ export declare function batchAppFilesByType(configs: AppConfig[]): BatchAppFiles[];