@adeficior/data-modifier 1.0.0-rc.28 → 1.0.0-rc.30
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/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/context.d.ts +1 -0
- package/dist/context.js +1 -0
- package/dist/context.js.map +1 -0
- package/dist/emit/assets/blockstates.d.ts +2 -1
- package/dist/emit/assets/blockstates.js +3 -1
- package/dist/emit/assets/blockstates.js.map +1 -1
- package/dist/emit/assets/lang.d.ts +2 -1
- package/dist/emit/assets/lang.js +32 -30
- package/dist/emit/assets/lang.js.map +1 -1
- package/dist/emit/assets/models.d.ts +2 -2
- package/dist/emit/assets/models.js +3 -2
- package/dist/emit/assets/models.js.map +1 -1
- package/dist/emit/blacklist.d.ts +2 -2
- package/dist/emit/blacklist.js +17 -15
- package/dist/emit/blacklist.js.map +1 -1
- package/dist/emit/content/blockDefinition.d.ts +2 -1
- package/dist/emit/content/blockDefinition.js +3 -1
- package/dist/emit/content/blockDefinition.js.map +1 -1
- package/dist/emit/content/itemDefinition.d.ts +2 -1
- package/dist/emit/content/itemDefinition.js +3 -1
- package/dist/emit/content/itemDefinition.js.map +1 -1
- package/dist/emit/custom.d.ts +2 -2
- package/dist/emit/custom.js +8 -6
- package/dist/emit/custom.js.map +1 -1
- package/dist/emit/data/loot.d.ts +2 -2
- package/dist/emit/data/loot.js +11 -12
- package/dist/emit/data/loot.js.map +1 -1
- package/dist/emit/data/recipe.d.ts +2 -2
- package/dist/emit/data/recipe.js +21 -12
- package/dist/emit/data/recipe.js.map +1 -1
- package/dist/emit/data/tags.d.ts +2 -2
- package/dist/emit/data/tags.js +14 -12
- package/dist/emit/data/tags.js.map +1 -1
- package/dist/emit/index.d.ts +2 -2
- package/dist/emit/polytoneTabs.d.ts +2 -1
- package/dist/emit/polytoneTabs.js +6 -2
- package/dist/emit/polytoneTabs.js.map +1 -1
- package/dist/emit/rule/lootTable.d.ts +3 -3
- package/dist/emit/rule/lootTable.js +4 -5
- package/dist/emit/rule/lootTable.js.map +1 -1
- package/dist/emit/rule/recipe.d.ts +3 -3
- package/dist/emit/rule/recipe.js +4 -5
- package/dist/emit/rule/recipe.js.map +1 -1
- package/dist/emit/ruled.d.ts +3 -4
- package/dist/emit/ruled.js +24 -22
- package/dist/emit/ruled.js.map +1 -1
- package/dist/error.js +4 -2
- package/dist/error.js.map +1 -1
- package/dist/loader/index.d.ts +2 -2
- package/dist/loader/index.js +3 -4
- package/dist/loader/index.js.map +1 -1
- package/dist/loader/loot.js +2 -2
- package/dist/loader/loot.js.map +1 -1
- package/dist/loader/pack.d.ts +5 -4
- package/dist/loader/pack.js +12 -7
- package/dist/loader/pack.js.map +1 -1
- package/dist/loader/registry/dump.d.ts +2 -4
- package/dist/loader/registry/dump.js +4 -13
- package/dist/loader/registry/dump.js.map +1 -1
- package/dist/packFormat.d.ts +2 -0
- package/dist/packFormat.js +6 -0
- package/dist/packFormat.js.map +1 -1
- package/package.json +2 -3
package/dist/emit/data/recipe.js
CHANGED
|
@@ -3,7 +3,7 @@ import { resolveIDTest, } from "../../common/filters.js";
|
|
|
3
3
|
import { encodeId } from "../../common/id.js";
|
|
4
4
|
import createIngredientPredicate from "../../common/ingredient/filter.js";
|
|
5
5
|
import createResultFilter from "../../common/result/filter.js";
|
|
6
|
-
import {
|
|
6
|
+
import { recipeFolder } from "../../packFormat.js";
|
|
7
7
|
import { createReplacer, RecipeHolder, } from "../../parser/recipe/index.js";
|
|
8
8
|
import CustomEmitter from "../custom.js";
|
|
9
9
|
import RecipeRule from "../rule/recipe.js";
|
|
@@ -32,19 +32,18 @@ export default class RecipeEmitter {
|
|
|
32
32
|
serializer;
|
|
33
33
|
custom = new CustomEmitter((it) => this.recipePath(it));
|
|
34
34
|
ruled;
|
|
35
|
-
resolver;
|
|
36
35
|
constructor(logger, registry, context, serializer) {
|
|
37
36
|
this.logger = logger;
|
|
38
37
|
this.registry = registry;
|
|
39
38
|
this.context = context;
|
|
40
39
|
this.serializer = serializer;
|
|
41
|
-
this.ruled = new RuledEmitter(this.
|
|
42
|
-
|
|
40
|
+
this.ruled = new RuledEmitter(this.registry, (id) => this.recipePath(id), EMPTY_RECIPE, (it) => this.serializer.serialize(it), (id) => this.custom.has(id));
|
|
41
|
+
}
|
|
42
|
+
resolver(context) {
|
|
43
|
+
return combineResolvers([this.ruled.resolver(context), this.custom.resolver(context)], { async: true });
|
|
43
44
|
}
|
|
44
45
|
recipePath(id) {
|
|
45
|
-
const folder =
|
|
46
|
-
? "recipe"
|
|
47
|
-
: "recipes";
|
|
46
|
+
const folder = recipeFolder(this.context.packFormat);
|
|
48
47
|
return `data/${id.namespace}/${folder}/${id.path}.json`;
|
|
49
48
|
}
|
|
50
49
|
createIngredientPredicate(filter) {
|
|
@@ -90,24 +89,34 @@ export default class RecipeEmitter {
|
|
|
90
89
|
this.custom.add(id, value);
|
|
91
90
|
}
|
|
92
91
|
}
|
|
93
|
-
addRule(
|
|
92
|
+
addRule(context, modifier, recipeTest = {}, ingredientTests = {}) {
|
|
94
93
|
const recipePredicates = this.resolveRecipeTest(recipeTest ?? {});
|
|
95
|
-
this.ruled.addRule(new RecipeRule(
|
|
94
|
+
this.ruled.addRule(new RecipeRule(context, recipePredicates.id, recipePredicates.type, [ingredientTests.ingredient, ...recipePredicates.ingredient].filter(exists), [ingredientTests.result, ...recipePredicates.result].filter(exists), modifier), recipeTest.optional !== true);
|
|
96
95
|
}
|
|
97
96
|
remove(test) {
|
|
98
|
-
this.addRule(
|
|
97
|
+
this.addRule({ operation: "remove", test }, () => null, test);
|
|
99
98
|
}
|
|
100
99
|
replaceResult(test, input, additionalTest) {
|
|
101
100
|
const predicate = this.createResultPredicate(test);
|
|
102
101
|
const value = this.context.results.create(input);
|
|
103
102
|
const replace = createReplacer(predicate, value);
|
|
104
|
-
this.addRule(
|
|
103
|
+
this.addRule({
|
|
104
|
+
operation: "replace result",
|
|
105
|
+
from: test,
|
|
106
|
+
to: value,
|
|
107
|
+
test: additionalTest,
|
|
108
|
+
}, (recipe) => recipe.replaceResult(replace), additionalTest, { result: predicate });
|
|
105
109
|
}
|
|
106
110
|
replaceIngredient(test, input, additionalTest) {
|
|
107
111
|
const predicate = this.createIngredientPredicate(test);
|
|
108
112
|
const value = this.context.ingredients.create(input);
|
|
109
113
|
const replace = createReplacer(predicate, value);
|
|
110
|
-
this.addRule(
|
|
114
|
+
this.addRule({
|
|
115
|
+
operation: "replace ingredient",
|
|
116
|
+
from: test,
|
|
117
|
+
to: value,
|
|
118
|
+
test: additionalTest,
|
|
119
|
+
}, (recipe) => recipe.replaceIngredient(replace), additionalTest, { ingredient: predicate });
|
|
111
120
|
}
|
|
112
121
|
clear() {
|
|
113
122
|
this.custom.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/data/recipe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/data/recipe.ts"],"names":[],"mappings":"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"}
|
package/dist/emit/data/tags.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InferIds, RegistryId } from "@adeficior/data-modifier/generated";
|
|
2
|
-
import { type Logger } from "@adeficior/pack-resolver";
|
|
2
|
+
import { type BaseContext, type Logger } from "@adeficior/pack-resolver";
|
|
3
3
|
import { type CommonFilter } from "../../common/filters.js";
|
|
4
4
|
import type { NormalizedId, TagInput } from "../../common/id.js";
|
|
5
5
|
import type TagsLoader from "../../loader/tags.js";
|
|
@@ -30,7 +30,7 @@ export default class TagEmitter implements TagRules, ClearableEmitter {
|
|
|
30
30
|
readonly fluids: ScopedTagRules<"minecraft:fluid">;
|
|
31
31
|
constructor(logger: Logger, registry: TagsLoader, options: TagEmitterOptions);
|
|
32
32
|
clear(): void;
|
|
33
|
-
|
|
33
|
+
resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
|
|
34
34
|
add<T extends RegistryId>(registry: T, id: TagInput, value: TagEntry<InferIds<T>>): void;
|
|
35
35
|
remove<T extends RegistryId>(registry: T, id: TagInput, test: CommonFilter<NormalizedId<InferIds<T>>>): void;
|
|
36
36
|
scoped<T extends RegistryId>(registry: T, folder?: string): ScopedTagRules<T>;
|
package/dist/emit/data/tags.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { simpleResolver } from "@adeficior/pack-resolver";
|
|
1
|
+
import { simpleResolver, } from "@adeficior/pack-resolver";
|
|
2
2
|
import { resolveIDTest } from "../../common/filters.js";
|
|
3
3
|
import { createId, encodeId } from "../../common/id.js";
|
|
4
4
|
import Registry from "../../common/registry.js";
|
|
@@ -85,17 +85,19 @@ export default class TagEmitter {
|
|
|
85
85
|
clear() {
|
|
86
86
|
this.emitters.forEach((it) => it.clear());
|
|
87
87
|
}
|
|
88
|
-
resolver
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
88
|
+
resolver(context) {
|
|
89
|
+
return simpleResolver(async (acceptor) => {
|
|
90
|
+
const emitters = Array.from(this.emitters.values());
|
|
91
|
+
await Promise.all(emitters.flatMap((scoped) => scoped.getModified(async (id, definition) => {
|
|
92
|
+
const path = `data/${id.namespace}/tags/${scoped.folder}/${id.path}.json`;
|
|
93
|
+
await acceptor(path, toJson({
|
|
94
|
+
...definition,
|
|
95
|
+
values: definition.values && orderTagEntries(definition.values),
|
|
96
|
+
remove: definition.remove && orderTagEntries(definition.remove),
|
|
97
|
+
}));
|
|
98
|
+
})));
|
|
99
|
+
}, context);
|
|
100
|
+
}
|
|
99
101
|
add(registry, id, value) {
|
|
100
102
|
this.scoped(registry).add(id, value);
|
|
101
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/emit/data/tags.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/emit/data/tags.ts"],"names":[],"mappings":"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"}
|
package/dist/emit/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Resolver } from "@adeficior/pack-resolver";
|
|
1
|
+
import type { Acceptable, BaseContext, Resolver } from "@adeficior/pack-resolver";
|
|
2
2
|
import type { Id } from "../common/id.js";
|
|
3
3
|
export interface RegistryProvider<T> {
|
|
4
4
|
forEach(consumer: (recipe: T, id: Id) => void): void;
|
|
@@ -7,5 +7,5 @@ export interface RegistryProvider<T> {
|
|
|
7
7
|
export type PathProvider = (id: Id) => string;
|
|
8
8
|
export interface ClearableEmitter {
|
|
9
9
|
clear(): void;
|
|
10
|
-
resolver: Resolver
|
|
10
|
+
resolver(context: BaseContext): Resolver<Acceptable, BaseContext>;
|
|
11
11
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CreativeModeTabId, ItemId } from "@adeficior/data-modifier/generated";
|
|
2
|
+
import { type BaseContext } from "@adeficior/pack-resolver";
|
|
2
3
|
import type { IdInput, NormalizedId } from "../common/id.js";
|
|
3
4
|
import type RegistryLookup from "../loader/registry/index.js";
|
|
4
5
|
import type { ClearableEmitter } from "./index.js";
|
|
@@ -54,7 +55,7 @@ export default class PolytoneTabsEmitter implements PolytoneTabs, ClearableEmitt
|
|
|
54
55
|
private readonly tabs;
|
|
55
56
|
constructor(lookup: RegistryLookup);
|
|
56
57
|
clear(): void;
|
|
57
|
-
|
|
58
|
+
resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
|
|
58
59
|
remove(tab: IdInput<CreativeModeTabId> | IdInput<CreativeModeTabId>[], items: IdInput<ItemId>[], options?: TabOptions): void;
|
|
59
60
|
add(tab: IdInput<CreativeModeTabId> | IdInput<CreativeModeTabId>[], items: IdInput<ItemId>[], options?: AddOptions): void;
|
|
60
61
|
create(id: IdInput, modifications?: TabModifications): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { arrayOrSelf, combineResolvers } from "@adeficior/pack-resolver";
|
|
1
|
+
import { arrayOrSelf, combineResolvers, } from "@adeficior/pack-resolver";
|
|
2
2
|
import { difference, uniq } from "lodash-es";
|
|
3
3
|
import { createId, encodeId } from "../common/id.js";
|
|
4
4
|
import CustomEmitter from "./custom.js";
|
|
@@ -56,7 +56,11 @@ export default class PolytoneTabsEmitter {
|
|
|
56
56
|
this.entries.clear();
|
|
57
57
|
this.tabs.clear();
|
|
58
58
|
}
|
|
59
|
-
resolver
|
|
59
|
+
resolver(context) {
|
|
60
|
+
return combineResolvers([this.entries.resolver(context), this.tabs.resolver(context)], {
|
|
61
|
+
async: true,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
60
64
|
remove(tab, items, options = {}) {
|
|
61
65
|
this.forEach(tab, {
|
|
62
66
|
removals: [{ type: "items_match", items: items.map(encodeId) }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polytoneTabs.js","sourceRoot":"","sources":["../../src/emit/polytoneTabs.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"polytoneTabs.js","sourceRoot":"","sources":["../../src/emit/polytoneTabs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Logger } from "@adeficior/pack-resolver";
|
|
1
|
+
import type { ContextLike, Logger } from "@adeficior/pack-resolver";
|
|
2
2
|
import type { Predicate } from "../../common/filters.js";
|
|
3
3
|
import type { Id } from "../../common/id.js";
|
|
4
4
|
import { type Ingredient } from "../../common/ingredient/index.js";
|
|
@@ -6,10 +6,10 @@ import type { LootTable } from "../../schema/data/loot.js";
|
|
|
6
6
|
import type { Modifier } from "./index.js";
|
|
7
7
|
import Rule from "./index.js";
|
|
8
8
|
export default class LootTableRule extends Rule<LootTable> {
|
|
9
|
-
private readonly
|
|
9
|
+
private readonly context;
|
|
10
10
|
private readonly idTests;
|
|
11
11
|
private readonly outputTests;
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(context: ContextLike, idTests: Predicate<Id>[], outputTests: Predicate<Ingredient>[], modifier: Modifier<LootTable>);
|
|
13
13
|
matches(id: Id, table: LootTable, logger: Logger): boolean;
|
|
14
14
|
printWarning(logger: Logger): void;
|
|
15
15
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { exists } from "@adeficior/pack-resolver";
|
|
2
1
|
import { ItemIngredient, ItemTagIngredient, } from "../../common/ingredient/index.js";
|
|
3
2
|
import { extendLootEntry } from "../../schema/data/loot.js";
|
|
4
3
|
import Rule from "./index.js";
|
|
@@ -28,12 +27,12 @@ function hasOutput(logger, test, table) {
|
|
|
28
27
|
}));
|
|
29
28
|
}
|
|
30
29
|
export default class LootTableRule extends Rule {
|
|
31
|
-
|
|
30
|
+
context;
|
|
32
31
|
idTests;
|
|
33
32
|
outputTests;
|
|
34
|
-
constructor(
|
|
33
|
+
constructor(context, idTests, outputTests, modifier) {
|
|
35
34
|
super(modifier);
|
|
36
|
-
this.
|
|
35
|
+
this.context = context;
|
|
37
36
|
this.idTests = idTests;
|
|
38
37
|
this.outputTests = outputTests;
|
|
39
38
|
}
|
|
@@ -43,7 +42,7 @@ export default class LootTableRule extends Rule {
|
|
|
43
42
|
this.outputTests.every((test) => hasOutput(prefixed, test, table)));
|
|
44
43
|
}
|
|
45
44
|
printWarning(logger) {
|
|
46
|
-
logger.
|
|
45
|
+
logger.trace("could not find any matching loot table", this.context);
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
//# sourceMappingURL=lootTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lootTable.js","sourceRoot":"","sources":["../../../src/emit/rule/lootTable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lootTable.js","sourceRoot":"","sources":["../../../src/emit/rule/lootTable.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,kEAAkE;AAElE,SAAS,YAAY,CACnB,MAAc,EACd,IAA2B,EAC3B,IAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,wBAAwB;gBAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACrE,KAAK,gBAAgB;gBACnB,OAAO,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACtD,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAChB,MAAc,EACd,IAA2B,EAC3B,KAAgB;IAEhB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,IAAe;IAErC;IACA;IACA;IAHnB,YACmB,OAAoB,EACpB,OAAwB,EACxB,WAAoC,EACrD,QAA6B;QAE7B,KAAK,CAAC,QAAQ,CAAC,CAAC;QALC,YAAO,GAAP,OAAO,CAAa;QACpB,YAAO,GAAP,OAAO,CAAiB;QACxB,gBAAW,GAAX,WAAW,CAAyB;IAIvD,CAAC;IAED,OAAO,CAAC,EAAM,EAAE,KAAgB,EAAE,MAAc;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CACnE,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Logger } from "@adeficior/pack-resolver";
|
|
1
|
+
import type { ContextLike, Logger } from "@adeficior/pack-resolver";
|
|
2
2
|
import type { Predicate } from "../../common/filters.js";
|
|
3
3
|
import type { Id } from "../../common/id.js";
|
|
4
4
|
import type { Ingredient } from "../../common/ingredient/index.js";
|
|
@@ -7,12 +7,12 @@ import type { RecipeHolder } from "../../parser/recipe/index.js";
|
|
|
7
7
|
import type { Modifier } from "./index.js";
|
|
8
8
|
import Rule from "./index.js";
|
|
9
9
|
export default class RecipeRule extends Rule<RecipeHolder> {
|
|
10
|
-
private readonly
|
|
10
|
+
private readonly context;
|
|
11
11
|
private readonly idsTests;
|
|
12
12
|
private readonly typeTests;
|
|
13
13
|
private readonly ingredientTests;
|
|
14
14
|
private readonly resultTests;
|
|
15
|
-
constructor(
|
|
15
|
+
constructor(context: ContextLike, idsTests: Predicate<Id>[], typeTests: Predicate<Id>[], ingredientTests: Predicate<Ingredient>[], resultTests: Predicate<Result>[], modifier: Modifier<RecipeHolder>);
|
|
16
16
|
matches(id: Id, recipe: RecipeHolder, logger: Logger): boolean;
|
|
17
17
|
printWarning(logger: Logger): void;
|
|
18
18
|
}
|
package/dist/emit/rule/recipe.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { exists } from "@adeficior/pack-resolver";
|
|
2
1
|
import { createId } from "../../common/id.js";
|
|
3
2
|
import Rule from "./index.js";
|
|
4
3
|
export default class RecipeRule extends Rule {
|
|
5
|
-
|
|
4
|
+
context;
|
|
6
5
|
idsTests;
|
|
7
6
|
typeTests;
|
|
8
7
|
ingredientTests;
|
|
9
8
|
resultTests;
|
|
10
|
-
constructor(
|
|
9
|
+
constructor(context, idsTests, typeTests, ingredientTests, resultTests, modifier) {
|
|
11
10
|
super(modifier);
|
|
12
|
-
this.
|
|
11
|
+
this.context = context;
|
|
13
12
|
this.idsTests = idsTests;
|
|
14
13
|
this.typeTests = typeTests;
|
|
15
14
|
this.ingredientTests = ingredientTests;
|
|
@@ -23,7 +22,7 @@ export default class RecipeRule extends Rule {
|
|
|
23
22
|
this.resultTests.every((test) => recipe.getResults().some((it) => test(it, logger))));
|
|
24
23
|
}
|
|
25
24
|
printWarning(logger) {
|
|
26
|
-
logger.
|
|
25
|
+
logger.trace("could not find any recipes matching", this.context);
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
//# sourceMappingURL=recipe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/rule/recipe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../src/emit/rule/recipe.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,IAAkB;IAErC;IACA;IACA;IACA;IACA;IALnB,YACmB,OAAoB,EACpB,QAAyB,EACzB,SAA0B,EAC1B,eAAwC,EACxC,WAAgC,EACjD,QAAgC;QAEhC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAPC,YAAO,GAAP,OAAO,CAAa;QACpB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAiB;QAC1B,oBAAe,GAAf,eAAe,CAAyB;QACxC,gBAAW,GAAX,WAAW,CAAqB;IAInD,CAAC;IAED,OAAO,CAAC,EAAM,EAAE,MAAoB,EAAE,MAAc;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE9C,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CACvD;YACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CACnD,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;CACF"}
|
package/dist/emit/ruled.d.ts
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type BaseContext } from "@adeficior/pack-resolver";
|
|
2
2
|
import type { Id } from "../common/id.js";
|
|
3
3
|
import type { ClearableEmitter, PathProvider, RegistryProvider } from "./index.js";
|
|
4
4
|
import type Rule from "./rule/index.js";
|
|
5
5
|
export default class RuledEmitter<TEntry, TRule extends Rule<TEntry>> implements ClearableEmitter {
|
|
6
|
-
private readonly logger;
|
|
7
6
|
private readonly provider;
|
|
8
7
|
private readonly pathProvider;
|
|
9
8
|
private readonly emptyValue;
|
|
10
9
|
private readonly serialize;
|
|
11
10
|
private readonly shouldSkip;
|
|
12
|
-
constructor(
|
|
11
|
+
constructor(provider: RegistryProvider<TEntry>, pathProvider: PathProvider, emptyValue: unknown, serialize: (entry: TEntry) => unknown, shouldSkip?: (id: Id) => boolean);
|
|
13
12
|
private rulesArray;
|
|
14
13
|
private requiredRules;
|
|
15
14
|
protected get rules(): ReadonlyArray<TRule>;
|
|
16
15
|
clear(): void;
|
|
17
16
|
addRule(rule: TRule, required?: boolean): void;
|
|
18
|
-
|
|
17
|
+
resolver(context: BaseContext): import("@adeficior/pack-resolver").Resolver<import("@adeficior/pack-resolver").Acceptable, BaseContext>;
|
|
19
18
|
}
|
package/dist/emit/ruled.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import { simpleResolver } from "@adeficior/pack-resolver";
|
|
1
|
+
import { extendLoggerContext, simpleResolver, } from "@adeficior/pack-resolver";
|
|
2
2
|
import { toJson } from "../textHelper.js";
|
|
3
3
|
export default class RuledEmitter {
|
|
4
|
-
logger;
|
|
5
4
|
provider;
|
|
6
5
|
pathProvider;
|
|
7
6
|
emptyValue;
|
|
8
7
|
serialize;
|
|
9
8
|
shouldSkip;
|
|
10
|
-
constructor(
|
|
11
|
-
this.logger = logger;
|
|
9
|
+
constructor(provider, pathProvider, emptyValue, serialize, shouldSkip = () => true) {
|
|
12
10
|
this.provider = provider;
|
|
13
11
|
this.pathProvider = pathProvider;
|
|
14
12
|
this.emptyValue = emptyValue;
|
|
@@ -29,23 +27,27 @@ export default class RuledEmitter {
|
|
|
29
27
|
if (required)
|
|
30
28
|
this.requiredRules.add(rule);
|
|
31
29
|
}
|
|
32
|
-
resolver
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
30
|
+
resolver(context) {
|
|
31
|
+
return simpleResolver(async (acceptor) => {
|
|
32
|
+
const missingRules = new Set(this.requiredRules);
|
|
33
|
+
await this.provider.forEachAsync(async (recipe, id) => {
|
|
34
|
+
if (this.shouldSkip(id))
|
|
35
|
+
return;
|
|
36
|
+
const path = this.pathProvider(id);
|
|
37
|
+
const rules = this.rules.filter((it) => it.matches(id, recipe, extendLoggerContext(context.logger, { path })));
|
|
38
|
+
if (rules.length === 0)
|
|
39
|
+
return;
|
|
40
|
+
rules.forEach((it) => missingRules.delete(it));
|
|
41
|
+
const modified = rules.reduce((previous, rule) => previous && rule.modify(previous), recipe);
|
|
42
|
+
const serialized = modified
|
|
43
|
+
? this.serialize(modified)
|
|
44
|
+
: this.emptyValue;
|
|
45
|
+
await acceptor(path, toJson(serialized));
|
|
46
|
+
});
|
|
47
|
+
missingRules.forEach((rule) => {
|
|
48
|
+
rule.printWarning(context.logger);
|
|
49
|
+
});
|
|
50
|
+
}, context);
|
|
51
|
+
}
|
|
50
52
|
}
|
|
51
53
|
//# sourceMappingURL=ruled.js.map
|
package/dist/emit/ruled.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ruled.js","sourceRoot":"","sources":["../../src/emit/ruled.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ruled.js","sourceRoot":"","sources":["../../src/emit/ruled.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C,MAAM,CAAC,OAAO,OAAO,YAAY;IAKZ;IACA;IACA;IACA;IACA;IALnB,YACmB,QAAkC,EAClC,YAA0B,EAC1B,UAAmB,EACnB,SAAqC,EACrC,aAAkC,GAAG,EAAE,CAAC,IAAI;QAJ5C,aAAQ,GAAR,QAAQ,CAA0B;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAA4B;QACrC,eAAU,GAAV,UAAU,CAAkC;IAC5D,CAAC;IAEI,UAAU,GAAY,EAAE,CAAC;IACzB,aAAa,GAAG,IAAI,GAAG,EAAS,CAAC;IAEzC,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,IAAW,EAAE,WAAoB,IAAI;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,QAAQ;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,OAAoB;QAC3B,OAAO,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACvC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAQ,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;gBACpD,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAAE,OAAO;gBAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CACrC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACtE,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAE/B,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE/C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EACrD,MAAM,CACP,CAAC;gBAEF,MAAM,UAAU,GAAG,QAAQ;oBACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;oBAC1B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;gBAEpB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF"}
|
package/dist/error.js
CHANGED
|
@@ -40,16 +40,18 @@ export function transformErrors(run) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
// TODO promise?
|
|
43
|
+
// TODO require logger?
|
|
43
44
|
export function tryCatching(logger, run) {
|
|
44
45
|
try {
|
|
45
46
|
return run();
|
|
46
47
|
}
|
|
47
48
|
catch (error) {
|
|
48
49
|
if (error instanceof IllegalShapeError) {
|
|
50
|
+
// TODO trace?
|
|
49
51
|
if (error.input)
|
|
50
|
-
logger?.
|
|
52
|
+
logger?.trace(error.message, { input: error.input });
|
|
51
53
|
else
|
|
52
|
-
logger?.
|
|
54
|
+
logger?.trace(error.message);
|
|
53
55
|
return null;
|
|
54
56
|
}
|
|
55
57
|
if (error instanceof ZodError) {
|
package/dist/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAG/B;IAFX,YACE,OAAe,EACN,KAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,UAAK,GAAL,KAAK,CAAU;IAG1B,CAAC;CACF;AAED,MAAM,OAAO,oBAA2C,SAAQ,KAAK;IAGxD;IACA;IAHX,YACE,OAAe,EACN,QAAW,EACX,EAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,aAAQ,GAAR,QAAQ,CAAG;QACX,OAAE,GAAF,EAAE,CAAa;IAG1B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;aACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;;gBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAY;IAC7C,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,WAAW,CACzB,MAA0B,EAC1B,GAAY;IAEZ,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,KAAK;gBAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAG/B;IAFX,YACE,OAAe,EACN,KAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,UAAK,GAAL,KAAK,CAAU;IAG1B,CAAC;CACF;AAED,MAAM,OAAO,oBAA2C,SAAQ,KAAK;IAGxD;IACA;IAHX,YACE,OAAe,EACN,QAAW,EACX,EAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,aAAQ,GAAR,QAAQ,CAAG;QACX,OAAE,GAAF,EAAE,CAAa;IAG1B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;aACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;;gBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAY;IAC7C,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,uBAAuB;AACvB,MAAM,UAAU,WAAW,CACzB,MAA0B,EAC1B,GAAY;IAEZ,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,cAAc;YACd,IAAI,KAAK,CAAC,KAAK;gBAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;;gBACjE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;iBACzB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACV,IAAI,EAAE,CAAC,IAAI;oBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;;oBACrD,OAAO,EAAE,CAAC,OAAO,CAAC;YACzB,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,EAAE,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/loader/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Acceptable, Acceptor, Logger, Resolver } from "@adeficior/pack-resolver";
|
|
1
|
+
import type { Acceptable, Acceptor, BaseContext, Logger, Resolver } from "@adeficior/pack-resolver";
|
|
2
2
|
import type { Id } from "../common/id.js";
|
|
3
3
|
import Registry from "../common/registry.js";
|
|
4
4
|
import type { RegistryProvider } from "../emit/index.js";
|
|
@@ -13,5 +13,5 @@ export declare abstract class JsonLoader<T> implements RegistryProvider<T>, Acce
|
|
|
13
13
|
protected abstract parse(json: unknown, id: Id): T | null;
|
|
14
14
|
forEach(consumer: (recipe: T, id: Id) => void): void;
|
|
15
15
|
forEachAsync(consumer: (recipe: T, id: Id) => Promise<void>): Promise<void>;
|
|
16
|
-
accept(path: string, content: PromiseLike<Acceptable
|
|
16
|
+
accept(path: string, content: PromiseLike<Acceptable>, context: BaseContext): Promise<false | undefined>;
|
|
17
17
|
}
|
package/dist/loader/index.js
CHANGED
|
@@ -25,17 +25,16 @@ export class JsonLoader {
|
|
|
25
25
|
async forEachAsync(consumer) {
|
|
26
26
|
await this.registry.forEachAsync(consumer);
|
|
27
27
|
}
|
|
28
|
-
async accept(path, content) {
|
|
28
|
+
async accept(path, content, context) {
|
|
29
29
|
const match = /(data|assets)\/(?<namespace>[\w-]+)\/\w+\/(?<rest>[\w-/]+).json/.exec(path);
|
|
30
30
|
if (!match?.groups)
|
|
31
31
|
return false;
|
|
32
32
|
const { namespace, rest } = match.groups;
|
|
33
33
|
const id = { namespace: namespace, path: rest };
|
|
34
|
-
const
|
|
35
|
-
const json = tryParseJson(grouped, await content);
|
|
34
|
+
const json = tryParseJson(context.logger, await content);
|
|
36
35
|
if (!json)
|
|
37
36
|
return false;
|
|
38
|
-
const parsed = tryCatching(
|
|
37
|
+
const parsed = tryCatching(context.logger, () => this.parse(json, id));
|
|
39
38
|
if (!parsed)
|
|
40
39
|
return false;
|
|
41
40
|
this.registry.set(id, parsed);
|
package/dist/loader/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loader/index.ts"],"names":[],"mappings":"AAQA,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAmB;IAC9D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAgB,UAAU;IAGC;IAFZ,QAAQ,GAAG,IAAI,QAAQ,EAAK,CAAC;IAEhD,YAA+B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAIjD,OAAO,CAAC,QAAqC;QAC3C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAA8C;QAE9C,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,OAAgC,EAChC,OAAoB;QAEpB,MAAM,KAAK,GACT,iEAAiE,CAAC,IAAI,CACpE,IAAI,CACL,CAAC;QACJ,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO,KAAK,CAAC;QAEjC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,GAAO,EAAE,SAAS,EAAE,SAAU,EAAE,IAAI,EAAE,IAAK,EAAE,CAAC;QAEtD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF"}
|
package/dist/loader/loot.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { extendLoggerContext } from "@adeficior/pack-resolver";
|
|
2
2
|
import { tryCatching } from "../error.js";
|
|
3
3
|
import { LootTableSchema } from "../schema/data/loot.js";
|
|
4
4
|
import { JsonLoader } from "./index.js";
|
|
5
5
|
export default class LootTableLoader extends JsonLoader {
|
|
6
6
|
parse(json, id) {
|
|
7
|
-
return tryCatching(this.logger
|
|
7
|
+
return tryCatching(extendLoggerContext(this.logger, { id }), () => {
|
|
8
8
|
return LootTableSchema.parse(json);
|
|
9
9
|
});
|
|
10
10
|
}
|
package/dist/loader/loot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loot.js","sourceRoot":"","sources":["../../src/loader/loot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loot.js","sourceRoot":"","sources":["../../src/loader/loot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAqB;IACtD,KAAK,CAAC,IAAa,EAAE,EAAM;QACnC,OAAO,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;YAChE,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/loader/pack.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RegistryId } from "@adeficior/data-modifier/generated";
|
|
2
|
-
import { type Acceptor, type Logger, type Resolver
|
|
2
|
+
import { type Acceptor, type Logger, type Resolver } from "@adeficior/pack-resolver";
|
|
3
3
|
import { type IngredientFilter } from "../common/ingredient/filter.js";
|
|
4
4
|
import type { Ingredient } from "../common/ingredient/index.js";
|
|
5
5
|
import type { IngredientInput } from "../common/ingredient/input.js";
|
|
@@ -23,7 +23,7 @@ import type RegistryLookup from "./registry/index.js";
|
|
|
23
23
|
export interface PackLoaderOptions extends TagEmitterOptions, BlacklistOptions {
|
|
24
24
|
packFormat: SemVerInput;
|
|
25
25
|
}
|
|
26
|
-
export default class PackLoader implements Loader
|
|
26
|
+
export default class PackLoader implements Loader {
|
|
27
27
|
readonly logger: Logger;
|
|
28
28
|
private readonly lookup;
|
|
29
29
|
private readonly emitters;
|
|
@@ -58,10 +58,11 @@ export default class PackLoader implements Loader, ClearableEmitter {
|
|
|
58
58
|
createResult(input: ResultInput): Result;
|
|
59
59
|
createIngredient(input: IngredientInput): Ingredient;
|
|
60
60
|
resolveIngredientTest(test: IngredientFilter): import("../common/filters.js").Predicate<Ingredient>;
|
|
61
|
-
loadFromMultiple(resolvers:
|
|
61
|
+
loadFromMultiple(resolvers: Resolver[]): Promise<void>;
|
|
62
62
|
loadFrom(resolver: Resolver): Promise<void>;
|
|
63
63
|
loadRegistryDump(resolver: Resolver): Promise<void>;
|
|
64
64
|
clear(): void;
|
|
65
|
-
|
|
65
|
+
private resolver;
|
|
66
|
+
emit(to: Acceptor): Promise<void>;
|
|
66
67
|
run(from: Resolver, to: Acceptor): Promise<void>;
|
|
67
68
|
}
|