@shaclmate/compiler 4.0.33 → 4.0.35
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/Compiler.d.ts +0 -3
- package/dist/Compiler.js +0 -2
- package/dist/ShapesGraphToAstTransformer.d.ts +1 -4
- package/dist/ShapesGraphToAstTransformer.js +1 -5
- package/dist/_ShapesGraphToAstTransformer/transformPropertyShapeToAstObjectTypeProperty.js +1 -3
- package/dist/_ShapesGraphToAstTransformer/transformShapeToAstCompoundType.js +4 -7
- package/dist/_ShapesGraphToAstTransformer/transformShapeToAstListType.js +0 -1
- package/dist/_ShapesGraphToAstTransformer/transformShapeToAstObjectType.js +1 -3
- package/dist/ast/AbstractCompoundType.d.ts +6 -4
- package/dist/ast/AbstractCompoundType.js +4 -37
- package/dist/ast/ObjectType.d.ts +1 -7
- package/dist/ast/ObjectType.js +1 -6
- package/dist/generators/ts/AbstractCollectionType.d.ts +9 -8
- package/dist/generators/ts/AbstractCollectionType.js +38 -120
- package/dist/generators/ts/AbstractContainerType.d.ts +3 -1
- package/dist/generators/ts/AbstractContainerType.js +20 -0
- package/dist/generators/ts/AbstractDateType.d.ts +5 -10
- package/dist/generators/ts/AbstractDateType.js +5 -32
- package/dist/generators/ts/AbstractIdentifierType.d.ts +4 -1
- package/dist/generators/ts/AbstractIdentifierType.js +0 -17
- package/dist/generators/ts/AbstractLazyObjectType.d.ts +9 -5
- package/dist/generators/ts/AbstractLazyObjectType.js +22 -21
- package/dist/generators/ts/AbstractLiteralType.d.ts +12 -4
- package/dist/generators/ts/AbstractLiteralType.js +3 -3
- package/dist/generators/ts/AbstractNamedUnionType.d.ts +2 -5
- package/dist/generators/ts/AbstractNamedUnionType.js +27 -58
- package/dist/generators/ts/AbstractNumericType.d.ts +3 -9
- package/dist/generators/ts/AbstractNumericType.js +6 -13
- package/dist/generators/ts/AbstractPrimitiveType.d.ts +9 -4
- package/dist/generators/ts/AbstractPrimitiveType.js +11 -18
- package/dist/generators/ts/AbstractTermType.d.ts +10 -5
- package/dist/generators/ts/AbstractTermType.js +14 -53
- package/dist/generators/ts/AbstractType.d.ts +39 -24
- package/dist/generators/ts/AbstractType.js +4 -2
- package/dist/generators/ts/AbstractUnionType.d.ts +3 -2
- package/dist/generators/ts/AbstractUnionType.js +29 -39
- package/dist/generators/ts/AnonymousUnionType.d.ts +1 -1
- package/dist/generators/ts/AnonymousUnionType.js +3 -3
- package/dist/generators/ts/BigDecimalType.d.ts +7 -4
- package/dist/generators/ts/BigDecimalType.js +11 -45
- package/dist/generators/ts/BigIntType.d.ts +3 -4
- package/dist/generators/ts/BigIntType.js +6 -17
- package/dist/generators/ts/BlankNodeType.d.ts +8 -7
- package/dist/generators/ts/BlankNodeType.js +18 -5
- package/dist/generators/ts/BooleanType.d.ts +6 -9
- package/dist/generators/ts/BooleanType.js +9 -16
- package/dist/generators/ts/DateTimeType.d.ts +4 -1
- package/dist/generators/ts/DateTimeType.js +6 -13
- package/dist/generators/ts/DateType.d.ts +4 -1
- package/dist/generators/ts/DateType.js +7 -14
- package/dist/generators/ts/DefaultValueType.d.ts +6 -6
- package/dist/generators/ts/DefaultValueType.js +30 -63
- package/dist/generators/ts/FloatType.d.ts +3 -3
- package/dist/generators/ts/FloatType.js +5 -5
- package/dist/generators/ts/IdentifierType.d.ts +7 -6
- package/dist/generators/ts/IdentifierType.js +26 -5
- package/dist/generators/ts/IntType.d.ts +3 -3
- package/dist/generators/ts/IntType.js +5 -5
- package/dist/generators/ts/IriType.d.ts +9 -12
- package/dist/generators/ts/IriType.js +43 -32
- package/dist/generators/ts/LazyObjectOptionType.d.ts +2 -1
- package/dist/generators/ts/LazyObjectOptionType.js +23 -44
- package/dist/generators/ts/LazyObjectSetType.d.ts +2 -1
- package/dist/generators/ts/LazyObjectSetType.js +19 -29
- package/dist/generators/ts/LazyObjectType.d.ts +2 -1
- package/dist/generators/ts/LazyObjectType.js +18 -26
- package/dist/generators/ts/LiteralType.d.ts +6 -3
- package/dist/generators/ts/LiteralType.js +27 -13
- package/dist/generators/ts/NamedObjectType.d.ts +7 -9
- package/dist/generators/ts/NamedObjectType.js +24 -32
- package/dist/generators/ts/NamedObjectUnionType.d.ts +3 -1
- package/dist/generators/ts/NamedObjectUnionType.js +21 -14
- package/dist/generators/ts/OptionType.d.ts +6 -5
- package/dist/generators/ts/OptionType.js +31 -51
- package/dist/generators/ts/Reusables.d.ts +3 -1
- package/dist/generators/ts/Reusables.js +2 -1
- package/dist/generators/ts/SetType.d.ts +0 -1
- package/dist/generators/ts/SetType.js +4 -22
- package/dist/generators/ts/SnippetFactory.d.ts +2 -0
- package/dist/generators/ts/Snippets.d.ts +36 -8
- package/dist/generators/ts/Snippets.js +207 -30
- package/dist/generators/ts/StringType.d.ts +6 -10
- package/dist/generators/ts/StringType.js +8 -21
- package/dist/generators/ts/TermType.d.ts +2 -4
- package/dist/generators/ts/TermType.js +6 -10
- package/dist/generators/ts/TsGenerator.d.ts +14 -1
- package/dist/generators/ts/TsGenerator.js +41 -12
- package/dist/generators/ts/TypeFactory.d.ts +8 -4
- package/dist/generators/ts/TypeFactory.js +73 -49
- package/dist/generators/ts/ZodGenerator.js +6 -3
- package/dist/generators/ts/_NamedObjectType/AbstractProperty.d.ts +27 -20
- package/dist/generators/ts/_NamedObjectType/AbstractProperty.js +4 -2
- package/dist/generators/ts/_NamedObjectType/DiscriminantProperty.d.ts +7 -7
- package/dist/generators/ts/_NamedObjectType/DiscriminantProperty.js +9 -9
- package/dist/generators/ts/_NamedObjectType/IdentifierProperty.d.ts +6 -6
- package/dist/generators/ts/_NamedObjectType/IdentifierProperty.js +36 -39
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_createFunctionDeclaration.js +34 -31
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_equalsFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_focusSparqlConstructTriplesFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_focusSparqlWherePatternsFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromJsonFunctionDeclaration.js +31 -19
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceFunctionDeclaration.js +30 -36
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfResourceValuesFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_fromRdfTypeVariableStatement.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_graphqlTypeVariableStatement.js +2 -3
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_hashFunctionDeclarations.js +6 -8
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_isTypeFunctionDeclaration.js +1 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonParseFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonSchemaFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonTypeAliasDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_jsonUiSchemaFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_objectSetMethodNames.d.ts +2 -0
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_objectSetMethodNames.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryFunctionDeclaration.d.ts +2 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryStringFunctionDeclaration.d.ts +2 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_sparqlConstructQueryStringFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_toJsonFunctionDeclaration.js +2 -2
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_toRdfResourceFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_toStringFunctionDeclarations.js +14 -18
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlConstructTriplesFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/NamedObjectType_valueSparqlWherePatternsFunctionDeclaration.js +1 -1
- package/dist/generators/ts/_NamedObjectType/ShaclProperty.d.ts +7 -7
- package/dist/generators/ts/_NamedObjectType/ShaclProperty.js +41 -29
- package/dist/generators/ts/_snippets/snippets_ConversionFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_ConversionFunction.js +4 -0
- package/dist/generators/ts/_snippets/snippets_DefaultValueSchema.js +3 -3
- package/dist/generators/ts/_snippets/snippets_HashFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_HashFunction.js +4 -0
- package/dist/generators/ts/_snippets/snippets_PropertyPath.js +34 -24
- package/dist/generators/ts/_snippets/snippets_ValidationFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_ValidationFunction.js +4 -0
- package/dist/generators/ts/_snippets/snippets_convertToArray.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToArray.js +8 -0
- package/dist/generators/ts/_snippets/snippets_convertToBlankNode.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToBlankNode.js +11 -0
- package/dist/generators/ts/_snippets/snippets_convertToBlankNodeIdentifierProperty.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToBlankNodeIdentifierProperty.js +17 -0
- package/dist/generators/ts/_snippets/snippets_convertToIdentifier.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToIdentifier.js +13 -0
- package/dist/generators/ts/_snippets/snippets_convertToIdentifierProperty.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToIdentifierProperty.js +21 -0
- package/dist/generators/ts/_snippets/snippets_convertToIri.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToIri.js +11 -0
- package/dist/generators/ts/_snippets/snippets_convertToIriIdentifierProperty.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToIriIdentifierProperty.js +17 -0
- package/dist/generators/ts/_snippets/snippets_convertToLazyObject.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToLazyObject.js +15 -0
- package/dist/generators/ts/_snippets/snippets_convertToLazyObjectOption.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToLazyObjectOption.js +31 -0
- package/dist/generators/ts/_snippets/snippets_convertToLazyObjectSet.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToLazyObjectSet.js +25 -0
- package/dist/generators/ts/_snippets/snippets_convertToLiteral.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToLiteral.js +13 -0
- package/dist/generators/ts/_snippets/snippets_convertToMaybe.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertToMaybe.js +19 -0
- package/dist/generators/ts/_snippets/snippets_convertWithDefaultValue.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_convertWithDefaultValue.js +11 -0
- package/dist/generators/ts/_snippets/snippets_defaultValueSparqlWherePatterns.js +1 -1
- package/dist/generators/ts/_snippets/snippets_hashArray.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashArray.js +11 -0
- package/dist/generators/ts/_snippets/snippets_hashBigDecimal.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashBigDecimal.js +7 -0
- package/dist/generators/ts/_snippets/snippets_hashBoolean.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashBoolean.js +7 -0
- package/dist/generators/ts/_snippets/snippets_hashDate.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashDate.js +7 -0
- package/dist/generators/ts/_snippets/snippets_hashDateTime.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashDateTime.js +7 -0
- package/dist/generators/ts/_snippets/snippets_hashMaybe.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashMaybe.js +11 -0
- package/dist/generators/ts/_snippets/snippets_hashNumeric.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashNumeric.js +7 -0
- package/dist/generators/ts/_snippets/snippets_hashString.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashString.js +7 -0
- package/dist/generators/ts/_snippets/snippets_hashTerm.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_hashTerm.js +12 -0
- package/dist/generators/ts/_snippets/snippets_identityConversionFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_identityConversionFunction.js +6 -0
- package/dist/generators/ts/_snippets/snippets_identityValidationFunction.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_identityValidationFunction.js +6 -0
- package/dist/generators/ts/_snippets/snippets_toIsoDateString.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_toIsoDateString.js +6 -0
- package/dist/generators/ts/_snippets/snippets_validateArray.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_validateArray.js +13 -0
- package/dist/generators/ts/_snippets/snippets_validateMaybe.d.ts +3 -0
- package/dist/generators/ts/_snippets/snippets_validateMaybe.js +7 -0
- package/dist/generators/ts/graphqlSchemaVariableStatement.d.ts +1 -1
- package/dist/generators/ts/graphqlSchemaVariableStatement.js +7 -4
- package/dist/generators/ts/objectSetDeclarations.js +4 -34
- package/dist/generators/ts/objectSetInterfaceDeclaration.js +1 -1
- package/dist/generators/ts/objectSetMethodSignatures.js +2 -2
- package/dist/generators/ts/rdfjsDatasetObjectSetClassDeclaration.js +2 -2
- package/dist/generators/ts/sparqlObjectSetClassDeclaration.js +2 -2
- package/dist/input/ShapesGraph.d.ts +5 -8
- package/dist/input/ShapesGraph.js +5 -6
- package/dist/input/generated.d.ts +175 -230
- package/dist/input/generated.js +226 -1748
- package/package.json +2 -2
- package/dist/_ShapesGraphToAstTransformer/nodeShapeTsFeatures.d.ts +0 -6
- package/dist/_ShapesGraphToAstTransformer/nodeShapeTsFeatures.js +0 -67
- package/dist/generators/ts/_snippets/snippets_isReadonlyBigIntArray.d.ts +0 -3
- package/dist/generators/ts/_snippets/snippets_isReadonlyBigIntArray.js +0 -6
- package/dist/generators/ts/_snippets/snippets_isReadonlyBooleanArray.d.ts +0 -3
- package/dist/generators/ts/_snippets/snippets_isReadonlyBooleanArray.js +0 -6
- package/dist/generators/ts/_snippets/snippets_isReadonlyNumberArray.d.ts +0 -3
- package/dist/generators/ts/_snippets/snippets_isReadonlyNumberArray.js +0 -6
- package/dist/generators/ts/_snippets/snippets_isReadonlyObjectArray.d.ts +0 -3
- package/dist/generators/ts/_snippets/snippets_isReadonlyObjectArray.js +0 -6
- package/dist/generators/ts/_snippets/snippets_isReadonlyStringArray.d.ts +0 -3
- package/dist/generators/ts/_snippets/snippets_isReadonlyStringArray.js +0 -6
- package/dist/generators/ts/syntheticNamePrefix.d.ts +0 -2
- package/dist/generators/ts/syntheticNamePrefix.js +0 -2
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { Maybe
|
|
1
|
+
import { Maybe } from "purify-ts";
|
|
2
2
|
import { AbstractContainerType } from "./AbstractContainerType.js";
|
|
3
3
|
import { type Code } from "./ts-poet-wrapper.js";
|
|
4
4
|
export declare class OptionType<ItemTypeT extends OptionType.ItemType> extends AbstractContainerType<ItemTypeT> {
|
|
5
5
|
readonly discriminantProperty: Maybe<AbstractContainerType.DiscriminantProperty>;
|
|
6
6
|
readonly graphqlArgs: AbstractContainerType<ItemTypeT>["graphqlArgs"];
|
|
7
7
|
readonly kind = "OptionType";
|
|
8
|
-
readonly typeofs:
|
|
9
|
-
get
|
|
8
|
+
readonly typeofs: "object"[];
|
|
9
|
+
get conversionFunction(): Maybe<AbstractContainerType.ConversionFunction>;
|
|
10
10
|
get equalsFunction(): Code;
|
|
11
11
|
get filterFunction(): Code;
|
|
12
12
|
get filterType(): Code;
|
|
13
13
|
get graphqlType(): AbstractContainerType.GraphqlType;
|
|
14
|
+
get hashFunction(): Code;
|
|
14
15
|
get mutable(): boolean;
|
|
15
16
|
get name(): Code;
|
|
16
17
|
get schemaType(): Code;
|
|
18
|
+
get validationFunction(): Maybe<Code>;
|
|
17
19
|
get valueSparqlConstructTriplesFunction(): Code;
|
|
18
20
|
get valueSparqlWherePatternsFunction(): Code;
|
|
19
21
|
protected get schemaObject(): {
|
|
@@ -23,10 +25,9 @@ export declare class OptionType<ItemTypeT extends OptionType.ItemType> extends A
|
|
|
23
25
|
fromJsonExpression({ variables, }: Parameters<AbstractContainerType<ItemTypeT>["fromJsonExpression"]>[0]): Code;
|
|
24
26
|
fromRdfResourceValuesExpression(parameters: Parameters<AbstractContainerType<ItemTypeT>["fromRdfResourceValuesExpression"]>[0]): Code;
|
|
25
27
|
graphqlResolveExpression(parameters: Parameters<AbstractContainerType<ItemTypeT>["graphqlResolveExpression"]>[0]): Code;
|
|
26
|
-
|
|
28
|
+
jsonSchema(parameters: Parameters<AbstractContainerType<ItemTypeT>["jsonSchema"]>[0]): Code;
|
|
27
29
|
jsonType(parameters?: Parameters<AbstractContainerType<ItemTypeT>["jsonType"]>[0]): AbstractContainerType.JsonType;
|
|
28
30
|
jsonUiSchemaElement(parameters: Parameters<AbstractContainerType<ItemTypeT>["jsonUiSchemaElement"]>[0]): Maybe<Code>;
|
|
29
|
-
jsonSchema(parameters: Parameters<AbstractContainerType<ItemTypeT>["jsonSchema"]>[0]): Code;
|
|
30
31
|
toJsonExpression({ variables, }: Parameters<AbstractContainerType<ItemTypeT>["toJsonExpression"]>[0]): Code;
|
|
31
32
|
toRdfResourceValuesExpression({ variables, }: Parameters<AbstractContainerType<ItemTypeT>["toRdfResourceValuesExpression"]>[0]): Code;
|
|
32
33
|
toStringExpression({ variables, }: Parameters<AbstractContainerType<ItemTypeT>["toStringExpression"]>[0]): Code;
|
|
@@ -4,45 +4,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { Maybe
|
|
7
|
+
import { Maybe } from "purify-ts";
|
|
8
8
|
import { invariant } from "ts-invariant";
|
|
9
9
|
import { Memoize } from "typescript-memoize";
|
|
10
|
-
import { AbstractCollectionType } from "./AbstractCollectionType.js";
|
|
11
10
|
import { AbstractContainerType } from "./AbstractContainerType.js";
|
|
12
11
|
import { codeEquals } from "./codeEquals.js";
|
|
13
|
-
import { code,
|
|
12
|
+
import { code, literalOf } from "./ts-poet-wrapper.js";
|
|
14
13
|
export class OptionType extends AbstractContainerType {
|
|
15
14
|
discriminantProperty = Maybe.empty();
|
|
16
15
|
graphqlArgs = Maybe.empty();
|
|
17
16
|
kind = "OptionType";
|
|
18
|
-
typeofs =
|
|
19
|
-
get
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
typeofs = ["object"];
|
|
18
|
+
get conversionFunction() {
|
|
19
|
+
const itemConversionFunction = this.itemType.conversionFunction.orDefault(this.itemConversionFunctionDefault);
|
|
20
|
+
return Maybe.of({
|
|
21
|
+
code: code `${this.reusables.snippets.convertToMaybe}(${itemConversionFunction.code})`,
|
|
22
|
+
sourceTypes: itemConversionFunction.sourceTypes.concat({
|
|
23
|
+
name: this.name,
|
|
24
|
+
typeof: "object",
|
|
25
|
+
}, {
|
|
26
|
+
name: code `undefined`,
|
|
27
|
+
typeof: "undefined",
|
|
28
|
+
}),
|
|
26
29
|
});
|
|
27
|
-
for (const itemTypeConversion of this.itemType.conversions) {
|
|
28
|
-
conversions.push({
|
|
29
|
-
...itemTypeConversion,
|
|
30
|
-
conversionExpression: (value) => code `${this.reusables.imports.Maybe}.of(${itemTypeConversion.conversionExpression(value)})`,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
// Unless itemType is a list, it should only have a conversion from undefined if it has a
|
|
34
|
-
// defaultValue. Per the CST->AST transformation logic, a type with a defaultValue
|
|
35
|
-
// should never be wrapped in an OptionType.
|
|
36
|
-
invariant(!conversions.some((conversion) => conversion.sourceTypeof === "undefined") || this.itemType instanceof AbstractCollectionType);
|
|
37
|
-
if (!conversions.some((conversion) => conversion.sourceTypeof === "undefined")) {
|
|
38
|
-
conversions.push({
|
|
39
|
-
conversionExpression: () => code `${this.reusables.imports.Maybe}.empty()`,
|
|
40
|
-
sourceTypeCheckExpression: (value) => code `${value} === undefined`,
|
|
41
|
-
sourceTypeName: code `undefined`,
|
|
42
|
-
sourceTypeof: "undefined",
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
return conversions;
|
|
46
30
|
}
|
|
47
31
|
get equalsFunction() {
|
|
48
32
|
return code `((left, right) => ${this.reusables.snippets.maybeEquals}(left, right, ${this.itemType.equalsFunction}))`;
|
|
@@ -59,6 +43,9 @@ export class OptionType extends AbstractContainerType {
|
|
|
59
43
|
nullable: true,
|
|
60
44
|
});
|
|
61
45
|
}
|
|
46
|
+
get hashFunction() {
|
|
47
|
+
return code `${this.reusables.snippets.hashMaybe}(${this.itemType.hashFunction})`;
|
|
48
|
+
}
|
|
62
49
|
get mutable() {
|
|
63
50
|
return this.itemType.mutable;
|
|
64
51
|
}
|
|
@@ -68,6 +55,9 @@ export class OptionType extends AbstractContainerType {
|
|
|
68
55
|
get schemaType() {
|
|
69
56
|
return code `${this.reusables.snippets.MaybeSchema}<${this.itemType.schemaType}>`;
|
|
70
57
|
}
|
|
58
|
+
get validationFunction() {
|
|
59
|
+
return Maybe.of(code `${this.reusables.snippets.validateMaybe}(${this.itemType.validationFunction.orDefault(this.itemValidationFunctionDefault)})`);
|
|
60
|
+
}
|
|
71
61
|
get valueSparqlConstructTriplesFunction() {
|
|
72
62
|
return code `${this.reusables.snippets.maybeSparqlConstructTriples}<${this.itemType.filterType}, ${this.itemType.schemaType}>(${this.itemType.valueSparqlConstructTriplesFunction})`;
|
|
73
63
|
}
|
|
@@ -82,13 +72,10 @@ export class OptionType extends AbstractContainerType {
|
|
|
82
72
|
}
|
|
83
73
|
fromJsonExpression({ variables, }) {
|
|
84
74
|
const expression = code `${this.reusables.imports.Maybe}.fromNullable(${variables.value})`;
|
|
85
|
-
const valueVariable = code `item`;
|
|
86
75
|
const itemFromJsonExpression = this.itemType.fromJsonExpression({
|
|
87
|
-
variables: { value:
|
|
76
|
+
variables: { value: code `item` },
|
|
88
77
|
});
|
|
89
|
-
return
|
|
90
|
-
? expression
|
|
91
|
-
: code `${expression}.map(item => (${itemFromJsonExpression}))`;
|
|
78
|
+
return code `${expression}.map(item => (${itemFromJsonExpression}).map(${this.reusables.imports.Maybe}.of)).orDefault(${this.reusables.imports.Either}.of(${this.reusables.imports.Maybe}.empty()))`;
|
|
92
79
|
}
|
|
93
80
|
fromRdfResourceValuesExpression(parameters) {
|
|
94
81
|
const { variables } = parameters;
|
|
@@ -97,18 +84,8 @@ export class OptionType extends AbstractContainerType {
|
|
|
97
84
|
graphqlResolveExpression(parameters) {
|
|
98
85
|
return code `${this.itemType.graphqlResolveExpression(parameters)}.extractNullable()`;
|
|
99
86
|
}
|
|
100
|
-
|
|
101
|
-
return
|
|
102
|
-
code `${variables.value}.ifJust((value${depth}) => { ${joinCode(this.itemType
|
|
103
|
-
.hashStatements({
|
|
104
|
-
depth: depth + 1,
|
|
105
|
-
variables: {
|
|
106
|
-
hasher: variables.hasher,
|
|
107
|
-
value: code `value${depth}`,
|
|
108
|
-
},
|
|
109
|
-
})
|
|
110
|
-
.concat())} });`,
|
|
111
|
-
];
|
|
87
|
+
jsonSchema(parameters) {
|
|
88
|
+
return code `${this.itemType.jsonSchema(parameters)}.optional()`;
|
|
112
89
|
}
|
|
113
90
|
jsonType(parameters) {
|
|
114
91
|
const itemTypeJsonType = this.itemType.jsonType(parameters);
|
|
@@ -120,9 +97,6 @@ export class OptionType extends AbstractContainerType {
|
|
|
120
97
|
jsonUiSchemaElement(parameters) {
|
|
121
98
|
return this.itemType.jsonUiSchemaElement(parameters);
|
|
122
99
|
}
|
|
123
|
-
jsonSchema(parameters) {
|
|
124
|
-
return code `${this.itemType.jsonSchema(parameters)}.optional()`;
|
|
125
|
-
}
|
|
126
100
|
toJsonExpression({ variables, }) {
|
|
127
101
|
return code `${variables.value}.map(item => (${this.itemType.toJsonExpression({ variables: { value: code `item` } })})).extract()`;
|
|
128
102
|
}
|
|
@@ -142,7 +116,7 @@ export class OptionType extends AbstractContainerType {
|
|
|
142
116
|
}
|
|
143
117
|
__decorate([
|
|
144
118
|
Memoize()
|
|
145
|
-
], OptionType.prototype, "
|
|
119
|
+
], OptionType.prototype, "conversionFunction", null);
|
|
146
120
|
__decorate([
|
|
147
121
|
Memoize()
|
|
148
122
|
], OptionType.prototype, "equalsFunction", null);
|
|
@@ -155,12 +129,18 @@ __decorate([
|
|
|
155
129
|
__decorate([
|
|
156
130
|
Memoize()
|
|
157
131
|
], OptionType.prototype, "graphqlType", null);
|
|
132
|
+
__decorate([
|
|
133
|
+
Memoize()
|
|
134
|
+
], OptionType.prototype, "hashFunction", null);
|
|
158
135
|
__decorate([
|
|
159
136
|
Memoize()
|
|
160
137
|
], OptionType.prototype, "name", null);
|
|
161
138
|
__decorate([
|
|
162
139
|
Memoize()
|
|
163
140
|
], OptionType.prototype, "schemaType", null);
|
|
141
|
+
__decorate([
|
|
142
|
+
Memoize()
|
|
143
|
+
], OptionType.prototype, "validationFunction", null);
|
|
164
144
|
__decorate([
|
|
165
145
|
Memoize()
|
|
166
146
|
], OptionType.prototype, "valueSparqlConstructTriplesFunction", null);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { Logger } from "ts-log";
|
|
2
2
|
import { Imports } from "./Imports.js";
|
|
3
3
|
import { Snippets } from "./Snippets.js";
|
|
4
|
+
import type { TsGenerator } from "./TsGenerator.js";
|
|
4
5
|
export declare class Reusables {
|
|
5
6
|
readonly imports: Imports;
|
|
6
7
|
readonly snippets: Snippets;
|
|
7
|
-
constructor({ logger }: {
|
|
8
|
+
constructor({ configuration, logger, }: {
|
|
9
|
+
configuration: TsGenerator.Configuration;
|
|
8
10
|
logger: Logger;
|
|
9
11
|
});
|
|
10
12
|
}
|
|
@@ -3,9 +3,10 @@ import { Snippets } from "./Snippets.js";
|
|
|
3
3
|
export class Reusables {
|
|
4
4
|
imports;
|
|
5
5
|
snippets;
|
|
6
|
-
constructor({ logger }) {
|
|
6
|
+
constructor({ configuration, logger, }) {
|
|
7
7
|
this.imports = new Imports();
|
|
8
8
|
this.snippets = new Snippets({
|
|
9
|
+
configuration,
|
|
9
10
|
imports: this.imports,
|
|
10
11
|
logger,
|
|
11
12
|
});
|
|
@@ -3,7 +3,6 @@ import { type Code } from "./ts-poet-wrapper.js";
|
|
|
3
3
|
export declare class SetType<ItemTypeT extends SetType.ItemType> extends AbstractCollectionType<ItemTypeT> {
|
|
4
4
|
readonly graphqlArgs: AbstractCollectionType<ItemTypeT>["graphqlArgs"];
|
|
5
5
|
readonly kind = "SetType";
|
|
6
|
-
get conversions(): readonly AbstractCollectionType.Conversion[];
|
|
7
6
|
get valueSparqlConstructTriplesFunction(): Code;
|
|
8
7
|
get valueSparqlWherePatternsFunction(): Code;
|
|
9
8
|
fromRdfResourceValuesExpression(parameters: Parameters<AbstractCollectionType<ItemTypeT>["fromRdfResourceValuesExpression"]>[0]): Code;
|
|
@@ -11,18 +11,6 @@ import { code, joinCode } from "./ts-poet-wrapper.js";
|
|
|
11
11
|
export class SetType extends AbstractCollectionType {
|
|
12
12
|
graphqlArgs = Maybe.empty();
|
|
13
13
|
kind = "SetType";
|
|
14
|
-
get conversions() {
|
|
15
|
-
const conversions = [];
|
|
16
|
-
if (this.minCount === 0n) {
|
|
17
|
-
conversions.push({
|
|
18
|
-
conversionExpression: () => code `[]`,
|
|
19
|
-
sourceTypeCheckExpression: (value) => code `${value} === undefined`,
|
|
20
|
-
sourceTypeName: code `undefined`,
|
|
21
|
-
sourceTypeof: "undefined",
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return conversions.concat(super.conversions);
|
|
25
|
-
}
|
|
26
14
|
get valueSparqlConstructTriplesFunction() {
|
|
27
15
|
return code `${this.reusables.snippets.setSparqlConstructTriples}<${this.itemType.filterType}, ${this.itemType.schemaType}>(${this.itemType.valueSparqlConstructTriplesFunction})`;
|
|
28
16
|
}
|
|
@@ -31,17 +19,11 @@ export class SetType extends AbstractCollectionType {
|
|
|
31
19
|
}
|
|
32
20
|
fromRdfResourceValuesExpression(parameters) {
|
|
33
21
|
const { variables } = parameters;
|
|
34
|
-
|
|
22
|
+
return joinCode([
|
|
35
23
|
this.itemType.fromRdfResourceValuesExpression(parameters),
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
chain.push(code `chain(values => ${this.reusables.imports.NonEmptyList}.fromArray(values.toArray()).toEither(new Error(\`\${${variables.resource}.identifier} is an empty set\`)))`);
|
|
42
|
-
}
|
|
43
|
-
chain.push(code `map(valuesArray => ${this.reusables.imports.Resource}.Values.fromValue({ focusResource: ${variables.resource}, propertyPath: ${variables.propertyPath}, value: valuesArray }))`);
|
|
44
|
-
return joinCode(chain, { on: "." });
|
|
24
|
+
code `map(values => values.toArray()${this._mutable ? ".concat()" : ""})`,
|
|
25
|
+
code `map(valuesArray => ${this.reusables.imports.Resource}.Values.fromValue({ focusResource: ${variables.resource}, propertyPath: ${variables.propertyPath}, value: valuesArray }))`,
|
|
26
|
+
], { on: "." });
|
|
45
27
|
}
|
|
46
28
|
jsonType() {
|
|
47
29
|
const name = code `${!this.mutable ? "readonly " : ""}(${this.itemType.jsonType().name})[]`;
|
|
@@ -3,8 +3,10 @@ import type { Logger } from "ts-log";
|
|
|
3
3
|
import type { Imports } from "./Imports.js";
|
|
4
4
|
import type { Snippet } from "./Snippet.js";
|
|
5
5
|
import type { Snippets } from "./Snippets.js";
|
|
6
|
+
import type { TsGenerator } from "./TsGenerator.js";
|
|
6
7
|
import type { Code } from "./ts-poet-wrapper.js";
|
|
7
8
|
export type SnippetFactory = (parameters: {
|
|
9
|
+
configuration: TsGenerator.Configuration;
|
|
8
10
|
imports: Imports;
|
|
9
11
|
logger: Logger;
|
|
10
12
|
rdfjsTermExpression: (rdfjsTerm: Omit<BlankNode, "equals"> | Omit<Literal, "equals"> | Omit<NamedNode, "equals"> | Omit<Variable, "equals">) => Code;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { Logger } from "ts-log";
|
|
2
2
|
import type { Imports } from "./Imports.js";
|
|
3
3
|
import type { Snippet } from "./Snippet.js";
|
|
4
|
+
import type { TsGenerator } from "./TsGenerator.js";
|
|
4
5
|
import { type Code } from "./ts-poet-wrapper.js";
|
|
5
6
|
export declare class Snippets {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
private readonly configuration;
|
|
8
|
+
private readonly imports;
|
|
9
|
+
private readonly logger;
|
|
10
|
+
constructor({ configuration, imports, logger, }: {
|
|
11
|
+
configuration: TsGenerator.Configuration;
|
|
9
12
|
imports: Imports;
|
|
10
13
|
logger: Logger;
|
|
11
14
|
});
|
|
@@ -15,6 +18,7 @@ export declare class Snippets {
|
|
|
15
18
|
get BooleanSchema(): Snippet;
|
|
16
19
|
get CollectionFilter(): Snippet;
|
|
17
20
|
get CollectionSchema(): Snippet;
|
|
21
|
+
get ConversionFunction(): Snippet;
|
|
18
22
|
get DateFilter(): Snippet;
|
|
19
23
|
get DateSchema(): Snippet;
|
|
20
24
|
get DefaultValueSchema(): Snippet;
|
|
@@ -23,6 +27,7 @@ export declare class Snippets {
|
|
|
23
27
|
get FocusSparqlWherePatternsFunction(): Snippet;
|
|
24
28
|
get FromRdfResourceFunction(): Snippet;
|
|
25
29
|
get FromRdfResourceValuesFunction(): Snippet;
|
|
30
|
+
get HashFunction(): Snippet;
|
|
26
31
|
get Hasher(): Snippet;
|
|
27
32
|
get IdentifierFilter(): Snippet;
|
|
28
33
|
get IdentifierSchema(): Snippet;
|
|
@@ -51,6 +56,7 @@ export declare class Snippets {
|
|
|
51
56
|
get ToRdfResourceFunction(): Snippet;
|
|
52
57
|
get ToRdfResourceValuesFunction(): Snippet;
|
|
53
58
|
get UnwrapR(): Snippet;
|
|
59
|
+
get ValidationFunction(): Snippet;
|
|
54
60
|
get ValueSparqlConstructTriplesFunction(): Snippet;
|
|
55
61
|
get ValueSparqlWherePatternsFunction(): Snippet;
|
|
56
62
|
get _FromRdfResourceFunction(): Snippet;
|
|
@@ -63,6 +69,19 @@ export declare class Snippets {
|
|
|
63
69
|
get booleanEquals(): Snippet;
|
|
64
70
|
get booleanSparqlWherePatterns(): Snippet;
|
|
65
71
|
get compactRecord(): Snippet;
|
|
72
|
+
get convertToArray(): Snippet;
|
|
73
|
+
get convertToBlankNode(): Snippet;
|
|
74
|
+
get convertToBlankNodeIdentifierProperty(): Snippet;
|
|
75
|
+
get convertToIdentifier(): Snippet;
|
|
76
|
+
get convertToIdentifierProperty(): Snippet;
|
|
77
|
+
get convertToIri(): Snippet;
|
|
78
|
+
get convertToIriIdentifierProperty(): Snippet;
|
|
79
|
+
get convertToLazyObject(): Snippet;
|
|
80
|
+
get convertToLazyObjectOption(): Snippet;
|
|
81
|
+
get convertToLazyObjectSet(): Snippet;
|
|
82
|
+
get convertToLiteral(): Snippet;
|
|
83
|
+
get convertToMaybe(): Snippet;
|
|
84
|
+
get convertWithDefaultValue(): Snippet;
|
|
66
85
|
get dateEquals(): Snippet;
|
|
67
86
|
get dateSparqlWherePatterns(): Snippet;
|
|
68
87
|
get decodeBigDecimalLiteral(): Snippet;
|
|
@@ -82,14 +101,20 @@ export declare class Snippets {
|
|
|
82
101
|
get filterTerm(): Snippet;
|
|
83
102
|
get fromRdfLanguageIn(): Snippet;
|
|
84
103
|
get fromRdfPreferredLanguages(): Snippet;
|
|
104
|
+
get hashArray(): Snippet;
|
|
105
|
+
get hashBigDecimal(): Snippet;
|
|
106
|
+
get hashBoolean(): Snippet;
|
|
107
|
+
get hashDate(): Snippet;
|
|
108
|
+
get hashDateTime(): Snippet;
|
|
109
|
+
get hashMaybe(): Snippet;
|
|
110
|
+
get hashNumeric(): Snippet;
|
|
111
|
+
get hashString(): Snippet;
|
|
112
|
+
get hashTerm(): Snippet;
|
|
85
113
|
get identifierSparqlWherePatterns(): Snippet;
|
|
114
|
+
get identityConversionFunction(): Snippet;
|
|
115
|
+
get identityValidationFunction(): Snippet;
|
|
86
116
|
get ifUsed(): Code[];
|
|
87
117
|
get iriSparqlWherePatterns(): Snippet;
|
|
88
|
-
get isReadonlyBigIntArray(): Snippet;
|
|
89
|
-
get isReadonlyBooleanArray(): Snippet;
|
|
90
|
-
get isReadonlyNumberArray(): Snippet;
|
|
91
|
-
get isReadonlyObjectArray(): Snippet;
|
|
92
|
-
get isReadonlyStringArray(): Snippet;
|
|
93
118
|
get liftSparqlPatterns(): Snippet;
|
|
94
119
|
get listSparqlConstructTriples(): Snippet;
|
|
95
120
|
get listSparqlWherePatterns(): Snippet;
|
|
@@ -119,6 +144,9 @@ export declare class Snippets {
|
|
|
119
144
|
get termFilterSparqlPatterns(): Snippet;
|
|
120
145
|
get termSchemaSparqlPatterns(): Snippet;
|
|
121
146
|
get termSparqlWherePatterns(): Snippet;
|
|
147
|
+
get toIsoDateString(): Snippet;
|
|
148
|
+
get validateArray(): Snippet;
|
|
149
|
+
get validateMaybe(): Snippet;
|
|
122
150
|
get wrap_FromRdfResourceFunction(): Snippet;
|
|
123
151
|
get wrap_ToRdfResourceFunction(): Snippet;
|
|
124
152
|
protected get snippets(): Snippets;
|