@mxpicture/gcp-functions-tools 0.1.63 → 0.1.65

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.
@@ -1,4 +1,5 @@
1
1
  import { Generator } from "../generator/Generator.js";
2
+ import { DirectoriesParams } from "./Directories.js";
2
3
  export declare const generatorDirPath: string;
3
4
  export interface GeneratorFile {
4
5
  filename: string;
@@ -12,3 +13,4 @@ export declare const readGeneratorFiles: (generateHash?: boolean) => Promise<Gen
12
13
  export declare const readGeneratorFile: (filename: string, generateHash?: boolean) => Promise<GeneratorFile | null>;
13
14
  export declare const createGenerator: (file: GeneratorFile) => Promise<GeneratorEntry | null>;
14
15
  export declare const createGenerators: () => Promise<GeneratorEntry[]>;
16
+ export declare const runGeneration: (params: DirectoriesParams) => Promise<void>;
@@ -3,6 +3,9 @@ import { Generator } from "../generator/Generator.js";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { readdir, readFile } from "node:fs/promises";
5
5
  import { calcHash } from "../meta/meta.common.js";
6
+ import { directories } from "./Directories.js";
7
+ import { createExtractors, extract } from "./Extractor.js";
8
+ import { Barrel } from "./Barrel.js";
6
9
  const __dirname = dirname(fileURLToPath(import.meta.url));
7
10
  export const generatorDirPath = resolve(__dirname, "../generator");
8
11
  const generators = [];
@@ -11,6 +14,7 @@ export const readGeneratorFiles = async (generateHash) => {
11
14
  if (!generatorFiles) {
12
15
  const filenames = (await readdir(generatorDirPath)).filter((filename) => filename !== "Generator.ts" &&
13
16
  filename !== "Generator.js" &&
17
+ !filename.endsWith(".d.ts") &&
14
18
  (filename.endsWith(".ts") || filename.endsWith(".js")));
15
19
  generatorFiles = await Promise.all(filenames.map(async (filename) => {
16
20
  const filePath = join(generatorDirPath, filename);
@@ -43,3 +47,24 @@ export const createGenerators = async () => {
43
47
  const entries = await Promise.all(promises);
44
48
  return entries.filter((entry) => !!entry);
45
49
  };
50
+ export const runGeneration = async (params) => {
51
+ directories.setup(params);
52
+ const templateFilePaths = await directories.templatesPathRead();
53
+ const metadata = extract(createExtractors(templateFilePaths));
54
+ const entries = await createGenerators();
55
+ console.log("using:");
56
+ const promises = [];
57
+ for (const { gen } of entries) {
58
+ const barrel = Barrel.instance(gen.targetType);
59
+ console.log(` - ${gen.type} (${gen.ext})`);
60
+ const files = gen.run(metadata);
61
+ barrel.add(...files.map((file) => file.targetFilePath));
62
+ promises.push(Generator.write(files));
63
+ }
64
+ for (const barrel of Barrel.instances) {
65
+ const barrelFiles = barrel.create();
66
+ promises.push(barrel.write(barrelFiles));
67
+ promises.push(barrel.ensurePackageBarrels(barrelFiles));
68
+ }
69
+ await Promise.all(promises);
70
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxpicture/gcp-functions-tools",
3
- "version": "0.1.63",
3
+ "version": "0.1.65",
4
4
  "description": "Tools for google cloud functions",
5
5
  "type": "module",
6
6
  "author": "MXPicture",