@bscotch/stitch
Version:
Stitch: The GameMaker Studio 2 Asset Pipeline Development Kit.
89 lines • 3.42 kB
TypeScript
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