@remvst/asset-catalog 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -84,6 +84,18 @@ function generateExpandFunction() {
84
84
  generated += '}\n';
85
85
  return generated;
86
86
  }
87
+ function generateResolveFunction() {
88
+ let generated = '\n';
89
+ generated += 'export function resolveFromCatalog<T>(catalog: TextureCatalog<T>, path: string[]): T {\n';
90
+ generated += ' let current = catalog;\n';
91
+ generated += ` for (const component of path) {\n`;
92
+ generated += ` if (!(component in current)) throw new Error('Unresolvable catalog path: ' + path.join('.'));\n`;
93
+ generated += ` current = current[component];\n`;
94
+ generated += ` }\n`;
95
+ generated += ` return current as T;\n`;
96
+ generated += '}\n';
97
+ return generated;
98
+ }
87
99
  async function createSpritesheet(tree, outFile, excludes) {
88
100
  const bins = [];
89
101
  const padding = 1;
@@ -196,11 +208,12 @@ async function main() {
196
208
  width: number;
197
209
  height: number;
198
210
  size: number;
199
- spriteData: SpriteData | null;
211
+ spriteData: SpriteData | null;
200
212
  }\n\n`;
201
213
  generatedFileContent += 'export type TextureCatalog<T> = ' + generatedTemplateInterface(tree, 'TextureCatalog');
202
214
  generatedFileContent += '\n\n';
203
215
  generatedFileContent += generateExpandFunction();
216
+ generatedFileContent += generateResolveFunction();
204
217
  generatedFileContent += await generatedCreateCatalogFunction(argv.assetDir, tree, spritesheet);
205
218
  await fs_1.promises.writeFile(generatedTs, generatedFileContent);
206
219
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remvst/asset-catalog",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "",
5
5
  "bin": {
6
6
  "generate-image-catalog": "./lib/generate-image-catalog.js",
@@ -90,6 +90,19 @@ function generateExpandFunction() {
90
90
  return generated;
91
91
  }
92
92
 
93
+ function generateResolveFunction() {
94
+ let generated = '\n';
95
+ generated += 'export function resolveFromCatalog<T>(catalog: TextureCatalog<T>, path: string[]): T {\n';
96
+ generated += ' let current = catalog;\n';
97
+ generated += ` for (const component of path) {\n`;
98
+ generated += ` if (!(component in current)) throw new Error('Unresolvable catalog path: ' + path.join('.'));\n`;
99
+ generated += ` current = current[component];\n`;
100
+ generated += ` }\n`;
101
+ generated += ` return current as T;\n`;
102
+ generated += '}\n';
103
+ return generated;
104
+ }
105
+
93
106
  async function createSpritesheet(tree: Tree, outFile: string, excludes: string[]): Promise<SpritesheetResult> {
94
107
  const bins: (pack.Bin & {path: string})[] = [];
95
108
 
@@ -217,11 +230,12 @@ async function main() {
217
230
  width: number;
218
231
  height: number;
219
232
  size: number;
220
- spriteData: SpriteData | null;
233
+ spriteData: SpriteData | null;
221
234
  }\n\n`;
222
235
  generatedFileContent += 'export type TextureCatalog<T> = ' + generatedTemplateInterface(tree, 'TextureCatalog');
223
236
  generatedFileContent += '\n\n';
224
237
  generatedFileContent += generateExpandFunction();
238
+ generatedFileContent += generateResolveFunction();
225
239
  generatedFileContent += await generatedCreateCatalogFunction(argv.assetDir, tree, spritesheet);
226
240
 
227
241
  await fs.writeFile(generatedTs, generatedFileContent);