public BundleBundler(IToolsDir tools, MainBuildResult mainBuildResult, ProjectOptions project, BuildResult buildResult) { _tools = tools; _mainBuildResult = mainBuildResult; _project = project; _buildResult = buildResult; }
void RecursiveAddFilesContent(IDirectoryCache directory, MainBuildResult buildResult, string destDir) { DiskCache.UpdateIfNeeded(directory); foreach (var child in directory) { if (child.IsInvalid) { continue; } var outPathFileName = (destDir != "" ? destDir + "/" : "") + child.Name; buildResult.TakenNames.Add(outPathFileName); if (child is IDirectoryCache) { RecursiveAddFilesContent(child as IDirectoryCache, buildResult, outPathFileName); continue; } if (child is IFileCache) { buildResult.FilesContent.GetOrAddValueRef(outPathFileName) = new Lazy <object>(() => { var res = ((IFileCache)child).ByteContent; ((IFileCache)child).FreeCache(); return(res); }); } } }
void RecursiveFillOutputByAdditionalResourcesDirectory(MainBuildResult buildResult, IDirectoryCache directoryCache, string resourcesPath) { Owner.DiskCache.UpdateIfNeeded(directoryCache); foreach (var child in directoryCache) { if (child is IDirectoryCache) { RecursiveFillOutputByAdditionalResourcesDirectory(buildResult, child as IDirectoryCache, resourcesPath); continue; } if (child.IsInvalid) { continue; } var outPathFileName = PathUtils.Subtract(child.FullPath, resourcesPath); buildResult.TakenNames.Add(outPathFileName); if (child is IFileCache) { buildResult.FilesContent.GetOrAddValueRef(outPathFileName) = new Lazy <object>(() => { var res = ((IFileCache)child).ByteContent; ((IFileCache)child).FreeCache(); return(res); }); } } }
public void FillOutputByAdditionalResourcesDirectory(Dictionary <string, TSProject> buildResultModules, MainBuildResult buildResult) { if (Owner.UsedDependencies == null) { Owner.UsedDependencies = new HashSet <string>(); } else { Owner.UsedDependencies.Clear(); } var nodeModulesDir = Owner.Owner.FullPath; while (nodeModulesDir.Length > 0) { if (Owner.DiskCache.TryGetItem(nodeModulesDir + "/node_modules") is IDirectoryCache dc && !dc.IsInvalid) { break; } nodeModulesDir = PathUtils.Parent(nodeModulesDir).ToString(); } Owner.FillOutputByAssets(buildResult, nodeModulesDir, this); FillOutputByAssetsFromModules(buildResult, buildResultModules, nodeModulesDir); if (AdditionalResourcesDirectory == null) { return; } var resourcesPath = PathUtils.Join(Owner.Owner.FullPath, AdditionalResourcesDirectory); var item = Owner.DiskCache.TryGetItem(resourcesPath); if (item is IDirectoryCache) { RecursiveFillOutputByAdditionalResourcesDirectory(buildResult, item as IDirectoryCache, resourcesPath); } }
public void SpriterInitialization(MainBuildResult buildResult) { if (SpriteGeneration && SpriteGenerator == null) { SpriteGenerator = new SpriteHolder(Owner.DiskCache, Owner.Logger); BundlePngUrl = buildResult.AllocateName("bundle.png"); } }
public NjsastBundleBundler(IToolsDir tools, ILogger logger, MainBuildResult mainBuildResult, ProjectOptions project, BuildResult buildResult) { _tools = tools; _logger = logger; _mainBuildResult = mainBuildResult; _project = project; _buildResult = buildResult; }
public void FillOutputByAssets(MainBuildResult buildResult, string nodeModulesDir, ProjectOptions projectOptions) { if (Assets == null) { return; } foreach (var asset in Assets) { var fromModules = asset.Key.StartsWith("node_modules/"); var fullPath = fromModules ? nodeModulesDir : Owner.FullPath; if (fromModules) { if (projectOptions.Owner.UsedDependencies == null) { projectOptions.Owner.UsedDependencies = new HashSet <string>(); } var pos = 0; PathUtils.EnumParts(asset.Key, ref pos, out var name, out var isDir); PathUtils.EnumParts(asset.Key, ref pos, out name, out isDir); projectOptions.Owner.UsedDependencies.Add(name.ToString()); } var item = DiskCache.TryGetItem(PathUtils.Join(fullPath, asset.Key)); if (item == null || item.IsInvalid) { continue; } if (item is IFileCache) { buildResult.TakenNames.Add(asset.Value); buildResult.FilesContent.GetOrAddValueRef(asset.Value) = new Lazy <object>(() => { var res = ((IFileCache)item).ByteContent; ((IFileCache)item).FreeCache(); return(res); }); } else { RecursiveAddFilesContent(item as IDirectoryCache, buildResult, asset.Value); } } }
public BuildResult(MainBuildResult mainBuildResult, ProjectOptions options) { _mainBuildResult = mainBuildResult; BundleJsUrl = _mainBuildResult.AllocateName(options.GetDefaultBundleJsName(), options.Variant != "serviceworker"); }