UNPKG

@bscotch/stitch

Version:

Stitch: The GameMaker Studio 2 Asset Pipeline Development Kit.

89 lines 3.42 kB
import { Gms2ResourceType } from './components/Gms2ResourceArray.js'; import type { StitchProject } from './StitchProject.js'; export type ClobberAction = 'error' | 'skip' | 'overwrite'; export interface StitchMergerOptions { /** * List of source folder patterns that, if matched, * should have all child assets imported (recursive). * Will be passed to `new RegExp()` and tested against * the parent folder of every source resource. * Independent from ifNameMatches. */ ifFolderMatches?: string[]; /** * List of source resource name patterns that, if matched, * should have all child assets imported (recursive). * Will be passed to `new RegExp()` and tested against * the name of every source resource. * Independent from ifFolderMatches. */ ifNameMatches?: string[]; /** * By default, Included Files are also tested against * the merge patterns. Files can be excluded from merging. */ skipIncludedFiles?: boolean; /** * Resource types whitelist. If not provided, all resource * types are merged. */ types?: Gms2ResourceType[]; /** * Normally all dependencies (parent objects and sprites) * for the objects within the modules must also be in those * modules (modules don't have to be self-contained, but the * collection of imported modules does.) You can bypass * that requirement. */ skipDependencyCheck?: boolean; /** * If the target project already has the source module, * it may have assets in it that are *not* in the source. * This can create confusion about which assets come from * which source. You can reduce this confusion by having * conflicting target assets moved into a 'MERGE_CONFLICTS' * folder for later re-organization. */ moveConflicting?: boolean; /** * If source assets match target assets by name, * but have mismatched parent folders, an error is raised. * This is to prevent * accidental overwrite of assets that happen to have the * same name but aren't actually the same thing. * You can change the behavior to instead skip importing * those assets (keeping the target version) or overwrite * (deleting the target version and keeping the source * version). Note that assets of different type that have * the same name will *always* raise an error. */ onClobber?: ClobberAction; } export interface Gms2GitHubRepoInfo { repoOwner: string; repoName: string; revision?: string; revisionType?: '@' | '?'; tagPattern?: string; } export interface Gms2MergerGitHubOptions extends StitchMergerOptions, Gms2GitHubRepoInfo { } export declare class Gms2ProjectMerger { private sourceProject; private targetProject; private options; constructor(sourceProject: StitchProject, targetProject: StitchProject, options?: StitchMergerOptions); merge(): Promise<void>; private resourcesMatch; private assertAllDependenciesFound; private resourceMatchesOptions; /** * Move any target module assets into a folder called "MERGE_CONFLICTS" * if they do not exist in the source module (if desired). */ private handleResourceConflict; private importResource; private importIncludedFiles; private cloneResourceFiles; } //# sourceMappingURL=StitchProjectMerger.d.ts.map