@formspec/build 0.1.0-alpha.55 → 0.1.0-alpha.58
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/analyzer/tsdoc-parser.d.ts.map +1 -1
- package/dist/browser.cjs +26 -8
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.js +26 -8
- package/dist/browser.js.map +1 -1
- package/dist/build-alpha.d.ts +7 -6
- package/dist/build-beta.d.ts +7 -6
- package/dist/build-internal.d.ts +7 -6
- package/dist/build.d.ts +7 -6
- package/dist/cli.cjs +86 -19
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +88 -19
- package/dist/cli.js.map +1 -1
- package/dist/generators/class-schema.d.ts +2 -2
- package/dist/generators/class-schema.d.ts.map +1 -1
- package/dist/index.cjs +81 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +83 -16
- package/dist/index.js.map +1 -1
- package/dist/internals.cjs +81 -16
- package/dist/internals.cjs.map +1 -1
- package/dist/internals.js +83 -16
- package/dist/internals.js.map +1 -1
- package/dist/json-schema/generator.d.ts +1 -1
- package/dist/json-schema/generator.d.ts.map +1 -1
- package/dist/json-schema/ir-generator.d.ts +1 -1
- package/dist/json-schema/ir-generator.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsdoc-parser.d.ts","sourceRoot":"","sources":["../../src/analyzer/tsdoc-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAeL,KAAK,4BAA4B,EAIlC,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"tsdoc-parser.d.ts","sourceRoot":"","sources":["../../src/analyzer/tsdoc-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAeL,KAAK,4BAA4B,EAIlC,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAs/BhE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1D;AA2DD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,SAAK,EACT,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAyNlB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAkB5D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,mBAAmB,CAmC7E;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAEpD"}
|
package/dist/browser.cjs
CHANGED
|
@@ -880,20 +880,29 @@ function assertNoSerializedNameCollisions(ir) {
|
|
|
880
880
|
}
|
|
881
881
|
|
|
882
882
|
// src/json-schema/ir-generator.ts
|
|
883
|
+
function parseEnumSerialization(value) {
|
|
884
|
+
switch (value) {
|
|
885
|
+
case void 0:
|
|
886
|
+
case "enum":
|
|
887
|
+
return "enum";
|
|
888
|
+
case "oneOf":
|
|
889
|
+
return "oneOf";
|
|
890
|
+
case "smart-size":
|
|
891
|
+
return "smart-size";
|
|
892
|
+
default:
|
|
893
|
+
throw new Error(
|
|
894
|
+
`Invalid enumSerialization "${String(value)}". Expected "enum", "oneOf", or "smart-size".`
|
|
895
|
+
);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
883
898
|
function makeContext(options) {
|
|
884
899
|
const vendorPrefix = options?.vendorPrefix ?? "x-formspec";
|
|
885
|
-
const
|
|
900
|
+
const enumSerialization = parseEnumSerialization(options?.enumSerialization);
|
|
886
901
|
if (!vendorPrefix.startsWith("x-")) {
|
|
887
902
|
throw new Error(
|
|
888
903
|
`Invalid vendorPrefix "${vendorPrefix}". Extension JSON Schema keywords must start with "x-".`
|
|
889
904
|
);
|
|
890
905
|
}
|
|
891
|
-
if (rawEnumSerialization !== void 0 && rawEnumSerialization !== "enum" && rawEnumSerialization !== "oneOf") {
|
|
892
|
-
throw new Error(
|
|
893
|
-
`Invalid enumSerialization "${rawEnumSerialization}". Expected "enum" or "oneOf".`
|
|
894
|
-
);
|
|
895
|
-
}
|
|
896
|
-
const enumSerialization = rawEnumSerialization ?? "enum";
|
|
897
906
|
return {
|
|
898
907
|
defs: {},
|
|
899
908
|
typeNameMap: {},
|
|
@@ -1101,7 +1110,7 @@ function generatePrimitiveType(type) {
|
|
|
1101
1110
|
};
|
|
1102
1111
|
}
|
|
1103
1112
|
function generateEnumType(type, ctx) {
|
|
1104
|
-
if (ctx.enumSerialization === "oneOf") {
|
|
1113
|
+
if (ctx.enumSerialization === "oneOf" || ctx.enumSerialization === "smart-size" && shouldSerializeEnumAsOneOf(type)) {
|
|
1105
1114
|
return {
|
|
1106
1115
|
oneOf: type.members.map((m) => {
|
|
1107
1116
|
const stringValue = String(m.value);
|
|
@@ -1111,12 +1120,21 @@ function generateEnumType(type, ctx) {
|
|
|
1111
1120
|
};
|
|
1112
1121
|
}
|
|
1113
1122
|
const schema = { enum: type.members.map((m) => m.value) };
|
|
1123
|
+
if (ctx.enumSerialization === "smart-size") {
|
|
1124
|
+
return schema;
|
|
1125
|
+
}
|
|
1114
1126
|
const displayNames = buildEnumDisplayNameExtension(type);
|
|
1115
1127
|
if (displayNames !== void 0) {
|
|
1116
1128
|
schema[`${ctx.vendorPrefix}-display-names`] = displayNames;
|
|
1117
1129
|
}
|
|
1118
1130
|
return schema;
|
|
1119
1131
|
}
|
|
1132
|
+
function shouldSerializeEnumAsOneOf(type) {
|
|
1133
|
+
return type.members.some((member) => {
|
|
1134
|
+
const title = member.displayName ?? String(member.value);
|
|
1135
|
+
return title !== String(member.value);
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1120
1138
|
function buildEnumDisplayNameExtension(type) {
|
|
1121
1139
|
if (!type.members.some((member) => member.displayName !== void 0)) {
|
|
1122
1140
|
return void 0;
|