bingo-handlebars 0.1.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.
- package/LICENSE.md +20 -0
- package/README.md +13 -0
- package/lib/createHandlebars.d.ts +3 -0
- package/lib/createHandlebars.d.ts.map +1 -0
- package/lib/createHandlebars.js +18 -0
- package/lib/createHandlebars.js.map +1 -0
- package/lib/creators/assertNoDuplicateBlocks.d.ts +3 -0
- package/lib/creators/assertNoDuplicateBlocks.d.ts.map +1 -0
- package/lib/creators/assertNoDuplicateBlocks.js +13 -0
- package/lib/creators/assertNoDuplicateBlocks.js.map +1 -0
- package/lib/creators/assertNoPresetOption.d.ts +4 -0
- package/lib/creators/assertNoPresetOption.d.ts.map +1 -0
- package/lib/creators/assertNoPresetOption.js +8 -0
- package/lib/creators/assertNoPresetOption.js.map +1 -0
- package/lib/creators/createBase.d.ts +4 -0
- package/lib/creators/createBase.d.ts.map +1 -0
- package/lib/creators/createBase.js +63 -0
- package/lib/creators/createBase.js.map +1 -0
- package/lib/creators/createBase.test.d.ts +2 -0
- package/lib/creators/createBase.test.d.ts.map +1 -0
- package/lib/creators/createBase.test.js +56 -0
- package/lib/creators/createBase.test.js.map +1 -0
- package/lib/creators/utils.d.ts +4 -0
- package/lib/creators/utils.d.ts.map +1 -0
- package/lib/creators/utils.js +8 -0
- package/lib/creators/utils.js.map +1 -0
- package/lib/executeTemplate.d.ts +2 -0
- package/lib/executeTemplate.d.ts.map +1 -0
- package/lib/executeTemplate.js +5 -0
- package/lib/executeTemplate.js.map +1 -0
- package/lib/executeTemplate.test copy.d.ts +2 -0
- package/lib/executeTemplate.test copy.d.ts.map +1 -0
- package/lib/executeTemplate.test copy.js +22 -0
- package/lib/executeTemplate.test copy.js.map +1 -0
- package/lib/executeTemplate.test.d.ts +2 -0
- package/lib/executeTemplate.test.d.ts.map +1 -0
- package/lib/executeTemplate.test.js +11 -0
- package/lib/executeTemplate.test.js.map +1 -0
- package/lib/executeTemplatesRecursive.d.ts +3 -0
- package/lib/executeTemplatesRecursive.d.ts.map +1 -0
- package/lib/executeTemplatesRecursive.js +16 -0
- package/lib/executeTemplatesRecursive.js.map +1 -0
- package/lib/executeTemplatesRecursive.test.d.ts +2 -0
- package/lib/executeTemplatesRecursive.test.d.ts.map +1 -0
- package/lib/executeTemplatesRecursive.test.js +32 -0
- package/lib/executeTemplatesRecursive.test.js.map +1 -0
- package/lib/getFileFromPath.d.ts +3 -0
- package/lib/getFileFromPath.d.ts.map +1 -0
- package/lib/getFileFromPath.js +17 -0
- package/lib/getFileFromPath.js.map +1 -0
- package/lib/getSourceFromDirectory.d.ts +3 -0
- package/lib/getSourceFromDirectory.d.ts.map +1 -0
- package/lib/getSourceFromDirectory.js +18 -0
- package/lib/getSourceFromDirectory.js.map +1 -0
- package/lib/getSourceFromDirectory.test.d.ts +2 -0
- package/lib/getSourceFromDirectory.test.d.ts.map +1 -0
- package/lib/getSourceFromDirectory.test.js +35 -0
- package/lib/getSourceFromDirectory.test.js.map +1 -0
- package/lib/getSourceFromPath.d.ts +3 -0
- package/lib/getSourceFromPath.d.ts.map +1 -0
- package/lib/getSourceFromPath.js +14 -0
- package/lib/getSourceFromPath.js.map +1 -0
- package/lib/getSourceFromPath.test.d.ts +2 -0
- package/lib/getSourceFromPath.test.d.ts.map +1 -0
- package/lib/getSourceFromPath.test.js +5 -0
- package/lib/getSourceFromPath.test.js.map +1 -0
- package/lib/handlebars copy.d.ts +2 -0
- package/lib/handlebars copy.d.ts.map +1 -0
- package/lib/handlebars copy.js +13 -0
- package/lib/handlebars copy.js.map +1 -0
- package/lib/handlebars.d.ts +2 -0
- package/lib/handlebars.d.ts.map +1 -0
- package/lib/handlebars.js +10 -0
- package/lib/handlebars.js.map +1 -0
- package/lib/handlebars.test.d.ts +2 -0
- package/lib/handlebars.test.d.ts.map +1 -0
- package/lib/handlebars.test.js +24 -0
- package/lib/handlebars.test.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -0
- package/lib/loadHandlebars.d.ts +2 -0
- package/lib/loadHandlebars.d.ts.map +1 -0
- package/lib/loadHandlebars.js +20 -0
- package/lib/loadHandlebars.js.map +1 -0
- package/lib/loadHandlebars.test.d.ts +2 -0
- package/lib/loadHandlebars.test.d.ts.map +1 -0
- package/lib/loadHandlebars.test.js +30 -0
- package/lib/loadHandlebars.test.js.map +1 -0
- package/lib/mergers/mergeAddons.d.ts +3 -0
- package/lib/mergers/mergeAddons.d.ts.map +1 -0
- package/lib/mergers/mergeAddons.js +37 -0
- package/lib/mergers/mergeAddons.js.map +1 -0
- package/lib/mergers/mergeAddons.test.d.ts +2 -0
- package/lib/mergers/mergeAddons.test.d.ts.map +1 -0
- package/lib/mergers/mergeAddons.test.js +174 -0
- package/lib/mergers/mergeAddons.test.js.map +1 -0
- package/lib/mergers/mergeAddonsIfUpdated.d.ts +2 -0
- package/lib/mergers/mergeAddonsIfUpdated.d.ts.map +1 -0
- package/lib/mergers/mergeAddonsIfUpdated.js +53 -0
- package/lib/mergers/mergeAddonsIfUpdated.js.map +1 -0
- package/lib/mergers/mergeAddonsIfUpdated.test.d.ts +2 -0
- package/lib/mergers/mergeAddonsIfUpdated.test.d.ts.map +1 -0
- package/lib/mergers/mergeAddonsIfUpdated.test.js +51 -0
- package/lib/mergers/mergeAddonsIfUpdated.test.js.map +1 -0
- package/lib/mergers/mergeBlockCreations.d.ts +9 -0
- package/lib/mergers/mergeBlockCreations.d.ts.map +1 -0
- package/lib/mergers/mergeBlockCreations.js +10 -0
- package/lib/mergers/mergeBlockCreations.js.map +1 -0
- package/lib/predicates/isBase.d.ts +3 -0
- package/lib/predicates/isBase.d.ts.map +1 -0
- package/lib/predicates/isBase.js +10 -0
- package/lib/predicates/isBase.js.map +1 -0
- package/lib/predicates/isBase.test.d.ts +2 -0
- package/lib/predicates/isBase.test.d.ts.map +1 -0
- package/lib/predicates/isBase.test.js +21 -0
- package/lib/predicates/isBase.test.js.map +1 -0
- package/lib/predicates/isPreset.d.ts +3 -0
- package/lib/predicates/isPreset.d.ts.map +1 -0
- package/lib/predicates/isPreset.js +13 -0
- package/lib/predicates/isPreset.js.map +1 -0
- package/lib/predicates/isPreset.test.d.ts +2 -0
- package/lib/predicates/isPreset.test.d.ts.map +1 -0
- package/lib/predicates/isPreset.test.js +25 -0
- package/lib/predicates/isPreset.test.js.map +1 -0
- package/lib/predicates/isPresetAbout.d.ts +3 -0
- package/lib/predicates/isPresetAbout.d.ts.map +1 -0
- package/lib/predicates/isPresetAbout.js +4 -0
- package/lib/predicates/isPresetAbout.js.map +1 -0
- package/lib/predicates/isPresetAbout.test.d.ts +2 -0
- package/lib/predicates/isPresetAbout.test.d.ts.map +1 -0
- package/lib/predicates/isPresetAbout.test.js +16 -0
- package/lib/predicates/isPresetAbout.test.js.map +1 -0
- package/lib/producers/applyBlockModifications.d.ts +4 -0
- package/lib/producers/applyBlockModifications.d.ts.map +1 -0
- package/lib/producers/applyBlockModifications.js +14 -0
- package/lib/producers/applyBlockModifications.js.map +1 -0
- package/lib/producers/applyBlockModifications.test.d.ts +2 -0
- package/lib/producers/applyBlockModifications.test.d.ts.map +1 -0
- package/lib/producers/applyBlockModifications.test.js +42 -0
- package/lib/producers/applyBlockModifications.test.js.map +1 -0
- package/lib/producers/getUpdatedBlockAddons.d.ts +9 -0
- package/lib/producers/getUpdatedBlockAddons.d.ts.map +1 -0
- package/lib/producers/getUpdatedBlockAddons.js +20 -0
- package/lib/producers/getUpdatedBlockAddons.js.map +1 -0
- package/lib/producers/produceBlock.d.ts +15 -0
- package/lib/producers/produceBlock.d.ts.map +1 -0
- package/lib/producers/produceBlock.js +14 -0
- package/lib/producers/produceBlock.js.map +1 -0
- package/lib/producers/produceBlocks.d.ts +11 -0
- package/lib/producers/produceBlocks.d.ts.map +1 -0
- package/lib/producers/produceBlocks.js +46 -0
- package/lib/producers/produceBlocks.js.map +1 -0
- package/lib/producers/produceBlocks.test.d.ts +2 -0
- package/lib/producers/produceBlocks.test.d.ts.map +1 -0
- package/lib/producers/produceBlocks.test.js +145 -0
- package/lib/producers/produceBlocks.test.js.map +1 -0
- package/lib/producers/producePreset.d.ts +10 -0
- package/lib/producers/producePreset.d.ts.map +1 -0
- package/lib/producers/producePreset.js +20 -0
- package/lib/producers/producePreset.js.map +1 -0
- package/lib/producers/producePreset.test.d.ts +2 -0
- package/lib/producers/producePreset.test.d.ts.map +1 -0
- package/lib/producers/producePreset.test.js +88 -0
- package/lib/producers/producePreset.test.js.map +1 -0
- package/lib/producers/produceStratumTemplate.d.ts +15 -0
- package/lib/producers/produceStratumTemplate.d.ts.map +1 -0
- package/lib/producers/produceStratumTemplate.js +17 -0
- package/lib/producers/produceStratumTemplate.js.map +1 -0
- package/lib/producers/produceStratumTemplate.test.d.ts +2 -0
- package/lib/producers/produceStratumTemplate.test.d.ts.map +1 -0
- package/lib/producers/produceStratumTemplate.test.js +134 -0
- package/lib/producers/produceStratumTemplate.test.js.map +1 -0
- package/lib/runners/runBlock.d.ts +17 -0
- package/lib/runners/runBlock.d.ts.map +1 -0
- package/lib/runners/runBlock.js +11 -0
- package/lib/runners/runBlock.js.map +1 -0
- package/lib/runners/runBlock.test.d.ts +2 -0
- package/lib/runners/runBlock.test.d.ts.map +1 -0
- package/lib/runners/runBlock.test.js +136 -0
- package/lib/runners/runBlock.test.js.map +1 -0
- package/lib/types/bases.d.ts +25 -0
- package/lib/types/bases.d.ts.map +1 -0
- package/lib/types/bases.js +2 -0
- package/lib/types/bases.js.map +1 -0
- package/lib/types/blocks.d.ts +51 -0
- package/lib/types/blocks.d.ts.map +1 -0
- package/lib/types/blocks.js +2 -0
- package/lib/types/blocks.js.map +1 -0
- package/lib/types/creations.d.ts +10 -0
- package/lib/types/creations.d.ts.map +1 -0
- package/lib/types/creations.js +2 -0
- package/lib/types/creations.js.map +1 -0
- package/lib/types/presets.d.ts +16 -0
- package/lib/types/presets.d.ts.map +1 -0
- package/lib/types/presets.js +2 -0
- package/lib/types/presets.js.map +1 -0
- package/lib/types/settings.d.ts +9 -0
- package/lib/types/settings.d.ts.map +1 -0
- package/lib/types/settings.js +2 -0
- package/lib/types/settings.js.map +1 -0
- package/lib/types/templates.d.ts +31 -0
- package/lib/types/templates.d.ts.map +1 -0
- package/lib/types/templates.js +2 -0
- package/lib/types/templates.js.map +1 -0
- package/lib/utils.ts/getPresetByName.d.ts +4 -0
- package/lib/utils.ts/getPresetByName.d.ts.map +1 -0
- package/lib/utils.ts/getPresetByName.js +7 -0
- package/lib/utils.ts/getPresetByName.js.map +1 -0
- package/lib/utils.ts/slugifyPresetName.d.ts +2 -0
- package/lib/utils.ts/slugifyPresetName.d.ts.map +1 -0
- package/lib/utils.ts/slugifyPresetName.js +6 -0
- package/lib/utils.ts/slugifyPresetName.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function isBase(value) {
|
|
2
|
+
return (!!value &&
|
|
3
|
+
typeof value === "object" &&
|
|
4
|
+
"createBlock" in value &&
|
|
5
|
+
typeof value.createBlock === "function" &&
|
|
6
|
+
"createPreset" in value &&
|
|
7
|
+
typeof value.createPreset === "function" &&
|
|
8
|
+
"options" in value);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=isBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isBase.js","sourceRoot":"","sources":["../../src/predicates/isBase.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,KAAc;IACpC,OAAO,CACN,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,aAAa,IAAI,KAAK;QACtB,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;QACvC,cAAc,IAAI,KAAK;QACvB,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU;QACxC,SAAS,IAAI,KAAK,CAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isBase.test.d.ts","sourceRoot":"","sources":["../../src/predicates/isBase.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { createBase } from "../creators/createBase.js";
|
|
3
|
+
import { isBase } from "./isBase.js";
|
|
4
|
+
const base = createBase({
|
|
5
|
+
options: {},
|
|
6
|
+
});
|
|
7
|
+
describe("isBase", () => {
|
|
8
|
+
test.each([
|
|
9
|
+
[null, false],
|
|
10
|
+
[undefined, false],
|
|
11
|
+
[123, false],
|
|
12
|
+
["abc", false],
|
|
13
|
+
[{}, false],
|
|
14
|
+
[{ createBlock: {}, createPreset: {}, options: {} }, false],
|
|
15
|
+
[base, true],
|
|
16
|
+
])("%j", (input, expected) => {
|
|
17
|
+
const actual = isBase(input);
|
|
18
|
+
expect(actual).toBe(expected);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=isBase.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isBase.test.js","sourceRoot":"","sources":["../../src/predicates/isBase.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE;CACX,CAAC,CAAC;AAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,IAAI,CAAC;QACT,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,SAAS,EAAE,KAAK,CAAC;QAClB,CAAC,GAAG,EAAE,KAAK,CAAC;QACZ,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,EAAE,EAAE,KAAK,CAAC;QACX,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC;QAC3D,CAAC,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPreset.d.ts","sourceRoot":"","sources":["../../src/predicates/isPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAWxD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isBase } from "./isBase.js";
|
|
2
|
+
import { isPresetAbout } from "./isPresetAbout.js";
|
|
3
|
+
export function isPreset(value) {
|
|
4
|
+
return (!!value &&
|
|
5
|
+
typeof value === "object" &&
|
|
6
|
+
"about" in value &&
|
|
7
|
+
isPresetAbout(value.about) &&
|
|
8
|
+
"base" in value &&
|
|
9
|
+
isBase(value.base) &&
|
|
10
|
+
"blocks" in value &&
|
|
11
|
+
Array.isArray(value.blocks));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=isPreset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPreset.js","sourceRoot":"","sources":["../../src/predicates/isPreset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,QAAQ,CAAC,KAAc;IACtC,OAAO,CACN,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,IAAI,KAAK;QAChB,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,IAAI,KAAK;QACf,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAClB,QAAQ,IAAI,KAAK;QACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAC3B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPreset.test.d.ts","sourceRoot":"","sources":["../../src/predicates/isPreset.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { createBase } from "../creators/createBase.js";
|
|
3
|
+
import { isPreset } from "./isPreset.js";
|
|
4
|
+
const base = createBase({
|
|
5
|
+
options: {},
|
|
6
|
+
});
|
|
7
|
+
const preset = base.createPreset({
|
|
8
|
+
about: { name: "Test Preset" },
|
|
9
|
+
blocks: [],
|
|
10
|
+
});
|
|
11
|
+
describe("isPreset", () => {
|
|
12
|
+
test.each([
|
|
13
|
+
[null, false],
|
|
14
|
+
[undefined, false],
|
|
15
|
+
[123, false],
|
|
16
|
+
["abc", false],
|
|
17
|
+
[{}, false],
|
|
18
|
+
[{ about: {}, base: {}, blocks: [] }, false],
|
|
19
|
+
[preset, true],
|
|
20
|
+
])("%j", (input, expected) => {
|
|
21
|
+
const actual = isPreset(input);
|
|
22
|
+
expect(actual).toBe(expected);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=isPreset.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPreset.test.js","sourceRoot":"","sources":["../../src/predicates/isPreset.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE;CACX,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9B,MAAM,EAAE,EAAE;CACV,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,IAAI,CAAC;QACT,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,SAAS,EAAE,KAAK,CAAC;QAClB,CAAC,GAAG,EAAE,KAAK,CAAC;QACZ,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,EAAE,EAAE,KAAK,CAAC;QACX,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC;QAC5C,CAAC,MAAM,EAAE,IAAI,CAAC;KACd,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPresetAbout.d.ts","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPresetAbout.js","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPresetAbout.test.d.ts","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { isPresetAbout } from "./isPresetAbout.js";
|
|
3
|
+
describe("isPresetAbout", () => {
|
|
4
|
+
test.each([
|
|
5
|
+
[null, false],
|
|
6
|
+
[undefined, false],
|
|
7
|
+
[123, false],
|
|
8
|
+
["abc", false],
|
|
9
|
+
[{}, false],
|
|
10
|
+
[{ name: "" }, true],
|
|
11
|
+
])("%j", (input, expected) => {
|
|
12
|
+
const actual = isPresetAbout(input);
|
|
13
|
+
expect(actual).toBe(expected);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=isPresetAbout.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isPresetAbout.test.js","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,IAAI,CAAC;QACT,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,SAAS,EAAE,KAAK,CAAC;QAClB,CAAC,GAAG,EAAE,KAAK,CAAC;QACZ,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,EAAE,EAAE,KAAK,CAAC;QACX,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;KACpB,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Block } from "../types/blocks.js";
|
|
2
|
+
import { BlockModifications } from "../types/settings.js";
|
|
3
|
+
export declare function applyBlockModifications<Options extends object>(initial: Block<object | undefined, Options>[], { add, exclude }?: BlockModifications<Options>): Block<object | undefined, Options>[];
|
|
4
|
+
//# sourceMappingURL=applyBlockModifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyBlockModifications.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,MAAM,EAC7D,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EAC7C,EAAE,GAAQ,EAAE,OAAY,EAAE,GAAE,kBAAkB,CAAC,OAAO,CAAM,wCAiB5D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function applyBlockModifications(initial, { add = [], exclude = [] } = {}) {
|
|
2
|
+
if (!add.length && !exclude.length) {
|
|
3
|
+
return initial;
|
|
4
|
+
}
|
|
5
|
+
const blocks = new Set(initial);
|
|
6
|
+
for (const added of add) {
|
|
7
|
+
blocks.add(added);
|
|
8
|
+
}
|
|
9
|
+
for (const excluded of exclude) {
|
|
10
|
+
blocks.delete(excluded);
|
|
11
|
+
}
|
|
12
|
+
return Array.from(blocks);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=applyBlockModifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyBlockModifications.js","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CACtC,OAA6C,EAC7C,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,KAAkC,EAAE;IAE5D,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyBlockModifications.test.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { createBase } from "../creators/createBase.js";
|
|
4
|
+
import { applyBlockModifications } from "./applyBlockModifications.js";
|
|
5
|
+
const base = createBase({
|
|
6
|
+
options: {
|
|
7
|
+
value: z.string(),
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
const blockA = base.createBlock({
|
|
11
|
+
about: { name: "A" },
|
|
12
|
+
produce: vi.fn(),
|
|
13
|
+
});
|
|
14
|
+
const blockB = base.createBlock({
|
|
15
|
+
about: { name: "B" },
|
|
16
|
+
produce: vi.fn(),
|
|
17
|
+
});
|
|
18
|
+
const blockC = base.createBlock({
|
|
19
|
+
about: { name: "C" },
|
|
20
|
+
produce: vi.fn(),
|
|
21
|
+
});
|
|
22
|
+
describe("applyBlockModifications", () => {
|
|
23
|
+
it("returns the initial blocks when no modifications are provided", () => {
|
|
24
|
+
const initial = [blockA, blockB];
|
|
25
|
+
const actual = applyBlockModifications(initial);
|
|
26
|
+
expect(actual).toBe(initial);
|
|
27
|
+
});
|
|
28
|
+
it("returns the initial blocks when modifications are empty", () => {
|
|
29
|
+
const initial = [blockA, blockB];
|
|
30
|
+
const actual = applyBlockModifications(initial, { add: [], exclude: [] });
|
|
31
|
+
expect(actual).toBe(initial);
|
|
32
|
+
});
|
|
33
|
+
it("applies modifications when they exist", () => {
|
|
34
|
+
const initial = [blockA, blockB];
|
|
35
|
+
const actual = applyBlockModifications(initial, {
|
|
36
|
+
add: [blockC],
|
|
37
|
+
exclude: [blockB],
|
|
38
|
+
});
|
|
39
|
+
expect(actual).toEqual([blockA, blockC]);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=applyBlockModifications.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyBlockModifications.test.js","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB;CACD,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACxE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAClE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE;YAC/C,GAAG,EAAE,CAAC,MAAM,CAAC;YACb,OAAO,EAAE,CAAC,MAAM,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Creation } from "bingo";
|
|
2
|
+
import { Block, BlockWithAddons } from "../types/blocks.js";
|
|
3
|
+
import { CreatedBlockAddons } from "../types/creations.js";
|
|
4
|
+
export interface BlockProduction<Addons extends object | undefined> {
|
|
5
|
+
addons: Addons;
|
|
6
|
+
creation?: Partial<Creation>;
|
|
7
|
+
}
|
|
8
|
+
export declare function getUpdatedBlockAddons<Options extends object>(allowedBlocks: Set<Block<object | undefined, Options>>, blockProductions: Map<Block<object | undefined, Options>, BlockProduction<object>>, newBlockAddons?: CreatedBlockAddons<object, Options>[]): [BlockWithAddons<object, Options>, object][];
|
|
9
|
+
//# sourceMappingURL=getUpdatedBlockAddons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUpdatedBlockAddons.d.ts","sourceRoot":"","sources":["../../src/producers/getUpdatedBlockAddons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,MAAM,EAC3D,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,EACtD,gBAAgB,EAAE,GAAG,CACpB,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAClC,eAAe,CAAC,MAAM,CAAC,CACvB,EACD,cAAc,GAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAO,gDAyB1D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { mergeAddonsIfUpdated } from "../mergers/mergeAddonsIfUpdated.js";
|
|
2
|
+
export function getUpdatedBlockAddons(allowedBlocks, blockProductions, newBlockAddons = []) {
|
|
3
|
+
const updated = [];
|
|
4
|
+
for (const newAddons of newBlockAddons) {
|
|
5
|
+
if (!allowedBlocks.has(newAddons.block)) {
|
|
6
|
+
continue;
|
|
7
|
+
}
|
|
8
|
+
const existingProduction = blockProductions.get(newAddons.block);
|
|
9
|
+
if (!existingProduction) {
|
|
10
|
+
updated.push([newAddons.block, newAddons.addons]);
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const updatedAddons = mergeAddonsIfUpdated(existingProduction.addons, newAddons.addons);
|
|
14
|
+
if (updatedAddons) {
|
|
15
|
+
updated.push([newAddons.block, updatedAddons]);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return updated;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=getUpdatedBlockAddons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUpdatedBlockAddons.js","sourceRoot":"","sources":["../../src/producers/getUpdatedBlockAddons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAS1E,MAAM,UAAU,qBAAqB,CACpC,aAAsD,EACtD,gBAGC,EACD,iBAAwD,EAAE;IAE1D,MAAM,OAAO,GAAiD,EAAE,CAAC;IAEjE,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,SAAS;QACV,CAAC;QAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,SAAS;QACV,CAAC;QAED,MAAM,aAAa,GAAG,oBAAoB,CACzC,kBAAkB,CAAC,MAAM,EACzB,SAAS,CAAC,MAAM,CAChB,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ProductionMode } from "bingo";
|
|
2
|
+
import { BlockWithAddons, BlockWithoutAddons } from "../types/blocks.js";
|
|
3
|
+
import { BlockCreation } from "../types/creations.js";
|
|
4
|
+
export type ProduceBlockSettings<Addons extends object | undefined, Options extends object> = Addons extends object ? ProduceBlockSettingsWithAddons<Addons, Options> : ProduceBlockSettingsWithoutAddons<Options>;
|
|
5
|
+
export interface ProduceBlockSettingsWithAddons<Addons extends object, Options extends object> extends ProduceBlockSettingsWithoutAddons<Options> {
|
|
6
|
+
addons?: Addons;
|
|
7
|
+
}
|
|
8
|
+
export interface ProduceBlockSettingsWithoutAddons<Options extends object> {
|
|
9
|
+
mode?: ProductionMode;
|
|
10
|
+
offline?: boolean;
|
|
11
|
+
options: Options;
|
|
12
|
+
}
|
|
13
|
+
export declare function produceBlock<Addons extends object, Options extends object>(block: BlockWithAddons<Addons, Options>, settings: ProduceBlockSettingsWithAddons<Addons, Options>): Partial<BlockCreation<Options>>;
|
|
14
|
+
export declare function produceBlock<Options extends object>(block: BlockWithoutAddons<Options>, settings: ProduceBlockSettingsWithoutAddons<Options>): Partial<BlockCreation<Options>>;
|
|
15
|
+
//# sourceMappingURL=produceBlock.d.ts.map
|
|
@@ -0,0 +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;AAEtD,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,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,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,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;AACnC,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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
|
|
2
|
+
export function produceBlock(block, settings) {
|
|
3
|
+
let creation = block.produce(settings);
|
|
4
|
+
const augment = settings.mode && block[settings.mode];
|
|
5
|
+
if (augment) {
|
|
6
|
+
const augmented = augment({
|
|
7
|
+
addons: {},
|
|
8
|
+
...settings,
|
|
9
|
+
});
|
|
10
|
+
creation = mergeBlockCreations(creation, augmented);
|
|
11
|
+
}
|
|
12
|
+
return creation;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=produceBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produceBlock.js","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAgCxE,MAAM,UAAU,YAAY,CAC3B,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,11 @@
|
|
|
1
|
+
import { ProductionMode } from "bingo";
|
|
2
|
+
import { Block } from "../types/blocks.js";
|
|
3
|
+
import { CreatedBlockAddons } from "../types/creations.js";
|
|
4
|
+
export interface ProduceBlocksSettings<Options extends object> {
|
|
5
|
+
addons?: CreatedBlockAddons<object, Options>[];
|
|
6
|
+
mode?: ProductionMode;
|
|
7
|
+
offline?: boolean;
|
|
8
|
+
options: Options;
|
|
9
|
+
}
|
|
10
|
+
export declare function produceBlocks<Options extends object>(blocks: Block<object | undefined, Options>[], { addons, mode, offline, options }: ProduceBlocksSettings<Options>): {};
|
|
11
|
+
//# sourceMappingURL=produceBlocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produceBlocks.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,KAAK,EAAmB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAO3D,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM;IAC5D,MAAM,CAAC,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/C,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,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAiElE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
|
|
2
|
+
import { getUpdatedBlockAddons, } from "./getUpdatedBlockAddons.js";
|
|
3
|
+
import { produceBlock } from "./produceBlock.js";
|
|
4
|
+
export function produceBlocks(blocks, { addons, mode, offline, options }) {
|
|
5
|
+
// From Templating Engines > Stratum > Details > Execution:
|
|
6
|
+
// This engine continuously re-runs Blocks until no new Addons are provided.
|
|
7
|
+
const blockProductions = new Map(addons?.map((addon) => [addon.block, { addons: addon.addons }]));
|
|
8
|
+
// 1. Create a queue of Blocks to be run, starting with all defined in the Preset
|
|
9
|
+
const allowedBlocks = new Set(blocks);
|
|
10
|
+
const blocksToBeRun = new Set(blocks);
|
|
11
|
+
// 2. For each Block in the queue:
|
|
12
|
+
while (blocksToBeRun.size) {
|
|
13
|
+
for (const currentBlock of blocksToBeRun) {
|
|
14
|
+
blocksToBeRun.delete(currentBlock);
|
|
15
|
+
// 2.1. Get the Creation from the Block, passing any current known Addons
|
|
16
|
+
// 2.2. If a mode is specified, additionally generate the appropriate Block Creations
|
|
17
|
+
const previousProduction = blockProductions.get(currentBlock);
|
|
18
|
+
const previousAddons = previousProduction?.addons ?? {};
|
|
19
|
+
const blockCreation = produceBlock(currentBlock, {
|
|
20
|
+
addons: previousAddons,
|
|
21
|
+
mode,
|
|
22
|
+
offline,
|
|
23
|
+
options,
|
|
24
|
+
});
|
|
25
|
+
// 2.3. Store that Block's Creation
|
|
26
|
+
blockProductions.set(currentBlock, {
|
|
27
|
+
addons: previousAddons,
|
|
28
|
+
creation: blockCreation,
|
|
29
|
+
});
|
|
30
|
+
// 2.4. If the Block specified new addons for any defined Blocks:
|
|
31
|
+
const updatedBlockAddons = getUpdatedBlockAddons(allowedBlocks, blockProductions, blockCreation.addons);
|
|
32
|
+
// 2.4.1: Add those Blocks to the queue to re-run
|
|
33
|
+
for (const [updatedBlock, updatedAddons] of updatedBlockAddons) {
|
|
34
|
+
const addedBlockPreviousProduction = blockProductions.get(updatedBlock);
|
|
35
|
+
blockProductions.set(updatedBlock, {
|
|
36
|
+
...addedBlockPreviousProduction,
|
|
37
|
+
addons: updatedAddons,
|
|
38
|
+
});
|
|
39
|
+
blocksToBeRun.add(updatedBlock);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// 3. Merge all Block Creations together
|
|
44
|
+
return Array.from(blockProductions.values()).reduce((created, next) => mergeBlockCreations(created, next.creation ?? {}), {});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=produceBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produceBlocks.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAEN,qBAAqB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,MAAM,UAAU,aAAa,CAC5B,MAA4C,EAC5C,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAkC;IAElE,2DAA2D;IAC3D,4EAA4E;IAE5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAG9B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,iFAAiF;IACjF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtC,kCAAkC;IAClC,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YAC1C,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAEnC,yEAAyE;YACzE,qFAAqF;YACrF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,cAAc,GAAG,kBAAkB,EAAE,MAAM,IAAI,EAAE,CAAC;YACxD,MAAM,aAAa,GAAG,YAAY,CACjC,YAAgD,EAChD;gBACC,MAAM,EAAE,cAAc;gBACtB,IAAI;gBACJ,OAAO;gBACP,OAAO;aACP,CACD,CAAC;YAEF,mCAAmC;YACnC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE;gBAClC,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,aAAa;aACvB,CAAC,CAAC;YAEH,iEAAiE;YACjE,MAAM,kBAAkB,GAAG,qBAAqB,CAC/C,aAAa,EACb,gBAAgB,EAChB,aAAa,CAAC,MAAM,CACpB,CAAC;YAEF,iDAAiD;YACjD,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,kBAAkB,EAAE,CAAC;gBAChE,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACxE,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE;oBAClC,GAAG,4BAA4B;oBAC/B,MAAM,EAAE,aAAa;iBACrB,CAAC,CAAC;gBACH,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAED,wCAAwC;IACxC,OACC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CACpC,CAAC,MAAM,CACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EACpE,EAAE,CACF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produceBlocks.test.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlocks.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { describe, expect, it, test, vi } from "vitest";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { createBase } from "../creators/createBase.js";
|
|
4
|
+
import { produceBlocks } from "./produceBlocks.js";
|
|
5
|
+
const base = createBase({
|
|
6
|
+
options: {
|
|
7
|
+
value: z.string(),
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
describe("produceBlocks", () => {
|
|
11
|
+
test("files from one block", () => {
|
|
12
|
+
const block = base.createBlock({
|
|
13
|
+
about: {
|
|
14
|
+
name: "Example Block",
|
|
15
|
+
},
|
|
16
|
+
produce({ options }) {
|
|
17
|
+
return {
|
|
18
|
+
files: { "README.md": options.value },
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
const result = produceBlocks([block], {
|
|
23
|
+
options: { value: "Hello, world!" },
|
|
24
|
+
});
|
|
25
|
+
expect(result).toEqual({
|
|
26
|
+
files: {
|
|
27
|
+
"README.md": "Hello, world!",
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
it("adds addons when provided", () => {
|
|
32
|
+
const block = base.createBlock({
|
|
33
|
+
about: {
|
|
34
|
+
name: "Example Block",
|
|
35
|
+
},
|
|
36
|
+
addons: {
|
|
37
|
+
extra: z.string().optional(),
|
|
38
|
+
},
|
|
39
|
+
produce({ addons, options }) {
|
|
40
|
+
return {
|
|
41
|
+
files: { "README.md": [options.value, addons.extra].join("\n") },
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
const result = produceBlocks([block], {
|
|
46
|
+
addons: [block({ extra: "line" })],
|
|
47
|
+
options: { value: "Hello, world!" },
|
|
48
|
+
});
|
|
49
|
+
expect(result).toEqual({
|
|
50
|
+
files: {
|
|
51
|
+
"README.md": "Hello, world!\nline",
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
it("doesn't include addons to blocks that aren't defined", () => {
|
|
56
|
+
const blockKnown = base.createBlock({
|
|
57
|
+
about: {
|
|
58
|
+
name: "Known Block",
|
|
59
|
+
},
|
|
60
|
+
produce({ options }) {
|
|
61
|
+
return {
|
|
62
|
+
addons: [blockUnknown({ extra: "line" })],
|
|
63
|
+
files: { "README.md": options.value },
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
const blockUnknown = base.createBlock({
|
|
68
|
+
about: {
|
|
69
|
+
name: "Unknown Block",
|
|
70
|
+
},
|
|
71
|
+
addons: {
|
|
72
|
+
extra: z.string().optional(),
|
|
73
|
+
},
|
|
74
|
+
produce: vi.fn(),
|
|
75
|
+
});
|
|
76
|
+
const result = produceBlocks([blockKnown], {
|
|
77
|
+
options: { value: "Hello, world!" },
|
|
78
|
+
});
|
|
79
|
+
expect(result).toEqual({
|
|
80
|
+
addons: [blockUnknown({ extra: "line" })],
|
|
81
|
+
files: {
|
|
82
|
+
"README.md": "Hello, world!",
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe("modes", () => {
|
|
87
|
+
const block = base.createBlock({
|
|
88
|
+
about: {
|
|
89
|
+
name: "Example Block",
|
|
90
|
+
},
|
|
91
|
+
produce({ options }) {
|
|
92
|
+
return {
|
|
93
|
+
files: { "README.md": options.value },
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
setup({ options }) {
|
|
97
|
+
return {
|
|
98
|
+
files: {
|
|
99
|
+
"data.txt": options.value,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
},
|
|
103
|
+
transition() {
|
|
104
|
+
return {
|
|
105
|
+
scripts: ["rm old.txt"],
|
|
106
|
+
};
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
it("does not augment creations with a Block's setup() or transition() when mode is undefined", () => {
|
|
110
|
+
const result = produceBlocks([block], {
|
|
111
|
+
options: { value: "Hello, world!" },
|
|
112
|
+
});
|
|
113
|
+
expect(result).toEqual({
|
|
114
|
+
files: {
|
|
115
|
+
"README.md": "Hello, world!",
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
it("augments creations with a Block's setup() when mode is 'setup'", () => {
|
|
120
|
+
const result = produceBlocks([block], {
|
|
121
|
+
mode: "setup",
|
|
122
|
+
options: { value: "Hello, world!" },
|
|
123
|
+
});
|
|
124
|
+
expect(result).toEqual({
|
|
125
|
+
files: {
|
|
126
|
+
"data.txt": "Hello, world!",
|
|
127
|
+
"README.md": "Hello, world!",
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
it("augments creations with a Block's transition() when mode is 'transition'", () => {
|
|
132
|
+
const result = produceBlocks([block], {
|
|
133
|
+
mode: "transition",
|
|
134
|
+
options: { value: "Hello, world!" },
|
|
135
|
+
});
|
|
136
|
+
expect(result).toEqual({
|
|
137
|
+
files: {
|
|
138
|
+
"README.md": "Hello, world!",
|
|
139
|
+
},
|
|
140
|
+
scripts: ["rm old.txt"],
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=produceBlocks.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produceBlocks.test.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AnyShape, InferredObject, ProduceTemplateSettings } from "bingo";
|
|
2
|
+
import { BlockCreation, CreatedBlockAddons } from "../types/creations.js";
|
|
3
|
+
import { Preset } from "../types/presets.js";
|
|
4
|
+
import { BlockModifications } from "../types/settings.js";
|
|
5
|
+
export interface ProducePresetSettings<OptionsShape extends AnyShape> extends ProduceTemplateSettings<OptionsShape> {
|
|
6
|
+
addons?: CreatedBlockAddons<any, InferredObject<OptionsShape>>[];
|
|
7
|
+
blocks?: BlockModifications<InferredObject<OptionsShape>>;
|
|
8
|
+
}
|
|
9
|
+
export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { addons, blocks: blockModifications, mode, offline, options, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
|
|
10
|
+
//# sourceMappingURL=producePreset.d.ts.map
|
|
@@ -0,0 +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;AAE1E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,MAAM,WAAW,qBAAqB,CAAC,YAAY,SAAS,QAAQ,CACnE,SAAQ,uBAAuB,CAAC,YAAY,CAAC;IAG7C,MAAM,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1D;AAED,wBAAgB,aAAa,CAAC,YAAY,SAAS,QAAQ,EAC1D,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAC5B,EACC,MAAM,EACN,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EACJ,OAAO,EACP,OAAO,GACP,EAAE,qBAAqB,CAAC,YAAY,CAAC,GACpC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAkB7C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { applyBlockModifications } from "./applyBlockModifications.js";
|
|
2
|
+
import { produceBlocks } from "./produceBlocks.js";
|
|
3
|
+
export function producePreset(preset, { addons, blocks: blockModifications, mode, offline, options, }) {
|
|
4
|
+
const blocks = applyBlockModifications(preset.blocks, blockModifications);
|
|
5
|
+
const creation = produceBlocks(blocks, {
|
|
6
|
+
addons,
|
|
7
|
+
mode,
|
|
8
|
+
offline,
|
|
9
|
+
options,
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
addons: [],
|
|
13
|
+
files: {},
|
|
14
|
+
requests: [],
|
|
15
|
+
scripts: [],
|
|
16
|
+
suggestions: [],
|
|
17
|
+
...creation,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=producePreset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"producePreset.js","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,MAAM,UAAU,aAAa,CAC5B,MAA4B,EAC5B,EACC,MAAM,EACN,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EACJ,OAAO,EACP,OAAO,GAC8B;IAEtC,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE;QACtC,MAAM;QACN,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"producePreset.test.d.ts","sourceRoot":"","sources":["../../src/producers/producePreset.test.ts"],"names":[],"mappings":""}
|