bingo-stratum 0.5.4 → 0.5.5
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/creators/createBase.d.ts.map +1 -1
- package/lib/creators/createBase.js +1 -21
- package/lib/creators/createBase.js.map +1 -1
- package/lib/creators/createBase.test copy.d.ts +2 -0
- package/lib/creators/createBase.test copy.d.ts.map +1 -0
- package/lib/creators/createBase.test copy.js +58 -0
- package/lib/creators/createBase.test copy.js.map +1 -0
- package/lib/creators/createBase.test.js +8 -6
- package/lib/creators/createBase.test.js.map +1 -1
- package/lib/creators/createBlock.d.ts +5 -0
- package/lib/creators/createBlock.d.ts.map +1 -0
- package/lib/creators/createBlock.js +22 -0
- package/lib/creators/createBlock.js.map +1 -0
- package/lib/creators/createBlock.test.d.ts +2 -0
- package/lib/creators/createBlock.test.d.ts.map +1 -0
- package/lib/creators/createBlock.test.js +53 -0
- package/lib/creators/createBlock.test.js.map +1 -0
- package/lib/creators/createStratumTemplate.d.ts.map +1 -1
- package/lib/creators/createStratumTemplate.js +4 -0
- package/lib/creators/createStratumTemplate.js.map +1 -1
- package/lib/creators/createStratumTemplate.test.js +12 -0
- package/lib/creators/createStratumTemplate.test.js.map +1 -1
- package/lib/predicates/hasName.d.ts +9 -0
- package/lib/predicates/hasName.d.ts.map +1 -0
- package/lib/predicates/hasName.js +4 -0
- package/lib/predicates/hasName.js.map +1 -0
- package/lib/producers/applyBlockModifications.d.ts +2 -2
- package/lib/producers/applyBlockModifications.d.ts.map +1 -1
- package/lib/producers/applyBlockModifications.js.map +1 -1
- package/lib/producers/produceBlock.d.ts +5 -5
- 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/produceStratumTemplate.test.js +2 -2
- package/lib/producers/produceStratumTemplate.test.js.map +1 -1
- package/lib/types/blocks.d.ts +2 -3
- package/lib/types/blocks.d.ts.map +1 -1
- package/lib/types/settings.d.ts +1 -1
- package/lib/types/settings.d.ts.map +1 -1
- package/lib/types/templates.d.ts +57 -0
- package/lib/types/templates.d.ts.map +1 -1
- package/lib/utils/getPresetByName.d.ts +1 -1
- package/lib/utils.ts/getPresetByName.d.ts +1 -1
- package/lib/utils.ts/getPresetByName.d.ts.map +1 -1
- package/lib/utils.ts/getPresetByName.js +9 -3
- package/lib/utils.ts/getPresetByName.js.map +1 -1
- package/package.json +7 -6
- package/lib/predicates/isBlock.d.ts +0 -3
- package/lib/predicates/isBlock.d.ts.map +0 -1
- package/lib/predicates/isBlock.js +0 -7
- package/lib/predicates/isBlock.js.map +0 -1
- package/lib/types/customizations..d.ts +0 -9
- package/lib/types/customizations..d.ts.map +0 -1
- package/lib/types/customizations..js +0 -2
- package/lib/types/customizations..js.map +0 -1
- package/lib/types/customizations.d.ts +0 -22
- package/lib/types/customizations.d.ts.map +0 -1
- package/lib/types/customizations.js +0 -2
- package/lib/types/customizations.js.map +0 -1
- package/lib/utils.ts/createBlockExclusionOption.d.ts +0 -2
- package/lib/utils.ts/createBlockExclusionOption.d.ts.map +0 -1
- package/lib/utils.ts/createBlockExclusionOption.js +0 -5
- package/lib/utils.ts/createBlockExclusionOption.js.map +0 -1
- package/lib/utils.ts/slugifyName.d.ts +0 -2
- package/lib/utils.ts/slugifyName.d.ts.map +0 -1
- package/lib/utils.ts/slugifyName.js +0 -6
- package/lib/utils.ts/slugifyName.js.map +0 -1
- package/lib/utils.ts/slugifyPresetName.d.ts +0 -2
- package/lib/utils.ts/slugifyPresetName.d.ts.map +0 -1
- package/lib/utils.ts/slugifyPresetName.js +0 -6
- package/lib/utils.ts/slugifyPresetName.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBase.d.ts","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"createBase.d.ts","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMzD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,SAAS,QAAQ,EACvD,cAAc,EAAE,cAAc,CAAC,YAAY,CAAC,GAC1C,IAAI,CAAC,YAAY,CAAC,CAYpB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { assertNoPresetOption } from "./assertNoPresetOption.js";
|
|
2
|
+
import { createBlock } from "./createBlock.js";
|
|
2
3
|
import { createPreset } from "./createPreset.js";
|
|
3
4
|
import { createStratumTemplate } from "./createStratumTemplate.js";
|
|
4
|
-
import { applyZodDefaults, isDefinitionWithAddons } from "./utils.js";
|
|
5
5
|
/**
|
|
6
6
|
* Creates a Stratum {@link Base}.
|
|
7
7
|
* @template OptionsShape Schemas of options the Base's Blocks take in.
|
|
@@ -9,26 +9,6 @@ import { applyZodDefaults, isDefinitionWithAddons } from "./utils.js";
|
|
|
9
9
|
*/
|
|
10
10
|
export function createBase(baseDefinition) {
|
|
11
11
|
assertNoPresetOption(baseDefinition);
|
|
12
|
-
function createBlock(blockDefinition) {
|
|
13
|
-
// Blocks without Addons can't be called as functions.
|
|
14
|
-
if (!isDefinitionWithAddons(blockDefinition)) {
|
|
15
|
-
return blockDefinition;
|
|
16
|
-
}
|
|
17
|
-
const addonsSchema = blockDefinition.addons;
|
|
18
|
-
// Blocks with Addons do need to be callable as functions...
|
|
19
|
-
function block(addons) {
|
|
20
|
-
return { addons, block };
|
|
21
|
-
}
|
|
22
|
-
// ...and also still have the Block Definition properties.
|
|
23
|
-
Object.assign(block, blockDefinition);
|
|
24
|
-
block.produce = (context) => {
|
|
25
|
-
return blockDefinition.produce({
|
|
26
|
-
...context,
|
|
27
|
-
addons: applyZodDefaults(addonsSchema, context.addons),
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
return block;
|
|
31
|
-
}
|
|
32
12
|
const base = {
|
|
33
13
|
...baseDefinition,
|
|
34
14
|
createBlock,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBase.js","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createBase.js","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACzB,cAA4C;IAE5C,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAErC,MAAM,IAAI,GAAuB;QAChC,GAAG,cAAc;QACjB,WAAW;QACX,YAAY,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC;QACxE,qBAAqB,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAC7C,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC;KAChD,CAAC;IAEF,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBase.test copy.d.ts","sourceRoot":"","sources":["../../src/creators/createBase.test copy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { createBase } from "./createBase.js";
|
|
4
|
+
const base = createBase({
|
|
5
|
+
options: { name: z.string() },
|
|
6
|
+
});
|
|
7
|
+
describe("createBase", () => {
|
|
8
|
+
describe("createBlock", () => {
|
|
9
|
+
describe("without Addons", () => {
|
|
10
|
+
it("produces without Addons", () => {
|
|
11
|
+
const block = base.createBlock({
|
|
12
|
+
produce({ options }) {
|
|
13
|
+
return {
|
|
14
|
+
files: {
|
|
15
|
+
"name.txt": `${options.name} (${options.preset})`,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
const production = block.produce({
|
|
21
|
+
options: { name: "abc", preset: "test" },
|
|
22
|
+
});
|
|
23
|
+
expect(production).toEqual({
|
|
24
|
+
files: {
|
|
25
|
+
"name.txt": "abc (test)",
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("with Addons", () => {
|
|
31
|
+
it("applies Zod defaults when producing with Addons", () => {
|
|
32
|
+
const block = base.createBlock({
|
|
33
|
+
addons: {
|
|
34
|
+
names: z.array(z.string()).default([]),
|
|
35
|
+
},
|
|
36
|
+
produce({ addons, options }) {
|
|
37
|
+
const { names } = addons;
|
|
38
|
+
return {
|
|
39
|
+
files: {
|
|
40
|
+
"names.txt": [options.preset, options.name, ...names].join("\n"),
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
const production = block.produce({
|
|
46
|
+
addons: { names: ["def"] },
|
|
47
|
+
options: { name: "abc", preset: "test" },
|
|
48
|
+
});
|
|
49
|
+
expect(production).toEqual({
|
|
50
|
+
files: {
|
|
51
|
+
"names.txt": "test\nabc\ndef",
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=createBase.test%20copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBase.test copy.js","sourceRoot":"","sources":["../../src/creators/createBase.test copy.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,iBAAiB,CAAC;AAE7C,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;CAC7B,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC9B,OAAO,CAAC,EAAE,OAAO,EAAE;wBAClB,OAAO;4BACN,KAAK,EAAE;gCACN,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG;6BACjD;yBACD,CAAC;oBACH,CAAC;iBACD,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;oBAChC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;iBACxC,CAAC,CAAC;gBAEH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;oBAC1B,KAAK,EAAE;wBACN,UAAU,EAAE,YAAY;qBACxB;iBACD,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC5B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC9B,MAAM,EAAE;wBACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;qBACtC;oBACD,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;wBAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;wBAEzB,OAAO;4BACN,KAAK,EAAE;gCACN,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CACzD,IAAI,CACJ;6BACD;yBACD,CAAC;oBACH,CAAC;iBACD,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;oBAChC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE;oBAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;iBACxC,CAAC,CAAC;gBAEH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;oBAC1B,KAAK,EAAE;wBACN,WAAW,EAAE,gBAAgB;qBAC7B;iBACD,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -12,15 +12,17 @@ describe("createBase", () => {
|
|
|
12
12
|
produce({ options }) {
|
|
13
13
|
return {
|
|
14
14
|
files: {
|
|
15
|
-
"name.txt": options.name
|
|
15
|
+
"name.txt": `${options.name} (${options.preset})`,
|
|
16
16
|
},
|
|
17
17
|
};
|
|
18
18
|
},
|
|
19
19
|
});
|
|
20
|
-
const production = block.produce({
|
|
20
|
+
const production = block.produce({
|
|
21
|
+
options: { name: "abc", preset: "test" },
|
|
22
|
+
});
|
|
21
23
|
expect(production).toEqual({
|
|
22
24
|
files: {
|
|
23
|
-
"name.txt": "abc",
|
|
25
|
+
"name.txt": "abc (test)",
|
|
24
26
|
},
|
|
25
27
|
});
|
|
26
28
|
});
|
|
@@ -35,18 +37,18 @@ describe("createBase", () => {
|
|
|
35
37
|
const { names } = addons;
|
|
36
38
|
return {
|
|
37
39
|
files: {
|
|
38
|
-
"names.txt": [options.name, ...names].join("\n"),
|
|
40
|
+
"names.txt": [options.preset, options.name, ...names].join("\n"),
|
|
39
41
|
},
|
|
40
42
|
};
|
|
41
43
|
},
|
|
42
44
|
});
|
|
43
45
|
const production = block.produce({
|
|
44
46
|
addons: { names: ["def"] },
|
|
45
|
-
options: { name: "abc" },
|
|
47
|
+
options: { name: "abc", preset: "test" },
|
|
46
48
|
});
|
|
47
49
|
expect(production).toEqual({
|
|
48
50
|
files: {
|
|
49
|
-
"names.txt": "
|
|
51
|
+
"names.txt": "test\nabc\ndef",
|
|
50
52
|
},
|
|
51
53
|
});
|
|
52
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createBase.test.js","sourceRoot":"","sources":["../../src/creators/createBase.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,iBAAiB,CAAC;AAE7C,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;CAC7B,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC9B,OAAO,CAAC,EAAE,OAAO,EAAE;wBAClB,OAAO;4BACN,KAAK,EAAE;gCACN,UAAU,EAAE,OAAO,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"createBase.test.js","sourceRoot":"","sources":["../../src/creators/createBase.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,iBAAiB,CAAC;AAE7C,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;CAC7B,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC9B,OAAO,CAAC,EAAE,OAAO,EAAE;wBAClB,OAAO;4BACN,KAAK,EAAE;gCACN,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG;6BACjD;yBACD,CAAC;oBACH,CAAC;iBACD,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;oBAChC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;iBACxC,CAAC,CAAC;gBAEH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;oBAC1B,KAAK,EAAE;wBACN,UAAU,EAAE,YAAY;qBACxB;iBACD,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC5B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC9B,MAAM,EAAE;wBACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;qBACtC;oBACD,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;wBAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;wBAEzB,OAAO;4BACN,KAAK,EAAE;gCACN,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CACzD,IAAI,CACJ;6BACD;yBACD,CAAC;oBACH,CAAC;iBACD,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;oBAChC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE;oBAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;iBACxC,CAAC,CAAC;gBAEH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;oBAC1B,KAAK,EAAE;wBACN,WAAW,EAAE,gBAAgB;qBAC7B;iBACD,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AnyOptionalShape, InferredObject } from "bingo";
|
|
2
|
+
import { BlockDefinitionWithAddons, BlockDefinitionWithoutAddons, BlockWithAddons, BlockWithoutAddons } from "../types/blocks.js";
|
|
3
|
+
export declare function createBlock<AddonsShape extends AnyOptionalShape, Options extends object>(blockDefinition: BlockDefinitionWithAddons<AddonsShape, Options>): BlockWithAddons<InferredObject<AddonsShape>, Options>;
|
|
4
|
+
export declare function createBlock<Options extends object>(blockDefinition: BlockDefinitionWithoutAddons<Options>): BlockWithoutAddons<Options>;
|
|
5
|
+
//# sourceMappingURL=createBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlock.d.ts","sourceRoot":"","sources":["../../src/creators/createBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAEN,yBAAyB,EACzB,4BAA4B,EAC5B,eAAe,EACf,kBAAkB,EAClB,MAAM,oBAAoB,CAAC;AAG5B,wBAAgB,WAAW,CAC1B,WAAW,SAAS,gBAAgB,EACpC,OAAO,SAAS,MAAM,EAEtB,eAAe,EAAE,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,GAC9D,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AACzD,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,EACjD,eAAe,EAAE,4BAA4B,CAAC,OAAO,CAAC,GACpD,kBAAkB,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { applyZodDefaults, isDefinitionWithAddons } from "./utils.js";
|
|
2
|
+
export function createBlock(blockDefinition) {
|
|
3
|
+
// Blocks without Addons can't be called as functions.
|
|
4
|
+
if (!isDefinitionWithAddons(blockDefinition)) {
|
|
5
|
+
return blockDefinition;
|
|
6
|
+
}
|
|
7
|
+
const addonsSchema = blockDefinition.addons;
|
|
8
|
+
// Blocks with Addons do need to be callable as functions...
|
|
9
|
+
function block(addons) {
|
|
10
|
+
return { addons, block };
|
|
11
|
+
}
|
|
12
|
+
// ...and also still have the Block Definition properties.
|
|
13
|
+
Object.assign(block, blockDefinition);
|
|
14
|
+
block.produce = (context) => {
|
|
15
|
+
return blockDefinition.produce({
|
|
16
|
+
...context,
|
|
17
|
+
addons: applyZodDefaults(addonsSchema, context.addons),
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
return block;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=createBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlock.js","sourceRoot":"","sources":["../../src/creators/createBlock.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAWtE,MAAM,UAAU,WAAW,CAI1B,eAEwC;IAExC,sDAAsD;IACtD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;IAI5C,4DAA4D;IAC5D,SAAS,KAAK,CAAC,MAAc;QAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAEtC,KAAK,CAAC,OAAO,GAAG,CAAC,OAAgD,EAAE,EAAE;QACpE,OAAO,eAAe,CAAC,OAAO,CAAC;YAC9B,GAAG,OAAO;YACV,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;SACtD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAyC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlock.test.d.ts","sourceRoot":"","sources":["../../src/creators/createBlock.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { createBlock } from "./createBlock.js";
|
|
4
|
+
describe("createBlock", () => {
|
|
5
|
+
describe("without Addons", () => {
|
|
6
|
+
it("produces without Addons", () => {
|
|
7
|
+
const block = createBlock({
|
|
8
|
+
produce({ options }) {
|
|
9
|
+
return {
|
|
10
|
+
files: {
|
|
11
|
+
"name.txt": `${options.name} (${options.preset})`,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
const production = block.produce({
|
|
17
|
+
options: { name: "abc", preset: "test" },
|
|
18
|
+
});
|
|
19
|
+
expect(production).toEqual({
|
|
20
|
+
files: {
|
|
21
|
+
"name.txt": "abc (test)",
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe("with Addons", () => {
|
|
27
|
+
it("applies Zod defaults when producing with Addons", () => {
|
|
28
|
+
const block = createBlock({
|
|
29
|
+
addons: {
|
|
30
|
+
names: z.array(z.string()).default([]),
|
|
31
|
+
},
|
|
32
|
+
produce({ addons, options }) {
|
|
33
|
+
const { names } = addons;
|
|
34
|
+
return {
|
|
35
|
+
files: {
|
|
36
|
+
"names.txt": [options.preset, options.name, ...names].join("\n"),
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
const production = block.produce({
|
|
42
|
+
addons: { names: ["def"] },
|
|
43
|
+
options: { name: "abc", preset: "test" },
|
|
44
|
+
});
|
|
45
|
+
expect(production).toEqual({
|
|
46
|
+
files: {
|
|
47
|
+
"names.txt": "test\nabc\ndef",
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=createBlock.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlock.test.js","sourceRoot":"","sources":["../../src/creators/createBlock.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,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YAClC,MAAM,KAAK,GAAG,WAAW,CAAmB;gBAC3C,OAAO,CAAC,EAAE,OAAO,EAAE;oBAClB,OAAO;wBACN,KAAK,EAAE;4BACN,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG;yBACjD;qBACD,CAAC;gBACH,CAAC;aACD,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;gBAChC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;aACxC,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAC1B,KAAK,EAAE;oBACN,UAAU,EAAE,YAAY;iBACxB;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,MAAM,KAAK,GAAG,WAAW,CAGvB;gBACD,MAAM,EAAE;oBACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;iBACtC;gBACD,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;oBAC1B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;oBAEzB,OAAO;wBACN,KAAK,EAAE;4BACN,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;yBAChE;qBACD,CAAC;gBACH,CAAC;aACD,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;gBAChC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE;gBAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;aACxC,CAAC,CAAC;YAEH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAC1B,KAAK,EAAE;oBACN,WAAW,EAAE,gBAAgB;iBAC7B;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAC;AAQtE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACN,eAAe,EACf,yBAAyB,EAEzB,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,qBAAqB,CAAC,YAAY,SAAS,QAAQ,EAClE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,GACzD,eAAe,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"createStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAC;AAQtE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACN,eAAe,EACf,yBAAyB,EAEzB,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,qBAAqB,CAAC,YAAY,SAAS,QAAQ,EAClE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,GACzD,eAAe,CAAC,YAAY,CAAC,CAqF/B"}
|
|
@@ -37,6 +37,10 @@ export function createStratumTemplate(base, templateDefinition) {
|
|
|
37
37
|
prepare(context) {
|
|
38
38
|
return {
|
|
39
39
|
preset: () => {
|
|
40
|
+
if (context.options.preset) {
|
|
41
|
+
// TODO: why is this type assertion necessary?
|
|
42
|
+
return context.options.preset;
|
|
43
|
+
}
|
|
40
44
|
// TODO: It would be better to run the base.prepare first to generate option defaults.
|
|
41
45
|
// ...
|
|
42
46
|
const preset = context.files && inferPreset(context, templateDefinition.presets);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,18 @@ describe("createStratumTemplate", () => {
|
|
|
65
65
|
expect(mockInferPreset).not.toHaveBeenCalled();
|
|
66
66
|
expect(options).toEqual({});
|
|
67
67
|
});
|
|
68
|
+
it("does not call inferPreset when a preset option is manually provided", async () => {
|
|
69
|
+
const preset = "example";
|
|
70
|
+
const lazyOptions = templateWithPreset.prepare({
|
|
71
|
+
log: mockLog,
|
|
72
|
+
// TODO: why is this type assertion necessary?
|
|
73
|
+
options: { ...mockOptions, preset },
|
|
74
|
+
take: vi.fn(),
|
|
75
|
+
});
|
|
76
|
+
const options = await awaitLazyProperties(lazyOptions);
|
|
77
|
+
expect(mockInferPreset).not.toHaveBeenCalled();
|
|
78
|
+
expect(options).toEqual({ preset });
|
|
79
|
+
});
|
|
68
80
|
it("does not display a log when inferPreset returns undefined", async () => {
|
|
69
81
|
mockInferPreset.mockReturnValueOnce(undefined);
|
|
70
82
|
const lazyOptions = templateWithPreset.prepare({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AboutBase, AboutBaseWithName } from "bingo";
|
|
2
|
+
export interface HasAbout {
|
|
3
|
+
about: AboutBase;
|
|
4
|
+
}
|
|
5
|
+
export interface HasAboutWithName {
|
|
6
|
+
about: AboutBaseWithName;
|
|
7
|
+
}
|
|
8
|
+
export declare function hasName<T extends Partial<HasAbout>>(value: T): value is HasAboutWithName & T;
|
|
9
|
+
//# sourceMappingURL=hasName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasName.d.ts","sourceRoot":"","sources":["../../src/predicates/hasName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,iBAAiB,CAAC;CACzB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,QAAQ,CAAC,EAClD,KAAK,EAAE,CAAC,GACN,KAAK,IAAI,gBAAgB,GAAG,CAAC,CAE/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasName.js","sourceRoot":"","sources":["../../src/predicates/hasName.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,OAAO,CACtB,KAAQ;IAER,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAC5B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Block } from "../types/blocks.js";
|
|
2
|
-
import {
|
|
3
|
-
export declare function applyBlockModifications<Options extends object>(initial: Block<object | undefined, Options>[], { add, exclude }?:
|
|
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
4
|
//# sourceMappingURL=applyBlockModifications.d.ts.map
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -4,14 +4,14 @@ import { BlockCreation } from "../types/creations.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Settings to run a Block with {@link produceBlock} that might have addons.
|
|
6
6
|
* @template Addons Schema of Block-specific args defined by the Block, if defined.
|
|
7
|
-
* @template Options Options values as described by the Block's Base's options schema.
|
|
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
13
|
* @template Addons Schema of Block-specific args defined by the Block.
|
|
14
|
-
* @template Options Options values as described by the Block's Base's options schema.
|
|
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> {
|
|
@@ -19,7 +19,7 @@ export interface ProduceBlockSettingsWithAddons<Addons extends object, Options e
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Settings to run a Block with {@link produceBlock} that does not define addons.
|
|
22
|
-
* @template Options Options values as described by the Block's Base's options schema.
|
|
22
|
+
* @template Options Options values as described by the Block's Base's options schema, as well as preset.
|
|
23
23
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
|
|
24
24
|
*/
|
|
25
25
|
export interface ProduceBlockSettingsWithoutAddons<Options extends object> {
|
|
@@ -30,13 +30,13 @@ export interface ProduceBlockSettingsWithoutAddons<Options extends object> {
|
|
|
30
30
|
/**
|
|
31
31
|
* Produces a single Block that defines addons.
|
|
32
32
|
* @template Addons Schema of Block-specific args defined by the Block, if defined.
|
|
33
|
-
* @template Options Options values as described by the Block's Base's options schema.
|
|
33
|
+
* @template Options Options values as described by the Block's Base's options schema, as well as preset.
|
|
34
34
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
|
|
35
35
|
*/
|
|
36
36
|
export declare function produceBlock<Addons extends object, Options extends object>(block: BlockWithAddons<Addons, Options>, settings: ProduceBlockSettingsWithAddons<Addons, Options>): Partial<BlockCreation<Options>>;
|
|
37
37
|
/**
|
|
38
38
|
* Produces a single Block that does not define addons.
|
|
39
|
-
* @template Options Options values as described by the Block's Base's options schema.
|
|
39
|
+
* @template Options Options values as described by the Block's Base's options schema, as well as preset.
|
|
40
40
|
* @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
|
|
41
41
|
*/
|
|
42
42
|
export declare function produceBlock<Options extends object>(block: BlockWithoutAddons<Options>, settings: ProduceBlockSettingsWithoutAddons<Options>): Partial<BlockCreation<Options>>;
|
|
@@ -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;
|
|
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;AACnC;;;;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"}
|
|
@@ -2,7 +2,7 @@ import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Produces a single Block.
|
|
4
4
|
* @template Addons Schema of Block-specific args defined by the Block, if defined.
|
|
5
|
-
* @template Options Options values as described by the Block's Base's options schema.
|
|
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
|
*/
|
|
8
8
|
export function produceBlock(block, settings) {
|
|
@@ -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;AA6DxE;;;;;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"}
|
|
@@ -47,7 +47,7 @@ describe("produceStratumTemplate", () => {
|
|
|
47
47
|
produce({ options }) {
|
|
48
48
|
return {
|
|
49
49
|
files: {
|
|
50
|
-
"value.txt": options.value
|
|
50
|
+
"value.txt": `${options.value} (${options.preset})`,
|
|
51
51
|
},
|
|
52
52
|
};
|
|
53
53
|
},
|
|
@@ -67,7 +67,7 @@ describe("produceStratumTemplate", () => {
|
|
|
67
67
|
});
|
|
68
68
|
expect(actual).toEqual({
|
|
69
69
|
files: {
|
|
70
|
-
"value.txt": "abc",
|
|
70
|
+
"value.txt": "abc (test)",
|
|
71
71
|
},
|
|
72
72
|
});
|
|
73
73
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"produceStratumTemplate.test.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.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,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,MAAM,cAAc,GAAG,UAAU,CAAC;YACjC,OAAO,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;aACjB;SACD,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC;YACnD,OAAO,CAAC,EAAE,OAAO,EAAE;gBAClB,OAAO;oBACN,KAAK,EAAE;wBACN,WAAW,EAAE,OAAO,CAAC,KAAK;qBAC1B;iBACD,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC;YACrD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACvB,MAAM,EAAE,CAAC,gBAAgB,CAAC;SAC1B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,qBAAqB,CAAC;YACrD,OAAO,EAAE,CAAC,iBAAiB,CAAC;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,EAAE;YAC/C,OAAO,EAAE;gBACR,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,KAAK;aACZ;SACD,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACtB,KAAK,EAAE;gBACN,WAAW,EAAE,KAAK;aAClB;SACD,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,cAAc,GAAG,UAAU,CAAC;YACjC,OAAO,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;aACjB;SACD,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,cAAc,CAAC,WAAW,CAAC;YACnD,OAAO,CAAC,EAAE,OAAO,EAAE;gBAClB,OAAO;oBACN,KAAK,EAAE;wBACN,WAAW,EAAE,OAAO,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"produceStratumTemplate.test.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.test.ts"],"names":[],"mappings":"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"}
|
package/lib/types/blocks.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AboutBase, AnyOptionalShape, InferredObject } from "bingo";
|
|
2
2
|
import { BlockCreation, CreatedBlockAddons } from "./creations.js";
|
|
3
|
+
import { StratumTemplateOptions } from "./templates.js";
|
|
3
4
|
export type Block<Addons extends object | undefined = object | undefined, Options extends object = object> = Addons extends object ? BlockWithAddons<Addons, Options> : BlockWithoutAddons<Options>;
|
|
4
5
|
export type BlockAugmentWithAddons<Addons extends object, Options extends object> = (context: BlockContextWithAddons<Addons, Options>) => Partial<BlockCreation<Options>>;
|
|
5
6
|
export type BlockAugmentWithoutAddons<Options extends object> = (context: BlockContextWithoutAddons<Options>) => Partial<BlockCreation<Options>>;
|
|
@@ -8,15 +9,13 @@ export interface BlockBase {
|
|
|
8
9
|
}
|
|
9
10
|
export interface BlockContextWithAddons<Addons extends object, Options extends object> extends BlockContextWithoutAddons<Options> {
|
|
10
11
|
addons: Addons;
|
|
11
|
-
options: Options;
|
|
12
12
|
}
|
|
13
13
|
export interface BlockContextWithOptionalAddons<Addons extends object, Options extends object> extends BlockContextWithoutAddons<Options> {
|
|
14
14
|
addons?: Addons;
|
|
15
|
-
options: Options;
|
|
16
15
|
}
|
|
17
16
|
export interface BlockContextWithoutAddons<Options extends object> {
|
|
18
17
|
offline?: boolean;
|
|
19
|
-
options: Options;
|
|
18
|
+
options: Options & StratumTemplateOptions;
|
|
20
19
|
}
|
|
21
20
|
export type BlockDefinition<AddonsShape extends AnyOptionalShape | undefined, Options extends object> = AddonsShape extends object ? BlockDefinitionWithAddons<AddonsShape, Options> : BlockDefinitionWithoutAddons<Options>;
|
|
22
21
|
export interface BlockDefinitionBase {
|
|
@@ -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;AAEpE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/types/blocks.ts"],"names":[],"mappings":"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"}
|
package/lib/types/settings.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export interface BlockModifications<Options extends object = object> {
|
|
|
3
3
|
add?: Block<object | undefined, Options>[];
|
|
4
4
|
exclude?: Block<object | undefined, Options>[];
|
|
5
5
|
}
|
|
6
|
-
export interface
|
|
6
|
+
export interface StratumSettings<Options extends object = object> {
|
|
7
7
|
blocks?: BlockModifications<Options>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC/D,MAAM,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC"}
|
package/lib/types/templates.d.ts
CHANGED
|
@@ -3,20 +3,77 @@ import { z } from "zod";
|
|
|
3
3
|
import { Base } from "./bases.js";
|
|
4
4
|
import { Preset } from "./presets.js";
|
|
5
5
|
import { StratumRefinements } from "./refinements.js";
|
|
6
|
+
/**
|
|
7
|
+
* Stratum Template grouping together Presets of Blocks created from a Base.
|
|
8
|
+
* @template OptionsShape Schemas of options the Base's Blocks takes in.
|
|
9
|
+
* @see {@link https://www.create.bingo/engines/stratum/concepts/templates}
|
|
10
|
+
*/
|
|
6
11
|
export interface StratumTemplate<OptionsShape extends AnyShape> extends Template<OptionsShape & StratumTemplateOptionsShape, StratumRefinements<InferredObject<OptionsShape>>> {
|
|
12
|
+
/**
|
|
13
|
+
* Base creating this Template, as well as its Blocks and Presets.
|
|
14
|
+
* @see {@link https://www.create.bingo/engines/stratum/concepts/bases}
|
|
15
|
+
*/
|
|
7
16
|
base: Base<OptionsShape>;
|
|
17
|
+
/**
|
|
18
|
+
* Sets up lazily load default options values.
|
|
19
|
+
* This is indicated as required here because all Stratum Templates infer
|
|
20
|
+
* at least their --preset during transition mode.
|
|
21
|
+
* @see {@link https://www.create.bingo/build/apis/create-template#prepare}
|
|
22
|
+
*/
|
|
8
23
|
prepare: TemplatePrepare<InferredObject<OptionsShape>, StratumRefinements<InferredObject<OptionsShape>>>;
|
|
24
|
+
/**
|
|
25
|
+
* The Presets users can choose from with the Template, in order of how they should be listed.
|
|
26
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createtemplate-presets}
|
|
27
|
+
*/
|
|
9
28
|
presets: Preset<OptionsShape>[];
|
|
10
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Description of how to create a Stratum Template from a Base.
|
|
32
|
+
* @template OptionsShape Schemas of options the Base's Blocks takes in.
|
|
33
|
+
*/
|
|
11
34
|
export interface StratumTemplateDefinition<OptionsShape extends AnyShape> {
|
|
35
|
+
/**
|
|
36
|
+
* About information for the template, including an optional repository locator.
|
|
37
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createtemplate-about}
|
|
38
|
+
*/
|
|
12
39
|
about?: TemplateAbout;
|
|
40
|
+
/**
|
|
41
|
+
* Sets up lazily load default options values.
|
|
42
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createtemplate-prepare}
|
|
43
|
+
*/
|
|
13
44
|
prepare?: TemplatePrepare<InferredObject<OptionsShape>, StratumRefinements<InferredObject<OptionsShape>>>;
|
|
45
|
+
/**
|
|
46
|
+
* Presets users can choose from with the Template, in order of how they should be listed.
|
|
47
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createtemplate-presets}
|
|
48
|
+
*/
|
|
14
49
|
presets: Preset<OptionsShape>[];
|
|
50
|
+
/**
|
|
51
|
+
* Suggested Preset to select by default for users, if not the first in the array.
|
|
52
|
+
* @see {@link https://www.create.bingo/engines/stratum/apis/create-base#createtemplate-suggested}
|
|
53
|
+
*/
|
|
15
54
|
suggested?: Preset<OptionsShape>;
|
|
16
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* The minimal options that are passed to all Stratum Blocks.
|
|
58
|
+
*/
|
|
59
|
+
export interface StratumTemplateOptions {
|
|
60
|
+
/**
|
|
61
|
+
* Which Preset is being run.
|
|
62
|
+
*/
|
|
63
|
+
preset: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The minimum options schemas all Stratum Templates share.
|
|
67
|
+
*/
|
|
17
68
|
export interface StratumTemplateOptionsShape {
|
|
69
|
+
/**
|
|
70
|
+
* Union of Preset names available to choose from.
|
|
71
|
+
*/
|
|
18
72
|
preset: z.ZodDefault<z.ZodUnion<ZodPresetNameLiterals>>;
|
|
19
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Union of at least two literal Preset names available to choose from.
|
|
76
|
+
*/
|
|
20
77
|
export type ZodPresetNameLiterals = [
|
|
21
78
|
z.ZodLiteral<string>,
|
|
22
79
|
z.ZodLiteral<string>,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,eAAe,CAAC,YAAY,SAAS,QAAQ,CAC7D,SAAQ,QAAQ,CACf,YAAY,GAAG,2BAA2B,EAC1C,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,YAAY,SAAS,QAAQ,CAC7D,SAAQ,QAAQ,CACf,YAAY,GAAG,2BAA2B,EAC1C,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;OAKG;IACH,OAAO,EAAE,eAAe,CACvB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IAEF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CAAC,YAAY,SAAS,QAAQ;IACvE;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CACxB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IAEF;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;CACzB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { AnyShape } from "bingo";
|
|
2
2
|
import { Preset } from "../types/presets.js";
|
|
3
|
-
export declare function getPresetByName<OptionsShape extends AnyShape>(presets: Preset<OptionsShape>[], requested: string): Preset<OptionsShape
|
|
3
|
+
export declare function getPresetByName<OptionsShape extends AnyShape>(presets: Preset<OptionsShape>[], requested: string): Error | Preset<OptionsShape>;
|
|
4
4
|
//# sourceMappingURL=getPresetByName.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { AnyShape } from "bingo";
|
|
2
2
|
import { Preset } from "../types/presets.js";
|
|
3
|
-
export declare function getPresetByName<OptionsShape extends AnyShape>(presets: Preset<OptionsShape>[], requested: string): Preset<OptionsShape
|
|
3
|
+
export declare function getPresetByName<OptionsShape extends AnyShape>(presets: Preset<OptionsShape>[], requested: string): Error | Preset<OptionsShape>;
|
|
4
4
|
//# sourceMappingURL=getPresetByName.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPresetByName.d.ts","sourceRoot":"","sources":["../../src/utils.ts/getPresetByName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"getPresetByName.d.ts","sourceRoot":"","sources":["../../src/utils.ts/getPresetByName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,wBAAgB,eAAe,CAAC,YAAY,SAAS,QAAQ,EAC5D,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,EAC/B,SAAS,EAAE,MAAM,gCAmBjB"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import slugify from "slugify";
|
|
2
2
|
export function getPresetByName(presets, requested) {
|
|
3
|
-
const presetsByName = new Map(Array.from(presets.map((preset) => [
|
|
4
|
-
|
|
3
|
+
const presetsByName = new Map(Array.from(presets.map((preset) => [
|
|
4
|
+
// @ts-expect-error -- https://github.com/simov/slugify/issues/196
|
|
5
|
+
slugify(preset.about.name, { lower: true }),
|
|
6
|
+
preset,
|
|
7
|
+
])));
|
|
8
|
+
return (
|
|
9
|
+
// @ts-expect-error -- https://github.com/simov/slugify/issues/196
|
|
10
|
+
presetsByName.get(slugify(requested, { lower: true })) ??
|
|
5
11
|
new Error(`${requested} is not one of: ${Array.from(presetsByName.keys()).join(", ")}`));
|
|
6
12
|
}
|
|
7
13
|
//# sourceMappingURL=getPresetByName.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPresetByName.js","sourceRoot":"","sources":["../../src/utils.ts/getPresetByName.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPresetByName.js","sourceRoot":"","sources":["../../src/utils.ts/getPresetByName.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,MAAM,UAAU,eAAe,CAC9B,OAA+B,EAC/B,SAAiB;IAEjB,MAAM,aAAa,GAAG,IAAI,GAAG,CAC5B,KAAK,CAAC,IAAI,CACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACvB,kEAAkE;QAClE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM;KACN,CAAC,CACF,CACD,CAAC;IAEF,OAAO;IACN,kEAAkE;IAClE,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,KAAK,CACR,GAAG,SAAS,mBAAmB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CACD,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bingo-stratum",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Highly composable, customizable templating engine for Bingo. 🏭",
|
|
5
|
+
"homepage": "https://www.create.bingo/engines/stratum/packages/bingo-stratum",
|
|
5
6
|
"repository": {
|
|
6
7
|
"type": "git",
|
|
7
8
|
"url": "https://github.com/JoshuaKGoldberg/bingo",
|
|
@@ -28,14 +29,14 @@
|
|
|
28
29
|
"without-undefined-properties": "^0.1.1"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
|
-
"@types/node": "22.13.
|
|
32
|
-
"bingo": "^0.5.
|
|
32
|
+
"@types/node": "22.13.9",
|
|
33
|
+
"bingo": "^0.5.7"
|
|
33
34
|
},
|
|
34
35
|
"peerDependencies": {
|
|
35
36
|
"zod": "^3.24.2",
|
|
36
|
-
"bingo": "^0.5.
|
|
37
|
-
"bingo-fs": "^0.5.
|
|
38
|
-
"bingo-systems": "^0.5.
|
|
37
|
+
"bingo": "^0.5.7",
|
|
38
|
+
"bingo-fs": "^0.5.4",
|
|
39
|
+
"bingo-systems": "^0.5.4"
|
|
39
40
|
},
|
|
40
41
|
"engines": {
|
|
41
42
|
"node": ">=18"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBlock.d.ts","sourceRoot":"","sources":["../../src/predicates/isBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAOtD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isBlock.js","sourceRoot":"","sources":["../../src/predicates/isBlock.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,KAAc;IACrC,OAAO,CACN,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,SAAS,IAAI,KAAK;QAClB,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CACnC,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Block } from "../types/blocks.js";
|
|
2
|
-
export interface BlockModifications<Options extends object = object> {
|
|
3
|
-
add?: Block<object | undefined, Options>[];
|
|
4
|
-
exclude?: Block<object | undefined, Options>[];
|
|
5
|
-
}
|
|
6
|
-
export interface StratumCustomizations<Options extends object = object> {
|
|
7
|
-
blocks?: BlockModifications<Options>;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=customizations..d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customizations..d.ts","sourceRoot":"","sources":["../../src/types/customizations..ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACrE,MAAM,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customizations..js","sourceRoot":"","sources":["../../src/types/customizations..ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Block } from "./blocks.js";
|
|
2
|
-
/**
|
|
3
|
-
* Blocks to add and/or exclude from production.
|
|
4
|
-
* @template Options Options values as described by the template's options schema.
|
|
5
|
-
* @see {@link https://www.create.bingo/engines/stratum/details/configurations#blocks}
|
|
6
|
-
*/
|
|
7
|
-
export interface BlockRefinements<Options extends object = object> {
|
|
8
|
-
add?: Block<object | undefined, Options>[];
|
|
9
|
-
exclude?: Block<object | undefined, Options>[];
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Customizations that all Stratum templates may apply in a config file.
|
|
13
|
-
* @template Options Options values as described by the template's options schema.
|
|
14
|
-
* @see {@link https://www.create.bingo/engines/stratum/details/configurations#settings}
|
|
15
|
-
*/
|
|
16
|
-
export interface StratumRefinements<Options extends object = object> {
|
|
17
|
-
/**
|
|
18
|
-
* Blocks to add and/or exclude from production.
|
|
19
|
-
*/
|
|
20
|
-
blocks?: BlockRefinements<Options>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=customizations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customizations.d.ts","sourceRoot":"","sources":["../../src/types/customizations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customizations.js","sourceRoot":"","sources":["../../src/types/customizations.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createBlockExclusionOption.d.ts","sourceRoot":"","sources":["../../src/utils.ts/createBlockExclusionOption.ts"],"names":[],"mappings":"AAEA,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,UAE3D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createBlockExclusionOption.js","sourceRoot":"","sources":["../../src/utils.ts/createBlockExclusionOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC3D,OAAO,WAAW,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slugifyName.d.ts","sourceRoot":"","sources":["../../src/utils.ts/slugifyName.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAEE,MAAM,CACnD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slugifyName.js","sourceRoot":"","sources":["../../src/utils.ts/slugifyName.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC3C,kEAAkE;IAClE,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;AACrD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slugifyPresetName.d.ts","sourceRoot":"","sources":["../../src/utils.ts/slugifyPresetName.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAEE,MAAM,CACnD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slugifyPresetName.js","sourceRoot":"","sources":["../../src/utils.ts/slugifyPresetName.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC3C,kEAAkE;IAClE,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;AACrD,CAAC"}
|