bingo-stratum 0.5.7 → 0.5.8
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.
- package/lib/mergers/mergeAddonsIfUpdated.d.ts.map +1 -1
- package/lib/mergers/mergeAddonsIfUpdated.js +24 -0
- package/lib/mergers/mergeAddonsIfUpdated.js.map +1 -1
- package/lib/mergers/mergeAddonsIfUpdated.test.js +5 -0
- package/lib/mergers/mergeAddonsIfUpdated.test.js.map +1 -1
- package/lib/producers/produceBlock.d.ts +6 -3
- package/lib/producers/produceBlock.d.ts.map +1 -1
- package/lib/producers/produceBlock.js +1 -1
- package/lib/producers/produceBlock.js.map +1 -1
- package/lib/producers/produceBlock.test.d.ts +2 -0
- package/lib/producers/produceBlock.test.d.ts.map +1 -0
- package/lib/producers/produceBlock.test.js +83 -0
- package/lib/producers/produceBlock.test.js.map +1 -0
- package/lib/producers/produceBlocks.d.ts +4 -2
- package/lib/producers/produceBlocks.d.ts.map +1 -1
- package/lib/producers/produceBlocks.js +31 -10
- package/lib/producers/produceBlocks.js.map +1 -1
- package/lib/producers/produceBlocks.test.js +72 -2
- package/lib/producers/produceBlocks.test.js.map +1 -1
- package/lib/producers/producePreset.d.ts +6 -1
- package/lib/producers/producePreset.d.ts.map +1 -1
- package/lib/producers/producePreset.js +3 -2
- package/lib/producers/producePreset.js.map +1 -1
- package/lib/producers/produceStratumTemplate.d.ts +3 -1
- package/lib/producers/produceStratumTemplate.d.ts.map +1 -1
- package/lib/producers/produceStratumTemplate.js +3 -2
- package/lib/producers/produceStratumTemplate.js.map +1 -1
- package/lib/runners/runPreset.d.ts +7 -1
- package/lib/runners/runPreset.d.ts.map +1 -1
- package/lib/runners/runPreset.js.map +1 -1
- package/lib/types/blocks.d.ts +169 -5
- package/lib/types/blocks.d.ts.map +1 -1
- package/lib/types/creations.d.ts +5 -0
- package/lib/types/creations.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAddonsIfUpdated.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACpD,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,CAAC,GACV,KAAK,GAAG,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"mergeAddonsIfUpdated.d.ts","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACpD,cAAc,EAAE,CAAC,EACjB,SAAS,EAAE,CAAC,GACV,KAAK,GAAG,CAAC,GAAG,SAAS,CAwEvB"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import hashObject from "hash-object";
|
|
2
2
|
export function mergeAddonsIfUpdated(existingAddons, newAddons) {
|
|
3
|
+
if (Array.isArray(existingAddons)) {
|
|
4
|
+
if (!Array.isArray(newAddons)) {
|
|
5
|
+
return new Error("Mismatched merging addons (Array.isArray).");
|
|
6
|
+
}
|
|
7
|
+
return mergeAddonsArraysIfUpdated(existingAddons, newAddons);
|
|
8
|
+
}
|
|
9
|
+
else if (Array.isArray(newAddons)) {
|
|
10
|
+
return new Error("Mismatched merging addons (Array.isArray).");
|
|
11
|
+
}
|
|
3
12
|
const newEntries = Object.entries(newAddons);
|
|
4
13
|
const result = { ...existingAddons };
|
|
5
14
|
let updated = newEntries.length !== Object.keys(existingAddons).length;
|
|
@@ -52,4 +61,19 @@ function createHash(value) {
|
|
|
52
61
|
? hashObject(value)
|
|
53
62
|
: String(value);
|
|
54
63
|
}
|
|
64
|
+
function mergeAddonsArraysIfUpdated(existingAddons, newAddons) {
|
|
65
|
+
const result = [...existingAddons];
|
|
66
|
+
const hashes = new Set(existingAddons.map(createHash));
|
|
67
|
+
let updated = false;
|
|
68
|
+
for (const newAddon of newAddons) {
|
|
69
|
+
const newHash = createHash(newAddon);
|
|
70
|
+
if (hashes.has(newHash)) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
hashes.add(newHash);
|
|
74
|
+
result.push(newAddon);
|
|
75
|
+
updated = true;
|
|
76
|
+
}
|
|
77
|
+
return updated ? result : undefined;
|
|
78
|
+
}
|
|
55
79
|
//# sourceMappingURL=mergeAddonsIfUpdated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAddonsIfUpdated.js","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,oBAAoB,CACnC,cAAiB,EACjB,SAAY;IAEZ,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAyB,CAAC;IACrE,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;IAEvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC7C,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,GAAG,KAAmB,CAAC;YAClC,SAAS;QACV,CAAC;QAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,SAAS;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAClC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAC7C,CAAC;YAEF,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;gBAChC,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC7C,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACvC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC7B,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;YACF,CAAC;YAED,SAAS;QACV,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,IAAI,WAAW,EAAE,CAAC;gBACjB,IAAI,WAAW,YAAY,KAAK,EAAE,CAAC;oBAClC,OAAO,WAAW,CAAC;gBACpB,CAAC;gBAED,MAAM,CAAC,GAAG,CAAC,GAAG,WAAyB,CAAC;gBACxC,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;YAED,SAAS;QACV,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,KAAK,CACf,8BAA8B,MAAM,CAAC,GAAG,CAAW,QAAQ,KAAe,IAAI,CAC9E,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC/B,CAAC,CAAC,UAAU,CAAC,KAAgC,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,KAAqD,CAAC,CAAC;AAClE,CAAC"}
|
|
1
|
+
{"version":3,"file":"mergeAddonsIfUpdated.js","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@ import { mergeAddonsIfUpdated } from "./mergeAddonsIfUpdated.js";
|
|
|
3
3
|
describe("mergeArgsIfUpdated", () => {
|
|
4
4
|
it.each([
|
|
5
5
|
[{}, {}, undefined],
|
|
6
|
+
[[], [], undefined],
|
|
7
|
+
[[], {}, new Error("Mismatched merging addons (Array.isArray).")],
|
|
8
|
+
[{}, [], new Error("Mismatched merging addons (Array.isArray).")],
|
|
9
|
+
[["a"], ["a"], undefined],
|
|
10
|
+
[["a"], ["b"], ["a", "b"]],
|
|
6
11
|
[{ a: true }, {}, { a: true }],
|
|
7
12
|
[{ a: true }, { a: null }, undefined],
|
|
8
13
|
[{ a: true }, { a: true }, undefined],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeAddonsIfUpdated.test.js","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,IAAI,CAAC;QACP,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC;QACnB,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;QACrC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC;QACrC;YACC,EAAE,CAAC,EAAE,IAAI,EAAE;YACX,EAAE,CAAC,EAAE,KAAK,EAAE;YACZ,IAAI,KAAK,CAAC,6CAA6C,CAAC;SACxD;QACD;YACC,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,EAAE,CAAC,EAAE,KAAK,EAAE;YACZ,IAAI,KAAK,CAAC,4CAA4C,CAAC;SACvD;QACD;YACC,EAAE,CAAC,EAAE,EAAE,EAAE;YACT,EAAE,CAAC,EAAE,KAAK,EAAE;YACZ,IAAI,KAAK,CAAC,4CAA4C,CAAC;SACvD;QACD,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QAChD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAC1B,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACxC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAC1B,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnD,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC;QACzC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC;QACrD;YACC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YACnB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,6CAA6C,CAAC;SACxD;QACD,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC;QACzD,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3E,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;QAC7D;YACC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;YACzC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;YACzC,SAAS;SACT;KACD,CAAC,CAAC,mCAAmC,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC3E,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mergeAddonsIfUpdated.test.js","sourceRoot":"","sources":["../../src/mergers/mergeAddonsIfUpdated.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,18 +3,21 @@ import { BlockWithAddons, BlockWithoutAddons } from "../types/blocks.js";
|
|
|
3
3
|
import { BlockCreation } from "../types/creations.js";
|
|
4
4
|
/**
|
|
5
5
|
* Settings to run a Block with {@link produceBlock} that might have addons.
|
|
6
|
-
* @template Addons
|
|
6
|
+
* @template Addons Block-specific extensions, if defined by the Block's schema.
|
|
7
7
|
* @template Options Options values as described by the Block's Base's options schema, as well as preset.
|
|
8
8
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
|
|
9
9
|
*/
|
|
10
10
|
export type ProduceBlockSettings<Addons extends object | undefined, Options extends object> = Addons extends object ? ProduceBlockSettingsWithAddons<Addons, Options> : ProduceBlockSettingsWithoutAddons<Options>;
|
|
11
11
|
/**
|
|
12
12
|
* Settings to run a Block with {@link produceBlock} that defines addons.
|
|
13
|
-
* @template Addons
|
|
13
|
+
* @template Addons Block-specific extensions as defined by the Block's schema.
|
|
14
14
|
* @template Options Options values as described by the Block's Base's options schema, as well as preset.
|
|
15
15
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
|
|
16
16
|
*/
|
|
17
17
|
export interface ProduceBlockSettingsWithAddons<Addons extends object, Options extends object> extends ProduceBlockSettingsWithoutAddons<Options> {
|
|
18
|
+
/**
|
|
19
|
+
* Addon values to provide to the Block.
|
|
20
|
+
*/
|
|
18
21
|
addons?: Addons;
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
@@ -29,7 +32,7 @@ export interface ProduceBlockSettingsWithoutAddons<Options extends object> {
|
|
|
29
32
|
}
|
|
30
33
|
/**
|
|
31
34
|
* Produces a single Block that defines addons.
|
|
32
|
-
* @template Addons
|
|
35
|
+
* @template Addons Block-specific extensions, if defined by the Block's schema.
|
|
33
36
|
* @template Options Options values as described by the Block's Base's options schema, as well as preset.
|
|
34
37
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
|
|
35
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceBlock.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAC/B,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,OAAO,SAAS,MAAM,IACnB,MAAM,SAAS,MAAM,GACtB,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,iCAAiC,CAAC,OAAO,CAAC,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,8BAA8B,CAC9C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CACrB,SAAQ,iCAAiC,CAAC,OAAO,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,iCAAiC,CAAC,OAAO,SAAS,MAAM;IACxE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACzE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GACvD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"produceBlock.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAC/B,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,OAAO,SAAS,MAAM,IACnB,MAAM,SAAS,MAAM,GACtB,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,iCAAiC,CAAC,OAAO,CAAC,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,8BAA8B,CAC9C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CACrB,SAAQ,iCAAiC,CAAC,OAAO,CAAC;IACnD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,iCAAiC,CAAC,OAAO,SAAS,MAAM;IACxE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACzE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GACvD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAEnC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,EAClD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,QAAQ,EAAE,iCAAiC,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
|
|
2
2
|
/**
|
|
3
3
|
* Produces a single Block.
|
|
4
|
-
* @template Addons
|
|
4
|
+
* @template Addons Block-specific extensions, if defined by the Block's schema.
|
|
5
5
|
* @template Options Options values as described by the Block's Base's options schema, as well as preset.
|
|
6
6
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceBlock.js","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"produceBlock.js","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAkExE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAI3B,KAAqE,EACrE,QAA+C;IAE/C,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,OAAO,CAAC;YACzB,MAAM,EAAE,EAAY;YACpB,GAAG,QAAQ;SACX,CAAC,CAAC;QACH,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produceBlock.test.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlock.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { createBase } from "../creators/createBase.js";
|
|
4
|
+
import { produceBlock } from "./produceBlock.js";
|
|
5
|
+
const base = createBase({
|
|
6
|
+
options: {
|
|
7
|
+
value: z.string(),
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
const options = {
|
|
11
|
+
value: "Hello, world!",
|
|
12
|
+
};
|
|
13
|
+
describe("produceBlock", () => {
|
|
14
|
+
it("returns the creation when no Addons or mode are defined", () => {
|
|
15
|
+
const block = base.createBlock({
|
|
16
|
+
produce({ options }) {
|
|
17
|
+
return {
|
|
18
|
+
files: { "README.md": options.value },
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
const actual = produceBlock(block, { options });
|
|
23
|
+
expect(actual).toEqual({
|
|
24
|
+
files: {
|
|
25
|
+
"README.md": "Hello, world!",
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
it("passes Addons to the Block when addons is defined", () => {
|
|
30
|
+
const block = base.createBlock({
|
|
31
|
+
addons: {
|
|
32
|
+
extra: z.record(z.string()).optional(),
|
|
33
|
+
},
|
|
34
|
+
produce({ addons, options }) {
|
|
35
|
+
return {
|
|
36
|
+
files: {
|
|
37
|
+
"README.md": options.value,
|
|
38
|
+
...addons.extra,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const actual = produceBlock(block, {
|
|
44
|
+
addons: {
|
|
45
|
+
extra: {
|
|
46
|
+
"a.txt": "a",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
options,
|
|
50
|
+
});
|
|
51
|
+
expect(actual).toEqual({
|
|
52
|
+
files: {
|
|
53
|
+
"a.txt": "a",
|
|
54
|
+
"README.md": "Hello, world!",
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
it("augments the creation when mode is provided and the Block has that mode-specific producer", () => {
|
|
59
|
+
const block = base.createBlock({
|
|
60
|
+
produce({ options }) {
|
|
61
|
+
return {
|
|
62
|
+
files: { "README.md": options.value },
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
setup() {
|
|
66
|
+
return {
|
|
67
|
+
files: { "extra.txt": "setup" },
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
const actual = produceBlock(block, {
|
|
72
|
+
mode: "setup",
|
|
73
|
+
options,
|
|
74
|
+
});
|
|
75
|
+
expect(actual).toEqual({
|
|
76
|
+
files: {
|
|
77
|
+
"extra.txt": "setup",
|
|
78
|
+
"README.md": "Hello, world!",
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=produceBlock.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produceBlock.test.js","sourceRoot":"","sources":["../../src/producers/produceBlock.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB;CACD,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG;IACf,KAAK,EAAE,eAAe;CACtB,CAAC;AAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,OAAO,CAAC,EAAE,OAAO,EAAE;gBAClB,OAAO;oBACN,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE;iBACrC,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACtB,KAAK,EAAE;gBACN,WAAW,EAAE,eAAe;aAC5B;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,MAAM,EAAE;gBACP,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;aACtC;YACD,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;gBAC1B,OAAO;oBACN,KAAK,EAAE;wBACN,WAAW,EAAE,OAAO,CAAC,KAAK;wBAC1B,GAAG,MAAM,CAAC,KAAK;qBACf;iBACD,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE;YAClC,MAAM,EAAE;gBACP,KAAK,EAAE;oBACN,OAAO,EAAE,GAAG;iBACZ;aACD;YACD,OAAO;SACP,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACtB,KAAK,EAAE;gBACN,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,eAAe;aAC5B;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;QACpG,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,OAAO,CAAC,EAAE,OAAO,EAAE;gBAClB,OAAO;oBACN,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE;iBACrC,CAAC;YACH,CAAC;YACD,KAAK;gBACJ,OAAO;oBACN,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;iBAC/B,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE;YAClC,IAAI,EAAE,OAAO;YACb,OAAO;SACP,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACtB,KAAK,EAAE;gBACN,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,eAAe;aAC5B;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { ProductionMode } from "bingo";
|
|
2
|
+
import { IntakeDirectory } from "bingo-fs";
|
|
2
3
|
import { Block } from "../types/blocks.js";
|
|
3
4
|
import { CreatedBlockAddons } from "../types/creations.js";
|
|
4
5
|
export interface ProduceBlocksSettings<Options extends object> {
|
|
5
|
-
|
|
6
|
+
blockAddons?: CreatedBlockAddons<object, Options>[];
|
|
7
|
+
files?: IntakeDirectory;
|
|
6
8
|
mode?: ProductionMode;
|
|
7
9
|
offline?: boolean;
|
|
8
10
|
options: Options;
|
|
9
11
|
}
|
|
10
|
-
export declare function produceBlocks<Options extends object>(blocks: Block<object | undefined, Options>[], {
|
|
12
|
+
export declare function produceBlocks<Options extends object>(blocks: Block<object | undefined, Options>[], { blockAddons, files, mode, offline, options, }: ProduceBlocksSettings<Options>): {};
|
|
11
13
|
//# sourceMappingURL=produceBlocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceBlocks.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"produceBlocks.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,KAAK,EAAmB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAO3D,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM;IAC5D,WAAW,CAAC,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpD,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAS,MAAM,EACnD,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EAC5C,EACC,WAAW,EACX,KAAU,EACV,IAAI,EACJ,OAAO,EACP,OAAO,GACP,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAoFjC"}
|
|
@@ -1,19 +1,37 @@
|
|
|
1
1
|
import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
|
|
2
2
|
import { getUpdatedBlockAddons, } from "./getUpdatedBlockAddons.js";
|
|
3
3
|
import { produceBlock } from "./produceBlock.js";
|
|
4
|
-
export function produceBlocks(blocks, {
|
|
4
|
+
export function produceBlocks(blocks, { blockAddons, files = {}, mode, offline, options, }) {
|
|
5
5
|
// From Templating Engines > Stratum > Details > Execution:
|
|
6
6
|
// This engine continuously re-runs Blocks until no new Addons are provided.
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
// Collect all Blocks defined in the Preset, along with their Addons:
|
|
8
|
+
const blockProductions = new Map();
|
|
9
|
+
// 1.1. Run any intake methods to generate default Addons values
|
|
10
|
+
for (const block of blocks) {
|
|
11
|
+
if (isBlockWithAddons(block) && block.intake) {
|
|
12
|
+
blockProductions.set(block, {
|
|
13
|
+
addons: block.intake({ files }),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
// 2.2. Apply all provided refinements on top of those
|
|
18
|
+
for (const { addons, block } of blockAddons ?? []) {
|
|
19
|
+
blockProductions.set(block, {
|
|
20
|
+
addons: {
|
|
21
|
+
...blockProductions.get(block)?.addons,
|
|
22
|
+
...addons,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
// 2. Create a queue of Blocks to be run, starting with all defined in the Preset
|
|
9
27
|
const allowedBlocks = new Set(blocks);
|
|
10
28
|
const blocksToBeRun = new Set(blocks);
|
|
11
|
-
//
|
|
29
|
+
// 3. For each Block in the queue:
|
|
12
30
|
while (blocksToBeRun.size) {
|
|
13
31
|
for (const currentBlock of blocksToBeRun) {
|
|
14
32
|
blocksToBeRun.delete(currentBlock);
|
|
15
|
-
//
|
|
16
|
-
//
|
|
33
|
+
// 3.1. Get the Creation from the Block, passing any current known Addons
|
|
34
|
+
// 3.2. If a mode is specified, additionally generate the appropriate Block Creations
|
|
17
35
|
const previousProduction = blockProductions.get(currentBlock);
|
|
18
36
|
const previousAddons = previousProduction?.addons ?? {};
|
|
19
37
|
const blockCreation = produceBlock(currentBlock, {
|
|
@@ -22,14 +40,14 @@ export function produceBlocks(blocks, { addons, mode, offline, options }) {
|
|
|
22
40
|
offline,
|
|
23
41
|
options,
|
|
24
42
|
});
|
|
25
|
-
//
|
|
43
|
+
// 3.3. Store that Block's Creation
|
|
26
44
|
blockProductions.set(currentBlock, {
|
|
27
45
|
addons: previousAddons,
|
|
28
46
|
creation: blockCreation,
|
|
29
47
|
});
|
|
30
|
-
//
|
|
48
|
+
// 3.4. If the Block specified new addons for any defined Blocks:
|
|
31
49
|
const updatedBlockAddons = getUpdatedBlockAddons(allowedBlocks, blockProductions, blockCreation.addons);
|
|
32
|
-
//
|
|
50
|
+
// 3.4.1: Add those Blocks to the queue to re-run
|
|
33
51
|
for (const [updatedBlock, updatedAddons] of updatedBlockAddons) {
|
|
34
52
|
const addedBlockPreviousProduction = blockProductions.get(updatedBlock);
|
|
35
53
|
blockProductions.set(updatedBlock, {
|
|
@@ -40,7 +58,10 @@ export function produceBlocks(blocks, { addons, mode, offline, options }) {
|
|
|
40
58
|
}
|
|
41
59
|
}
|
|
42
60
|
}
|
|
43
|
-
//
|
|
61
|
+
// 4. Merge all Block Creations together
|
|
44
62
|
return Array.from(blockProductions.values()).reduce((created, next) => mergeBlockCreations(created, next.creation ?? {}), {});
|
|
45
63
|
}
|
|
64
|
+
function isBlockWithAddons(block) {
|
|
65
|
+
return !!("addons" in block);
|
|
66
|
+
}
|
|
46
67
|
//# sourceMappingURL=produceBlocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceBlocks.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"produceBlocks.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ describe("produceBlocks", () => {
|
|
|
28
28
|
},
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
|
-
it("adds addons when provided", () => {
|
|
31
|
+
it("adds addons when provided only under blockAddons", () => {
|
|
32
32
|
const block = base.createBlock({
|
|
33
33
|
about: {
|
|
34
34
|
name: "Example Block",
|
|
@@ -43,7 +43,7 @@ describe("produceBlocks", () => {
|
|
|
43
43
|
},
|
|
44
44
|
});
|
|
45
45
|
const result = produceBlocks([block], {
|
|
46
|
-
|
|
46
|
+
blockAddons: [block({ extra: "line" })],
|
|
47
47
|
options: { value: "Hello, world!" },
|
|
48
48
|
});
|
|
49
49
|
expect(result).toEqual({
|
|
@@ -52,6 +52,76 @@ describe("produceBlocks", () => {
|
|
|
52
52
|
},
|
|
53
53
|
});
|
|
54
54
|
});
|
|
55
|
+
it("adds addons when provided only via Block intake", () => {
|
|
56
|
+
const block = base.createBlock({
|
|
57
|
+
about: {
|
|
58
|
+
name: "Example Block",
|
|
59
|
+
},
|
|
60
|
+
addons: {
|
|
61
|
+
extra: z.string().optional(),
|
|
62
|
+
},
|
|
63
|
+
intake({ files }) {
|
|
64
|
+
return {
|
|
65
|
+
extra: files["README.md"][0].split("\n").at(-1),
|
|
66
|
+
};
|
|
67
|
+
},
|
|
68
|
+
produce({ addons, options }) {
|
|
69
|
+
return {
|
|
70
|
+
files: { "README.md": [options.value, addons.extra].join("\n") },
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
const result = produceBlocks([block], {
|
|
75
|
+
files: {
|
|
76
|
+
"README.md": ["Before\nline"],
|
|
77
|
+
},
|
|
78
|
+
options: { value: "Hello, world!" },
|
|
79
|
+
});
|
|
80
|
+
expect(result).toEqual({
|
|
81
|
+
files: {
|
|
82
|
+
"README.md": "Hello, world!\nline",
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
it("adds merges addons when provided by Block intake and blockAddons", () => {
|
|
87
|
+
const block = base.createBlock({
|
|
88
|
+
about: {
|
|
89
|
+
name: "Example Block",
|
|
90
|
+
},
|
|
91
|
+
addons: {
|
|
92
|
+
a: z.string().optional(),
|
|
93
|
+
b: z.string().optional(),
|
|
94
|
+
c: z.string().optional(),
|
|
95
|
+
},
|
|
96
|
+
intake() {
|
|
97
|
+
return {
|
|
98
|
+
a: "intake",
|
|
99
|
+
b: "intake",
|
|
100
|
+
};
|
|
101
|
+
},
|
|
102
|
+
produce({ addons, options }) {
|
|
103
|
+
return {
|
|
104
|
+
files: {
|
|
105
|
+
"README.md": [options.value, addons.a, addons.b, addons.c].join("\n"),
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
const result = produceBlocks([block], {
|
|
111
|
+
blockAddons: [
|
|
112
|
+
block({
|
|
113
|
+
b: "provided",
|
|
114
|
+
c: "provided",
|
|
115
|
+
}),
|
|
116
|
+
],
|
|
117
|
+
options: { value: "Hello, world!" },
|
|
118
|
+
});
|
|
119
|
+
expect(result).toEqual({
|
|
120
|
+
files: {
|
|
121
|
+
"README.md": "Hello, world!\nintake\nprovided\nprovided",
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
});
|
|
55
125
|
it("doesn't include addons to blocks that aren't defined", () => {
|
|
56
126
|
const blockKnown = base.createBlock({
|
|
57
127
|
about: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceBlocks.test.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"produceBlocks.test.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnyShape, InferredObject, ProduceTemplateSettings } from "bingo";
|
|
2
|
+
import { IntakeDirectory } from "bingo-fs";
|
|
2
3
|
import { BlockCreation } from "../types/creations.js";
|
|
3
4
|
import { Preset } from "../types/presets.js";
|
|
4
5
|
import { StratumRefinements } from "../types/refinements.js";
|
|
@@ -9,6 +10,10 @@ import { StratumTemplate } from "../types/templates.js";
|
|
|
9
10
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
|
|
10
11
|
*/
|
|
11
12
|
export interface ProducePresetSettings<OptionsShape extends AnyShape> extends ProduceTemplateSettings<OptionsShape, StratumRefinements<InferredObject<OptionsShape>>> {
|
|
13
|
+
/**
|
|
14
|
+
* Existing file creations to be used for Blocks that can intake Addons.
|
|
15
|
+
*/
|
|
16
|
+
files?: IntakeDirectory;
|
|
12
17
|
/**
|
|
13
18
|
* Any optional Stratum customizations.
|
|
14
19
|
* @see {@link https://create.bingo/engines/stratum/details/configurations#refinements}
|
|
@@ -24,5 +29,5 @@ export interface ProducePresetSettings<OptionsShape extends AnyShape> extends Pr
|
|
|
24
29
|
* @template OptionsShape Schemas of options defined by the Preset's Base.
|
|
25
30
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
|
|
26
31
|
*/
|
|
27
|
-
export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { mode, offline, options, refinements, template, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
|
|
32
|
+
export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { files, mode, offline, options, refinements, template, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
|
|
28
33
|
//# sourceMappingURL=producePreset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producePreset.d.ts","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"producePreset.d.ts","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB,CAAC,YAAY,SAAS,QAAQ,CACnE,SAAQ,uBAAuB,CAC9B,YAAY,EACZ,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,SAAS,QAAQ,EAC1D,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAC5B,EACC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,EAChB,QAAQ,GACR,EAAE,qBAAqB,CAAC,YAAY,CAAC,GACpC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAwB7C"}
|
|
@@ -5,10 +5,11 @@ import { produceBlocks } from "./produceBlocks.js";
|
|
|
5
5
|
* @template OptionsShape Schemas of options defined by the Preset's Base.
|
|
6
6
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
|
|
7
7
|
*/
|
|
8
|
-
export function producePreset(preset, { mode, offline, options, refinements = {}, template, }) {
|
|
8
|
+
export function producePreset(preset, { files, mode, offline, options, refinements = {}, template, }) {
|
|
9
9
|
const blocks = applyBlockRefinements(template?.blocks ?? preset.blocks, preset.blocks, options, refinements.blocks);
|
|
10
10
|
const creation = produceBlocks(blocks, {
|
|
11
|
-
|
|
11
|
+
blockAddons: refinements.addons,
|
|
12
|
+
files,
|
|
12
13
|
mode,
|
|
13
14
|
offline,
|
|
14
15
|
options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"producePreset.js","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"producePreset.js","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA6BnD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC5B,MAA4B,EAC5B,EACC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,QAAQ,GAC6B;IAEtC,MAAM,MAAM,GAAG,qBAAqB,CACnC,QAAQ,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,EACjC,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE;QACtC,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;IAEH,OAAO;QACN,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,GAAG,QAAQ;KACX,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { AnyShape, InferredObject, ProductionMode } from "bingo";
|
|
2
|
+
import { IntakeDirectory } from "bingo-fs";
|
|
2
3
|
import { StratumRefinements } from "../types/refinements.js";
|
|
3
4
|
import { StratumTemplate } from "../types/templates.js";
|
|
4
5
|
export interface ProduceStratumTemplateSettings<OptionsShape extends AnyShape> {
|
|
6
|
+
files?: IntakeDirectory;
|
|
5
7
|
mode?: ProductionMode;
|
|
6
8
|
offline?: boolean;
|
|
7
9
|
options: InferredObject<OptionsShape> & {
|
|
@@ -9,5 +11,5 @@ export interface ProduceStratumTemplateSettings<OptionsShape extends AnyShape> {
|
|
|
9
11
|
};
|
|
10
12
|
refinements?: StratumRefinements<InferredObject<OptionsShape>>;
|
|
11
13
|
}
|
|
12
|
-
export declare function produceStratumTemplate<OptionsShape extends AnyShape = AnyShape>(template: StratumTemplate<OptionsShape>, { mode, offline, options, refinements, }: ProduceStratumTemplateSettings<OptionsShape>): {};
|
|
14
|
+
export declare function produceStratumTemplate<OptionsShape extends AnyShape = AnyShape>(template: StratumTemplate<OptionsShape>, { files, mode, offline, options, refinements, }: ProduceStratumTemplateSettings<OptionsShape>): {};
|
|
13
15
|
//# sourceMappingURL=produceStratumTemplate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"produceStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,8BAA8B,CAAC,YAAY,SAAS,QAAQ;IAC5E,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC/D;AAED,wBAAgB,sBAAsB,CACrC,YAAY,SAAS,QAAQ,GAAG,QAAQ,EAExC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,EACvC,EACC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,GAChB,EAAE,8BAA8B,CAAC,YAAY,CAAC,MAqB/C"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { getPresetByName } from "../utils/getPresetByName.js";
|
|
2
2
|
import { applyBlockRefinements } from "./applyBlockRefinements.js";
|
|
3
3
|
import { produceBlocks } from "./produceBlocks.js";
|
|
4
|
-
export function produceStratumTemplate(template, { mode, offline, options, refinements = {}, }) {
|
|
4
|
+
export function produceStratumTemplate(template, { files, mode, offline, options, refinements = {}, }) {
|
|
5
5
|
const preset = getPresetByName(template.presets, options.preset);
|
|
6
6
|
if (preset instanceof Error) {
|
|
7
7
|
throw preset;
|
|
8
8
|
}
|
|
9
9
|
const blocks = applyBlockRefinements(template.blocks, preset.blocks, options, refinements.blocks);
|
|
10
10
|
return produceBlocks(blocks, {
|
|
11
|
-
|
|
11
|
+
blockAddons: refinements.addons,
|
|
12
|
+
files,
|
|
12
13
|
mode,
|
|
13
14
|
offline,
|
|
14
15
|
options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,MAAM,UAAU,sBAAsB,CAGrC,QAAuC,EACvC,EACC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,GAC8B;IAE/C,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CACnC,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,EAAE;QAC5B,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { AnyShape, InferredObject, RunTemplateSettings } from "bingo";
|
|
2
|
+
import { IntakeDirectory } from "bingo-fs";
|
|
2
3
|
import { BlockCreation } from "../types/creations.js";
|
|
3
4
|
import { Preset } from "../types/presets.js";
|
|
4
5
|
import { StratumRefinements } from "../types/refinements.js";
|
|
5
|
-
export
|
|
6
|
+
export interface RunPresetSettings<OptionsShape extends AnyShape> extends RunTemplateSettings<OptionsShape, StratumRefinements<InferredObject<OptionsShape>>> {
|
|
7
|
+
/**
|
|
8
|
+
* Existing file creations to be used for Blocks that can intake Addons.
|
|
9
|
+
*/
|
|
10
|
+
files?: IntakeDirectory;
|
|
11
|
+
}
|
|
6
12
|
/**
|
|
7
13
|
* Generates and applies the Blocks in a Preset.
|
|
8
14
|
* @template OptionsShape Schemas of options the Preset's Base takes in.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runPreset.d.ts","sourceRoot":"","sources":["../../src/runners/runPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EAER,cAAc,EAEd,mBAAmB,EACnB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"runPreset.d.ts","sourceRoot":"","sources":["../../src/runners/runPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EAER,cAAc,EAEd,mBAAmB,EACnB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,iBAAiB,CAAC,YAAY,SAAS,QAAQ,CAC/D,SAAQ,mBAAmB,CAC1B,YAAY,EACZ,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,YAAY,SAAS,QAAQ,EAC5D,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAC5B,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAStD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runPreset.js","sourceRoot":"","sources":["../../src/runners/runPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,2BAA2B,EAE3B,WAAW,GAEX,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"runPreset.js","sourceRoot":"","sources":["../../src/runners/runPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,2BAA2B,EAE3B,WAAW,GAEX,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAgB9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC9B,MAA4B,EAC5B,QAAyC;IAEzC,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjD,OAAO,QAAQ,CAAC;AACjB,CAAC"}
|
package/lib/types/blocks.d.ts
CHANGED
|
@@ -1,50 +1,214 @@
|
|
|
1
1
|
import { AboutBase, AnyOptionalShape, InferredObject } from "bingo";
|
|
2
|
+
import { IntakeDirectory } from "bingo-fs";
|
|
2
3
|
import { BlockCreation, CreatedBlockAddons } from "./creations.js";
|
|
3
4
|
import { StratumTemplateOptions } from "./templates.js";
|
|
5
|
+
/**
|
|
6
|
+
* Logic to create one portion of a repository.
|
|
7
|
+
* @template Addons Block-specific extensions, if defined by the Block's schema.
|
|
8
|
+
* @template Options Options values as described by the Base's options schema.
|
|
9
|
+
*/
|
|
4
10
|
export type Block<Addons extends object | undefined = object | undefined, Options extends object = object> = Addons extends object ? BlockWithAddons<Addons, Options> : BlockWithoutAddons<Options>;
|
|
11
|
+
/**
|
|
12
|
+
* Augments additional creations into a production from a Block with addons.
|
|
13
|
+
* @param context Shared Block helper functions and information.
|
|
14
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
15
|
+
* @template Options Options values as described by the Base's options schema.
|
|
16
|
+
*/
|
|
5
17
|
export type BlockAugmentWithAddons<Addons extends object, Options extends object> = (context: BlockContextWithAddons<Addons, Options>) => Partial<BlockCreation<Options>>;
|
|
18
|
+
/**
|
|
19
|
+
* Augments additional creations into a production from a Block without addons.
|
|
20
|
+
* @param context Shared Block helper functions and information.
|
|
21
|
+
* @template Options Options values as described by the Base's options schema.
|
|
22
|
+
*/
|
|
6
23
|
export type BlockAugmentWithoutAddons<Options extends object> = (context: BlockContextWithoutAddons<Options>) => Partial<BlockCreation<Options>>;
|
|
7
24
|
export interface BlockBase {
|
|
25
|
+
/**
|
|
26
|
+
* Metadata about the Block that can be used by tooling to describe it.
|
|
27
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-about}
|
|
28
|
+
*/
|
|
8
29
|
about?: AboutBase;
|
|
9
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Shared helper functions and information passed to producers of Blocks with required Addons.
|
|
33
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
34
|
+
* @template Options Options values as described by the Base's options schema.
|
|
35
|
+
*/
|
|
10
36
|
export interface BlockContextWithAddons<Addons extends object, Options extends object> extends BlockContextWithoutAddons<Options> {
|
|
11
37
|
addons: Addons;
|
|
12
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Shared helper functions and information passed to Block intake()s.
|
|
41
|
+
*/
|
|
42
|
+
export interface BlockIntakeContext {
|
|
43
|
+
/**
|
|
44
|
+
* Any existing files on disk.
|
|
45
|
+
*/
|
|
46
|
+
files: IntakeDirectory;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Shared helper functions and information passed to producers of Blocks with optional Addons.
|
|
50
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
51
|
+
* @template Options Options values as described by the Base's options schema.
|
|
52
|
+
*/
|
|
13
53
|
export interface BlockContextWithOptionalAddons<Addons extends object, Options extends object> extends BlockContextWithoutAddons<Options> {
|
|
14
54
|
addons?: Addons;
|
|
15
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Shared helper functions and information passed to producers of Blocks without Addons.
|
|
58
|
+
* @template Options Options values as described by the Base's options schema.
|
|
59
|
+
*/
|
|
16
60
|
export interface BlockContextWithoutAddons<Options extends object> {
|
|
17
61
|
offline?: boolean;
|
|
18
62
|
options: Options & StratumTemplateOptions;
|
|
19
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Definition for creating a new Block that may have Addons.
|
|
66
|
+
* @template AddonsShape Schema of Addons the Block takes in, if defined.
|
|
67
|
+
* @template Options Options values as described by the Base's options schema.
|
|
68
|
+
*/
|
|
20
69
|
export type BlockDefinition<AddonsShape extends AnyOptionalShape | undefined, Options extends object> = AddonsShape extends object ? BlockDefinitionWithAddons<AddonsShape, Options> : BlockDefinitionWithoutAddons<Options>;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
70
|
+
/**
|
|
71
|
+
* Generates the creations describing a portion of a repository from a Block with Addons.
|
|
72
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
73
|
+
* @template Options Options values as described by the Base's options schema.
|
|
74
|
+
*/
|
|
24
75
|
export type BlockDefinitionProducerWithAddons<Addons extends object, Options extends object> = (context: BlockContextWithAddons<Addons, Options>) => Partial<BlockCreation<Options>>;
|
|
76
|
+
/**
|
|
77
|
+
* Generates the creations describing a portion of a repository from a Block without Addons.
|
|
78
|
+
* @template Options Options values as described by the Base's options schema.
|
|
79
|
+
*/
|
|
25
80
|
export type BlockDefinitionProducerWithoutAddons<Options extends object> = (context: BlockContextWithoutAddons<Options>) => Partial<BlockCreation<Options>>;
|
|
26
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Definition for creating a new Block with Addons.
|
|
83
|
+
* @template AddonsShape Schema of Addons the Block takes in.
|
|
84
|
+
* @template Options Options values as described by the Base's options schema.
|
|
85
|
+
*/
|
|
86
|
+
export interface BlockDefinitionWithAddons<AddonsShape extends AnyOptionalShape, Options extends object> extends BlockBase {
|
|
87
|
+
/**
|
|
88
|
+
* Schema of Addons the Block takes in.
|
|
89
|
+
*/
|
|
27
90
|
addons: AddonsShape;
|
|
91
|
+
/**
|
|
92
|
+
* Infers Addons from existing files in the repository.
|
|
93
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-intake}
|
|
94
|
+
*/
|
|
95
|
+
intake?: BlockIntake<InferredObject<AddonsShape>>;
|
|
96
|
+
/**
|
|
97
|
+
* Generates the creations describing a portion of a repository.
|
|
98
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-produce}
|
|
99
|
+
*/
|
|
28
100
|
produce: BlockDefinitionProducerWithAddons<InferredObject<AddonsShape>, Options>;
|
|
101
|
+
/**
|
|
102
|
+
* Augments a Block creation with additional creations for setup mode.
|
|
103
|
+
* @template Options Options values as described by the Base's options schema.
|
|
104
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-setup}
|
|
105
|
+
*/
|
|
29
106
|
setup?: BlockAugmentWithAddons<InferredObject<AddonsShape>, Options>;
|
|
107
|
+
/**
|
|
108
|
+
* Augments a Block creation with additional creations for transition mode.
|
|
109
|
+
* @template Options Options values as described by the Base's options schema.
|
|
110
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-transition}
|
|
111
|
+
*/
|
|
30
112
|
transition?: BlockAugmentWithAddons<InferredObject<AddonsShape>, Options>;
|
|
31
113
|
}
|
|
32
|
-
|
|
114
|
+
/**
|
|
115
|
+
* Definition for creating a new Block without Addons.
|
|
116
|
+
* @template Options Options values as described by the Base's options schema.
|
|
117
|
+
*/
|
|
118
|
+
export interface BlockDefinitionWithoutAddons<Options extends object> extends BlockBase {
|
|
119
|
+
/**
|
|
120
|
+
* Generates the creations describing a portion of a repository.
|
|
121
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-produce}
|
|
122
|
+
*/
|
|
33
123
|
produce: BlockDefinitionProducerWithoutAddons<Options>;
|
|
124
|
+
/**
|
|
125
|
+
* Augments a Block creation with additional creations for setup mode.
|
|
126
|
+
* @template Options Options values as described by the Base's options schema.
|
|
127
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-setup}
|
|
128
|
+
*/
|
|
34
129
|
setup?: BlockAugmentWithoutAddons<Options>;
|
|
130
|
+
/**
|
|
131
|
+
* Augments a Block creation with additional creations for transition mode.
|
|
132
|
+
* @template Options Options values as described by the Base's options schema.
|
|
133
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-transition}
|
|
134
|
+
*/
|
|
35
135
|
transition?: BlockAugmentWithoutAddons<Options>;
|
|
36
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Infers any Addons for the Block from existing creations.
|
|
139
|
+
* @param context Shared Block helper functions and information.
|
|
140
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
141
|
+
*/
|
|
142
|
+
export type BlockIntake<Addons extends object> = (context: BlockIntakeContext) => Partial<Addons>;
|
|
143
|
+
/**
|
|
144
|
+
* Generates the creations describing a portion of a repository with addons.
|
|
145
|
+
* @param context Shared Block helper functions and information.
|
|
146
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
147
|
+
* @template Options Options values as described by the template's options schema.
|
|
148
|
+
* @see {@link https://www.create.bingo/engines/stratum/concepts/blocks#production}
|
|
149
|
+
*/
|
|
37
150
|
export type BlockProducerWithAddons<Addons extends object, Options extends object> = (context: BlockContextWithOptionalAddons<Addons, Options>) => Partial<BlockCreation<Options>>;
|
|
151
|
+
/**
|
|
152
|
+
* Generates the creations describing a portion of a repository without addons.
|
|
153
|
+
* @param context Shared Block helper functions and information.
|
|
154
|
+
* @template Options Options values as described by the template's options schema.
|
|
155
|
+
* @see {@link https://www.create.bingo/engines/stratum/concepts/blocks#production}
|
|
156
|
+
*/
|
|
38
157
|
export type BlockProducerWithoutAddons<Options extends object> = (context: BlockContextWithoutAddons<Options>) => Partial<BlockCreation<Options>>;
|
|
158
|
+
/**
|
|
159
|
+
* Block that defines a schema for Addons.
|
|
160
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
161
|
+
* @template Options Options values as described by the Base's options schema.
|
|
162
|
+
*/
|
|
39
163
|
export interface BlockWithAddons<Addons extends object, Options extends object> extends BlockBase {
|
|
164
|
+
/**
|
|
165
|
+
* Infers Addons from existing files in the repository.
|
|
166
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-intake}
|
|
167
|
+
*/
|
|
168
|
+
intake?: BlockIntake<Addons>;
|
|
169
|
+
/**
|
|
170
|
+
* Generates the creations describing a portion of a repository.
|
|
171
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-produce}
|
|
172
|
+
*/
|
|
40
173
|
produce: BlockProducerWithAddons<Addons, Options>;
|
|
174
|
+
/**
|
|
175
|
+
* Augments a Block creation with additional creations for setup mode.
|
|
176
|
+
* @template Options Options values as described by the Base's options schema.
|
|
177
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-setup}
|
|
178
|
+
*/
|
|
41
179
|
setup?: BlockAugmentWithAddons<Addons, Options>;
|
|
180
|
+
/**
|
|
181
|
+
* Augments a Block creation with additional creations for transition mode.
|
|
182
|
+
* @template Options Options values as described by the Base's options schema.
|
|
183
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-transition}
|
|
184
|
+
*/
|
|
42
185
|
transition?: BlockAugmentWithAddons<Addons, Options>;
|
|
186
|
+
/**
|
|
187
|
+
* Creates a description of Addons to provide for the Block.
|
|
188
|
+
*/
|
|
43
189
|
(addons: Partial<Addons>): CreatedBlockAddons<Addons, Options>;
|
|
44
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Block that does not define a schema for Addons.
|
|
193
|
+
* @template Options Options values as described by the Base's options schema.
|
|
194
|
+
*/
|
|
45
195
|
export interface BlockWithoutAddons<Options extends object> extends BlockBase {
|
|
196
|
+
/**
|
|
197
|
+
* Generates the creations describing a portion of a repository.
|
|
198
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-produce}
|
|
199
|
+
*/
|
|
46
200
|
produce: BlockProducerWithoutAddons<Options>;
|
|
201
|
+
/**
|
|
202
|
+
* Augments a Block creation with additional creations for setup mode.
|
|
203
|
+
* @template Options Options values as described by the Base's options schema.
|
|
204
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-setup}
|
|
205
|
+
*/
|
|
47
206
|
setup?: BlockAugmentWithoutAddons<Options>;
|
|
207
|
+
/**
|
|
208
|
+
* Augments a Block creation with additional creations for transition mode.
|
|
209
|
+
* @template Options Options values as described by the Base's options schema.
|
|
210
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createblock-transition}
|
|
211
|
+
*/
|
|
48
212
|
transition?: BlockAugmentWithoutAddons<Options>;
|
|
49
213
|
}
|
|
50
214
|
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/types/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/types/blocks.ts"],"names":[],"mappings":"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"}
|
package/lib/types/creations.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ import { BlockWithAddons } from "./blocks.js";
|
|
|
3
3
|
export interface BlockCreation<Options extends object> extends Creation {
|
|
4
4
|
addons: CreatedBlockAddons<any, Options>[];
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Describes Addons to provide to a Block before production.
|
|
8
|
+
* @template Addons Block-specific extensions, as defined by the Block's schema.
|
|
9
|
+
* @template Options Options values as described by the Base's options schema.
|
|
10
|
+
*/
|
|
6
11
|
export interface CreatedBlockAddons<Addons extends object = object, Options extends object = object> {
|
|
7
12
|
addons: Addons;
|
|
8
13
|
block: BlockWithAddons<Addons, Options>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creations.d.ts","sourceRoot":"","sources":["../../src/types/creations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,QAAQ;IAKtE,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,kBAAkB,CAClC,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,GAAG,MAAM;IAE/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
|
|
1
|
+
{"version":3,"file":"creations.d.ts","sourceRoot":"","sources":["../../src/types/creations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,QAAQ;IAKtE,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAClC,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,GAAG,MAAM;IAE/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bingo-stratum",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.8",
|
|
4
4
|
"description": "Highly composable, customizable templating engine for Bingo. 🏭",
|
|
5
5
|
"homepage": "https://www.create.bingo/engines/stratum/packages/bingo-stratum",
|
|
6
6
|
"repository": {
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "22.13.9",
|
|
35
|
-
"bingo": "^0.5.
|
|
35
|
+
"bingo": "^0.5.10"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"zod": "^3.24.2",
|
|
39
|
-
"bingo": "^0.5.
|
|
39
|
+
"bingo": "^0.5.10",
|
|
40
40
|
"bingo-fs": "^0.5.4",
|
|
41
41
|
"bingo-systems": "^0.5.4"
|
|
42
42
|
},
|