diff --git a/README.md b/README.md index 51f857da..ef976578 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,8 @@ See [server demo](example) and [browser demo](https://github.com/bcherny/json-sc | unknownAny | boolean | `true` | Use `unknown` instead of `any` where possible | | unreachableDefinitions | boolean | `false` | Generates code for `definitions` that aren't referenced by the schema. | | strictIndexSignatures | boolean | `false` | Append all index signatures with `\| undefined` so that they are strictly typed. | +| readonlyByDefault | boolean | `false` | This is the implied value for unspecified `"tsReadonly"` and `"tsReadonlyProperty"` properties. | +| readonlyKeyword | boolean | `true` | Use the `readonly` keyword instead of `ReadonlyArray` for `array` types. **WARNING:** Setting this to `false` will disable readonly tuple support. | | $refOptions | object | `{}` | [$RefParser](https://github.com/BigstickCarpet/json-schema-ref-parser) Options, used when resolving `$ref`s | ## CLI @@ -164,11 +166,112 @@ json2ts -i foo.json -o foo.d.ts --style.singleQuote --no-style.semi - [x] literal objects in enum ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L236)) - [x] referencing schema by id ([eg](https://github.com/tdegrunt/jsonschema/blob/67c0e27ce9542efde0bf43dc1b2a95dd87df43c3/examples/all.js#L331)) - [x] custom typescript types via `tsType` +- [x] support for `readonly` types via `tsReadonly` +- [x] support for `readonly` properties via `tsReadonlyProperty` ## Custom schema properties: - `tsType`: Overrides the type that's generated from the schema. Useful for forcing a type to `any` or when using non-standard JSON schema extensions ([eg](https://github.com/sokra/json-schema-to-typescript/blob/f1f40307cf5efa328522bb1c9ae0b0d9e5f367aa/test/e2e/customType.ts)). - `tsEnumNames`: Overrides the names used for the elements in an enum. Can also be used to create string enums ([eg](https://github.com/johnbillion/wp-json-schemas/blob/647440573e4a675f15880c95fcca513fdf7a2077/schemas/properties/post-status-name.json)). +- `tsReadonly`: Sets whether an array is `readonly` in TypeScript. + + ```jsonc + // readonlyByDefault: false + { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + }, + "tsReadonly": true + // Compiles to `readonly string[]` + }, + { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + }, + "tsReadonly": true + // Compiles to `readonly [string, ...string[]]` + } + ] + } + ``` + + If unspecified, defaults to the value of the *readonlyByDefault* option. + +- `tsReadonlyProperty`: Sets whether an object property is `readonly` in TypeScript. + + ```jsonc + // readonlyByDefault: false + { + "type": "object", + "properties": { + "foo": { + "type": "string", + "tsReadonlyProperty": true + } + }, + "additionalProperties": { + "type": "number", + "tsReadonlyProperty": true + } + // Compiles to `{ readonly foo: string, readonly [k: string]: number }` + } + ``` + + If unspecified, defaults to: + + 1. The value of the containing object schema's `tsReadonlyPropertyDefaultValue` property, if it is specified. + 2. The value of the *readonlyByDefault* option. + + +

+ +- `tsReadonlyPropertyDefaultValue`: Sets the default value of `tsReadonlyProperty` for an object schema's properties. This is the same as passing the object type to `Readonly`, except that properties can be explicitly marked as non-readonly. + + ```jsonc + { + "type": "object", + "tsReadonlyPropertyDefaultValue": true, + "properties": { + // This property is readonly + "foo": {}, + // This property is NOT readonly because we explicitly override the object's default + "bar": { + "tsReadonlyProperty": false + } + }, + // Additional properties are readonly + "additionalProperties": true + } + ``` + + Note that this property has no effect on sub-objects. + + ```jsonc + // readonlyByDefault: false + { + "type": "object", + "tsReadonlyPropertyDefaultValue": true, + "properties": { + // This property is readonly + "foo": { + "type": "object", + "properties": { + // This property is NOT readonly + "bar": { + "type": "string" + } + }, + // Additional properties are NOT readonly + "additionalProperties": true + } + } + } + ``` ## Not expressible in TypeScript: diff --git a/src/generator.ts b/src/generator.ts index 077cc5a4..dc26207f 100644 --- a/src/generator.ts +++ b/src/generator.ts @@ -12,7 +12,8 @@ import { TIntersection, TNamedInterface, TUnion, - T_UNKNOWN + T_UNKNOWN, + TTuple } from './types/AST' import {log, toSafeString} from './utils' @@ -178,8 +179,16 @@ function generateRawType(ast: AST, options: Options): string { return 'any' case 'ARRAY': return (() => { - const type = generateType(ast.params, options) - return type.endsWith('"') ? '(' + type + ')[]' : type + '[]' + let type = generateType(ast.params, options) + if (ast.isReadonly && !options.readonlyKeyword) { + type = 'ReadonlyArray<' + type + '>' + } else { + type = type.endsWith('"') ? '(' + type + ')[]' : type + '[]' + if (ast.isReadonly) { + type = 'readonly ' + type + } + } + return type })() case 'BOOLEAN': return 'boolean' @@ -230,7 +239,14 @@ function generateRawType(ast: AST, options: Options): string { } function paramsToString(params: string[]): string { - return '[' + params.join(', ') + ']' + let type = '[' + params.join(', ') + ']' + // `Readonly` where T is a tuple type is unsupported in versions of TypeScript prior to the introduction + // of the `readonly` keyword for array/tuple types, so don't bother adding it if options.readonlyKeyword is + // false + // Sources: + // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#a-new-syntax-for-readonlyarray + // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#readonly-tuples + return (ast as TTuple).isReadonly && options.readonlyKeyword ? 'readonly ' + type : type } const paramsList = astParams.map(param => generateType(param, options)) @@ -302,12 +318,19 @@ function generateInterface(ast: TInterface, options: Options): string { ast.params .filter(_ => !_.isPatternProperty && !_.isUnreachableDefinition) .map( - ({isRequired, keyName, ast}) => - [isRequired, keyName, ast, generateType(ast, options)] as [boolean, string, AST, string] + ({isRequired, isReadonlyParam, keyName, ast}) => + [isRequired, isReadonlyParam, keyName, ast, generateType(ast, options)] as [ + boolean, + boolean, + string, + AST, + string + ] ) .map( - ([isRequired, keyName, ast, type]) => + ([isRequired, isReadonlyParam, keyName, ast, type]) => (hasComment(ast) && !ast.standaloneName ? generateComment(ast.comment) + '\n' : '') + + (isReadonlyParam ? 'readonly ' : '') + escapeKeyName(keyName) + (isRequired ? '' : '?') + ': ' + diff --git a/src/index.ts b/src/index.ts index cacc4118..d62ef444 100644 --- a/src/index.ts +++ b/src/index.ts @@ -42,6 +42,16 @@ export interface Options { * Ignore maxItems and minItems for `array` types, preventing tuples being generated. */ ignoreMinAndMaxItems: boolean + /** + * This is the implied value for unspecified `"tsReadonly"` and `"tsReadonlyProperty"` properties. + */ + readonlyByDefault: boolean + /** + * Use the `readonly` keyword instead of `ReadonlyArray` for array types. + * + * **WARNING:** Setting this to `false` will disable readonly tuple support. + */ + readonlyKeyword: boolean /** * Append all index signatures with `| undefined` so that they are strictly typed. * @@ -79,6 +89,8 @@ export const DEFAULT_OPTIONS: Options = { enableConstEnums: true, format: true, ignoreMinAndMaxItems: false, + readonlyByDefault: false, + readonlyKeyword: true, strictIndexSignatures: false, style: { bracketSpacing: false, diff --git a/src/parser.ts b/src/parser.ts index 6cb6cef3..ec7be4a4 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -224,6 +224,7 @@ function parseNonLiteral( minItems, standaloneName: standaloneName(schema, keyNameFromDefinition, usedNames), params: schema.items.map(_ => parse(_, options, undefined, processed, usedNames)), + isReadonly: schema.tsReadonly ?? options.readonlyByDefault, type: 'TUPLE' } if (schema.additionalItems === true) { @@ -238,6 +239,7 @@ function parseNonLiteral( keyName, standaloneName: standaloneName(schema, keyNameFromDefinition, usedNames), params: parse(schema.items!, options, undefined, processed, usedNames), + isReadonly: schema.tsReadonly ?? options.readonlyByDefault, type: 'ARRAY' } } @@ -278,6 +280,7 @@ function parseNonLiteral( // if there is no maximum, then add a spread item to collect the rest spreadParam: maxItems >= 0 ? undefined : params, standaloneName: standaloneName(schema, keyNameFromDefinition, usedNames), + isReadonly: schema.tsReadonly ?? options.readonlyByDefault, type: 'TUPLE' } } @@ -287,6 +290,7 @@ function parseNonLiteral( keyName, params, standaloneName: standaloneName(schema, keyNameFromDefinition, usedNames), + isReadonly: schema.tsReadonly ?? options.readonlyByDefault, type: 'ARRAY' } } @@ -355,6 +359,8 @@ function parseSchema( isPatternProperty: false, isRequired: includes(schema.required || [], key), isUnreachableDefinition: false, + // Readonly state specified on property supercedes readonly state specified on the object + isReadonlyParam: value.tsReadonlyProperty ?? schema.tsReadonlyPropertyDefaultValue ?? options.readonlyByDefault, keyName: key })) @@ -376,6 +382,8 @@ via the \`patternProperty\` "${key}".` isPatternProperty: !singlePatternProperty, isRequired: singlePatternProperty || includes(schema.required || [], key), isUnreachableDefinition: false, + isReadonlyParam: + value.tsReadonlyProperty ?? schema.tsReadonlyPropertyDefaultValue ?? options.readonlyByDefault, keyName: singlePatternProperty ? '[k: string]' : key } }) @@ -394,6 +402,8 @@ via the \`definition\` "${key}".` isPatternProperty: false, isRequired: includes(schema.required || [], key), isUnreachableDefinition: true, + isReadonlyParam: + value.tsReadonlyProperty ?? schema.tsReadonlyPropertyDefaultValue ?? options.readonlyByDefault, keyName: key } }) @@ -412,6 +422,7 @@ via the \`definition\` "${key}".` isPatternProperty: false, isRequired: true, isUnreachableDefinition: false, + isReadonlyParam: schema.tsReadonlyPropertyDefaultValue ?? options.readonlyByDefault, keyName: '[k: string]' }) @@ -426,6 +437,11 @@ via the \`definition\` "${key}".` isPatternProperty: false, isRequired: true, isUnreachableDefinition: false, + // Explicit additionalProperties readonly state supercedes generic readonly state + isReadonlyParam: + schema.additionalProperties.tsReadonlyProperty ?? + schema.tsReadonlyPropertyDefaultValue ?? + options.readonlyByDefault, keyName: '[k: string]' }) } diff --git a/src/types/AST.ts b/src/types/AST.ts index 0697be60..ac545598 100644 --- a/src/types/AST.ts +++ b/src/types/AST.ts @@ -49,6 +49,7 @@ export interface TAny extends AbstractAST { export interface TArray extends AbstractAST { type: 'ARRAY' params: AST + isReadonly: boolean } export interface TBoolean extends AbstractAST { @@ -85,6 +86,7 @@ export interface TInterfaceParam { isRequired: boolean isPatternProperty: boolean isUnreachableDefinition: boolean + isReadonlyParam: boolean } export interface TIntersection extends AbstractAST { @@ -124,6 +126,7 @@ export interface TTuple extends AbstractAST { spreadParam?: AST minItems: number maxItems?: number + isReadonly: boolean } export interface TUnion extends AbstractAST { diff --git a/src/types/JSONSchema.ts b/src/types/JSONSchema.ts index d11d099f..17ae1aea 100644 --- a/src/types/JSONSchema.ts +++ b/src/types/JSONSchema.ts @@ -33,6 +33,26 @@ export interface JSONSchema extends JSONSchema4 { * schema extension to support custom types */ tsType?: string + /** + * schema extension to support readonly types + */ + tsReadonly?: boolean + /** + * schema extension to support readonly properties + */ + tsReadonlyProperty?: boolean + /** + * schema extension to support changing the default value of tsReadonlyProperty on this schema's properties + */ + tsReadonlyPropertyDefaultValue?: boolean + + // NOTE: When adding a new custom property, you MUST ALSO add that custom property as an exclusion in the + // nonCustomKeys function in src/typesOfSchema.ts + // If you do not do this weird things happen with otherwise empty schemas: + // {"title": "X", "additionalProperties": {"myCustomProperty": null}} + // Outputs: interface X {[k: string]: {[k: string]: unknown}} + // Instead of the expected: interface X {[k: string]: unknown} + // (or [k: string]: any depending on options) } export const Parent = Symbol('Parent') diff --git a/src/typesOfSchema.ts b/src/typesOfSchema.ts index 130c5665..fbc5360f 100644 --- a/src/typesOfSchema.ts +++ b/src/typesOfSchema.ts @@ -31,12 +31,23 @@ export function typesOfSchema(schema: JSONSchema): readonly [SchemaType, ...Sche return matchedTypes as [SchemaType, ...SchemaType[]] } +function nonCustonKeys(obj: JSONSchema): string[] { + return Object.keys(obj).filter( + key => + key !== 'tsEnumNames' && + key !== 'tsType' && + key !== 'tsReadonly' && + key !== 'tsReadonlyProperty' && + key !== 'tsReadonlyPropertyDefaultValue' + ) +} + const matchers: Record boolean> = { ALL_OF(schema) { return 'allOf' in schema }, ANY(schema) { - if (Object.keys(schema).length === 0) { + if (nonCustonKeys(schema).length === 0) { // The empty schema {} validates any value // @see https://json-schema.org/draft-07/json-schema-core.html#rfc.section.4.3.1 return true diff --git a/src/utils.ts b/src/utils.ts index 7fbbb177..237a69de 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -275,6 +275,13 @@ export function escapeBlockComment(schema: JSONSchema) { } } +/** + * Makes Windows paths look like POSIX paths, ignoring drive letter prefixes (if present). + */ +export function forcePosixLikePath(path: string): string { + return path.replace(/\\/gu, '/') +} + /* the following logic determines the out path by comparing the in path to the users specified out path. For example, if input directory MultiSchema looks like: @@ -291,7 +298,7 @@ export function pathTransform(outputPath: string, inputPath: string, filePath: s const filePathList = dirname(normalize(filePath)).split(sep) const filePathRel = filePathList.filter((f, i) => f !== inPathList[i]) - return join(normalize(outputPath), ...filePathRel) + return forcePosixLikePath(join(normalize(outputPath), ...filePathRel)) } /** diff --git a/test/__snapshots__/test/test.ts.md b/test/__snapshots__/test/test.ts.md index 7e03a2c8..6f81e0d1 100644 --- a/test/__snapshots__/test/test.ts.md +++ b/test/__snapshots__/test/test.ts.md @@ -9021,3 +9021,4520 @@ Generated by [AVA](https://avajs.dev). ""␊ ]␊ }` + +## additionalPropertiesEmptyExceptForCustomProperties.js + +> Expected output to match snapshot for e2e test: additionalPropertiesEmptyExceptForCustomProperties.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface AdditionalProperties {␊ + foo?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyArray.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = string[];␊ + ` + +## readonlyArray.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = string[];␊ + ` + +## readonlyArray.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = string[];␊ + ` + +## readonlyArray.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = ReadonlyArray;␊ + ` + +## readonlyArray.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoFalse.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoFalse.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoFalse.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoFalse.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoFalse.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoFalse.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterface {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterface {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterface {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyTuple.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleExplicitFalse = [string, ...string[]];␊ + ` + +## readonlyTuple.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleExplicitFalse = [string, ...string[]];␊ + ` + +## readonlyTuple.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleExplicitFalse = [string, ...string[]];␊ + ` + +## readonlyTuple.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTuple = [string, ...string[]];␊ + ` + +## readonlyTuple.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTuple = readonly [string, ...string[]];␊ + ` + +## readonlyTuple.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTuple = readonly [string, ...string[]];␊ + ` + +## readonlyArray.readonlyByDefault.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = ReadonlyArray;␊ + ` + +## readonlyArray.readonlyByDefault.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.readonlyByDefault.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.readonlyByDefault.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = ReadonlyArray;␊ + ` + +## readonlyArray.readonlyByDefault.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.readonlyByDefault.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.explicitFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.explicitFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.explicitFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.explicitFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.explicitFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.explicitFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyTuple.readonlyByDefault.explicitTrue.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.explicitTrue.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefaultExplicitTrue = [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.explicitTrue.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.explicitTrue.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefaultExplicitTrue = readonly [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.explicitTrue.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.explicitTrue.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefaultExplicitTrue = [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.optionFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.optionFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefault = [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.optionTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.optionTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefault = readonly [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.optionUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.optionUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefault = readonly [string, ...string[]];␊ + ` + +## readonlyArray.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = string[];␊ + ` + +## readonlyArray.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = string[];␊ + ` + +## readonlyArray.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = string[];␊ + ` + +## readonlyArray.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = ReadonlyArray;␊ + ` + +## readonlyArray.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.readonlyByDefault.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = ReadonlyArray;␊ + ` + +## readonlyArray.readonlyByDefault.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.readonlyByDefault.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.readonlyByDefault.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = ReadonlyArray;␊ + ` + +## readonlyArray.readonlyByDefault.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyArray.readonlyByDefault.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyArray.readonlyByDefault.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type MyArray = readonly string[];␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesEmptySchema.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesEmptySchema.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesRoTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesRoTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesRoTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.additionalPropertiesTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.additionalPropertiesTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterface {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterface {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterface {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesEmptySchemaExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoFalseExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesRoTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultAdditionalPropertiesTrueExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultExplicitFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyByDefault.readonlyObject.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyByDefault.readonlyObject.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyByDefaultReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchemaExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesEmptySchema {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalseExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoFalse {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesRoTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrueExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectAdditionalPropertiesTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + readonly [k: string]: unknown;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObjectExplicitTrue {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyInterface.readonlyObject.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyInterface.readonlyObject.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterfaceReadonlyObject {␊ + readonly a: string;␊ + b: string;␊ + readonly c?: string;␊ + d?: string;␊ + }␊ + ` + +## readonlyTuple.explicitFalse.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.explicitFalse.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleExplicitFalse = [string, ...string[]];␊ + ` + +## readonlyTuple.explicitFalse.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.explicitFalse.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleExplicitFalse = [string, ...string[]];␊ + ` + +## readonlyTuple.explicitFalse.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.explicitFalse.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleExplicitFalse = [string, ...string[]];␊ + ` + +## readonlyTuple.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTuple = [string, ...string[]];␊ + ` + +## readonlyTuple.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTuple = readonly [string, ...string[]];␊ + ` + +## readonlyTuple.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTuple = readonly [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.explicitTrue.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.explicitTrue.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefaultExplicitTrue = [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.explicitTrue.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.explicitTrue.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefaultExplicitTrue = readonly [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.explicitTrue.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.explicitTrue.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefaultExplicitTrue = [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.keywordFalse.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.keywordFalse.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefault = [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.keywordTrue.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.keywordTrue.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefault = readonly [string, ...string[]];␊ + ` + +## readonlyTuple.readonlyByDefault.keywordUnspecified.js + +> Expected output to match snapshot for e2e test: readonlyTuple.readonlyByDefault.keywordUnspecified.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTupleReadonlyByDefault = readonly [string, ...string[]];␊ + ` + +## readonlyInterface.tsType.js + +> Expected output to match snapshot for e2e test: readonlyInterface.tsType.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export interface ReadonlyInterface {␊ + readonly a: MyCustomType;␊ + }␊ + ` + +## readonlyTuple.maxItems.js + +> Expected output to match snapshot for e2e test: readonlyTuple.maxItems.js + + `/* tslint:disable */␊ + /**␊ + * This file was automatically generated by json-schema-to-typescript.␊ + * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,␊ + * and run json-schema-to-typescript to regenerate this file.␊ + */␊ + ␊ + export type ReadonlyTuple = readonly [string] | readonly [string, string] | readonly [string, string, string];␊ + ` diff --git a/test/__snapshots__/test/test.ts.snap b/test/__snapshots__/test/test.ts.snap index 32b63915..62aea049 100644 Binary files a/test/__snapshots__/test/test.ts.snap and b/test/__snapshots__/test/test.ts.snap differ diff --git a/test/e2e/additionalPropertiesEmptyExceptForCustomProperties.ts b/test/e2e/additionalPropertiesEmptyExceptForCustomProperties.ts new file mode 100644 index 00000000..49d64672 --- /dev/null +++ b/test/e2e/additionalPropertiesEmptyExceptForCustomProperties.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'AdditionalProperties', + type: 'object', + properties: { + foo: { + type: 'string' + } + }, + additionalProperties: { + tsEnumNames: [] + } +} diff --git a/test/e2e/readonlyArray.explicitFalse.keywordFalse.ts b/test/e2e/readonlyArray.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..08bea4cc --- /dev/null +++ b/test/e2e/readonlyArray.explicitFalse.keywordFalse.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyArray.explicitFalse.keywordTrue.ts b/test/e2e/readonlyArray.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..2b884e24 --- /dev/null +++ b/test/e2e/readonlyArray.explicitFalse.keywordTrue.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyArray.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyArray.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..1e310072 --- /dev/null +++ b/test/e2e/readonlyArray.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,8 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: false +} diff --git a/test/e2e/readonlyArray.keywordFalse.ts b/test/e2e/readonlyArray.keywordFalse.ts new file mode 100644 index 00000000..934cc34b --- /dev/null +++ b/test/e2e/readonlyArray.keywordFalse.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyArray.keywordTrue.ts b/test/e2e/readonlyArray.keywordTrue.ts new file mode 100644 index 00000000..4e75a8bf --- /dev/null +++ b/test/e2e/readonlyArray.keywordTrue.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyArray.keywordUnspecified.ts b/test/e2e/readonlyArray.keywordUnspecified.ts new file mode 100644 index 00000000..014bd6d9 --- /dev/null +++ b/test/e2e/readonlyArray.keywordUnspecified.ts @@ -0,0 +1,8 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: true +} diff --git a/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordFalse.ts b/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..29c57bc6 --- /dev/null +++ b/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordFalse.ts @@ -0,0 +1,13 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordTrue.ts b/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..26791598 --- /dev/null +++ b/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordTrue.ts @@ -0,0 +1,13 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..e3cd09f3 --- /dev/null +++ b/test/e2e/readonlyArray.readonlyByDefault.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyArray.readonlyByDefault.keywordFalse.ts b/test/e2e/readonlyArray.readonlyByDefault.keywordFalse.ts new file mode 100644 index 00000000..cc39d98f --- /dev/null +++ b/test/e2e/readonlyArray.readonlyByDefault.keywordFalse.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyArray.readonlyByDefault.keywordTrue.ts b/test/e2e/readonlyArray.readonlyByDefault.keywordTrue.ts new file mode 100644 index 00000000..d987c066 --- /dev/null +++ b/test/e2e/readonlyArray.readonlyByDefault.keywordTrue.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyArray.readonlyByDefault.keywordUnspecified.ts b/test/e2e/readonlyArray.readonlyByDefault.keywordUnspecified.ts new file mode 100644 index 00000000..d987c066 --- /dev/null +++ b/test/e2e/readonlyArray.readonlyByDefault.keywordUnspecified.ts @@ -0,0 +1,12 @@ +export const input = { + title: 'MyArray', + type: 'array', + items: { + type: 'string' + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..83c7d66c --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..09b8639c --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..161220c1 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordFalse.ts b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordFalse.ts new file mode 100644 index 00000000..53278f9c --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordTrue.ts b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordTrue.ts new file mode 100644 index 00000000..0b8fb902 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordUnspecified.ts b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordUnspecified.ts new file mode 100644 index 00000000..27c68252 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesEmptySchema.keywordUnspecified.ts @@ -0,0 +1,22 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..df38de41 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordFalse.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..9b39b822 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordTrue.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..da9d0e45 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..dec9da20 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordFalse.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..938e5b1b --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordTrue.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..b189305b --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordFalse.ts b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordFalse.ts new file mode 100644 index 00000000..4102594e --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordTrue.ts b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordTrue.ts new file mode 100644 index 00000000..e3db52df --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordUnspecified.ts new file mode 100644 index 00000000..54605f93 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesRoTrue.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..19c537db --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..ab6d8b33 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..f8ad8c94 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesTrue.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordFalse.ts b/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordFalse.ts new file mode 100644 index 00000000..fa6f5f18 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordTrue.ts b/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordTrue.ts new file mode 100644 index 00000000..cec0d581 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordUnspecified.ts new file mode 100644 index 00000000..f37a52f1 --- /dev/null +++ b/test/e2e/readonlyInterface.additionalPropertiesTrue.keywordUnspecified.ts @@ -0,0 +1,22 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..58672b24 --- /dev/null +++ b/test/e2e/readonlyInterface.explicitFalse.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..5f21c659 --- /dev/null +++ b/test/e2e/readonlyInterface.explicitFalse.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..6cc7d7a7 --- /dev/null +++ b/test/e2e/readonlyInterface.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: false +} diff --git a/test/e2e/readonlyInterface.keywordFalse.ts b/test/e2e/readonlyInterface.keywordFalse.ts new file mode 100644 index 00000000..5fdf65be --- /dev/null +++ b/test/e2e/readonlyInterface.keywordFalse.ts @@ -0,0 +1,25 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.keywordTrue.ts b/test/e2e/readonlyInterface.keywordTrue.ts new file mode 100644 index 00000000..a0b2d7a8 --- /dev/null +++ b/test/e2e/readonlyInterface.keywordTrue.ts @@ -0,0 +1,25 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.keywordUnspecified.ts b/test/e2e/readonlyInterface.keywordUnspecified.ts new file mode 100644 index 00000000..cad91e8f --- /dev/null +++ b/test/e2e/readonlyInterface.keywordUnspecified.ts @@ -0,0 +1,21 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string' + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string' + } + }, + additionalProperties: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..07039057 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordFalse.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..d999b84c --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordTrue.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..b50639ae --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesEmptySchema.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..efa47a20 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordFalse.ts @@ -0,0 +1,31 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..2acc5f59 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordTrue.ts @@ -0,0 +1,31 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..0dbd0ee4 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoFalse.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..2b80f5b6 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordFalse.ts @@ -0,0 +1,31 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..ace9edfb --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordTrue.ts @@ -0,0 +1,31 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..f9efe601 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesRoTrue.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..07d876fe --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordFalse.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..3d87893a --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordTrue.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..f22c4515 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.additionalPropertiesTrue.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: false +} + +export const optionds = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..98b8a89e --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordFalse.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..661ca0a0 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordTrue.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..24834142 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: false +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..a67fd7ca --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {} +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..8fed8009 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {} +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..e3d31a81 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,27 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {} +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.ts new file mode 100644 index 00000000..0327c8d4 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {} +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.ts new file mode 100644 index 00000000..921587a9 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {} +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.ts new file mode 100644 index 00000000..6e5d8944 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..da630e63 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..38af4e23 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..103cf785 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + } +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordFalse.ts new file mode 100644 index 00000000..58254b98 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordTrue.ts new file mode 100644 index 00000000..3c1bc9c1 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.ts new file mode 100644 index 00000000..5373ae7c --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.ts @@ -0,0 +1,27 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + } +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..bea314f6 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..78dc2470 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..3e371c04 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,29 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + } +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..9184a0e0 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..576a7578 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..39c1ca09 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,27 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordFalse.ts new file mode 100644 index 00000000..fd1a3bd3 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordTrue.ts new file mode 100644 index 00000000..5886e94b --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordUnspecified.ts new file mode 100644 index 00000000..8c6468f3 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.additionalPropertiesTrue.keywordUnspecified.ts @@ -0,0 +1,25 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..8a1cf276 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..312c73e0 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..5a4257cf --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,27 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordFalse.ts new file mode 100644 index 00000000..f1d8d668 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordTrue.ts new file mode 100644 index 00000000..0c32388b --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordUnspecified.ts new file mode 100644 index 00000000..aa04e9da --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyByDefault.readonlyObject.keywordUnspecified.ts @@ -0,0 +1,25 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..9eeb15ae --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..c13b38b5 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..36a97a48 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.ts new file mode 100644 index 00000000..1bb029b0 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.ts new file mode 100644 index 00000000..84e5b88f --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.ts new file mode 100644 index 00000000..5a9a002e --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesEmptySchema.keywordUnspecified.ts @@ -0,0 +1,22 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: {}, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..b70d8753 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordFalse.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..2824934b --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordTrue.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..34294862 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordFalse.ts new file mode 100644 index 00000000..50710043 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordTrue.ts new file mode 100644 index 00000000..e3b208a7 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.ts new file mode 100644 index 00000000..a1cbed7c --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoFalse.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: false + }, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..9059a075 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordFalse.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..98479461 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordTrue.ts @@ -0,0 +1,30 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..a9089fb7 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesRoTrue.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: { + tsReadonlyProperty: true + }, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..41ca28a8 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..9e3bfcff --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..5291560c --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordFalse.ts new file mode 100644 index 00000000..83358fbd --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordTrue.ts new file mode 100644 index 00000000..590f7326 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordUnspecified.ts new file mode 100644 index 00000000..8da003d2 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.additionalPropertiesTrue.keywordUnspecified.ts @@ -0,0 +1,22 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: true, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..c8684ffc --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordFalse.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..c230f0be --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordTrue.ts @@ -0,0 +1,28 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..fbd78875 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,24 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string', + tsReadonlyProperty: true + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string', + tsReadonlyProperty: true + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.keywordFalse.ts b/test/e2e/readonlyInterface.readonlyObject.keywordFalse.ts new file mode 100644 index 00000000..80c3a9c0 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.keywordFalse.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyInterface.readonlyObject.keywordTrue.ts b/test/e2e/readonlyInterface.readonlyObject.keywordTrue.ts new file mode 100644 index 00000000..094988eb --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.keywordTrue.ts @@ -0,0 +1,26 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyInterface.readonlyObject.keywordUnspecified.ts b/test/e2e/readonlyInterface.readonlyObject.keywordUnspecified.ts new file mode 100644 index 00000000..9fa6f955 --- /dev/null +++ b/test/e2e/readonlyInterface.readonlyObject.keywordUnspecified.ts @@ -0,0 +1,22 @@ +export const input = { + type: 'object', + required: ['a', 'b'], + properties: { + a: { + type: 'string' + }, + b: { + type: 'string', + tsReadonlyProperty: false + }, + c: { + type: 'string' + }, + d: { + type: 'string', + tsReadonlyProperty: false + } + }, + additionalProperties: false, + tsReadonlyPropertyDefaultValue: true +} diff --git a/test/e2e/readonlyInterface.tsType.ts b/test/e2e/readonlyInterface.tsType.ts new file mode 100644 index 00000000..b1dbf540 --- /dev/null +++ b/test/e2e/readonlyInterface.tsType.ts @@ -0,0 +1,11 @@ +export const input = { + type: 'object', + required: ['a'], + properties: { + a: { + tsType: 'MyCustomType', + tsReadonlyProperty: true + } + }, + additionalProperties: false +} diff --git a/test/e2e/readonlyTuple.explicitFalse.keywordFalse.ts b/test/e2e/readonlyTuple.explicitFalse.keywordFalse.ts new file mode 100644 index 00000000..1a44e1c5 --- /dev/null +++ b/test/e2e/readonlyTuple.explicitFalse.keywordFalse.ts @@ -0,0 +1,12 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: false +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyTuple.explicitFalse.keywordTrue.ts b/test/e2e/readonlyTuple.explicitFalse.keywordTrue.ts new file mode 100644 index 00000000..a14000ea --- /dev/null +++ b/test/e2e/readonlyTuple.explicitFalse.keywordTrue.ts @@ -0,0 +1,12 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: false +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyTuple.explicitFalse.keywordUnspecified.ts b/test/e2e/readonlyTuple.explicitFalse.keywordUnspecified.ts new file mode 100644 index 00000000..aa53eeb7 --- /dev/null +++ b/test/e2e/readonlyTuple.explicitFalse.keywordUnspecified.ts @@ -0,0 +1,8 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: false +} diff --git a/test/e2e/readonlyTuple.keywordFalse.ts b/test/e2e/readonlyTuple.keywordFalse.ts new file mode 100644 index 00000000..61130c90 --- /dev/null +++ b/test/e2e/readonlyTuple.keywordFalse.ts @@ -0,0 +1,12 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyKeyword: false +} diff --git a/test/e2e/readonlyTuple.keywordTrue.ts b/test/e2e/readonlyTuple.keywordTrue.ts new file mode 100644 index 00000000..8e9b77e7 --- /dev/null +++ b/test/e2e/readonlyTuple.keywordTrue.ts @@ -0,0 +1,12 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyKeyword: true +} diff --git a/test/e2e/readonlyTuple.keywordUnspecified.ts b/test/e2e/readonlyTuple.keywordUnspecified.ts new file mode 100644 index 00000000..8ff849e2 --- /dev/null +++ b/test/e2e/readonlyTuple.keywordUnspecified.ts @@ -0,0 +1,8 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: true +} diff --git a/test/e2e/readonlyTuple.maxItems.ts b/test/e2e/readonlyTuple.maxItems.ts new file mode 100644 index 00000000..7d3a852f --- /dev/null +++ b/test/e2e/readonlyTuple.maxItems.ts @@ -0,0 +1,9 @@ +export const input = { + type: 'array', + minItems: 1, + maxItems: 3, + items: { + type: 'string' + }, + tsReadonly: true +} diff --git a/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordFalse.ts b/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordFalse.ts new file mode 100644 index 00000000..469dc79e --- /dev/null +++ b/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordFalse.ts @@ -0,0 +1,13 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordTrue.ts b/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordTrue.ts new file mode 100644 index 00000000..86bab447 --- /dev/null +++ b/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordTrue.ts @@ -0,0 +1,13 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordUnspecified.ts b/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordUnspecified.ts new file mode 100644 index 00000000..469dc79e --- /dev/null +++ b/test/e2e/readonlyTuple.readonlyByDefault.explicitTrue.keywordUnspecified.ts @@ -0,0 +1,13 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + }, + tsReadonly: true +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyTuple.readonlyByDefault.keywordFalse.ts b/test/e2e/readonlyTuple.readonlyByDefault.keywordFalse.ts new file mode 100644 index 00000000..fd8f8202 --- /dev/null +++ b/test/e2e/readonlyTuple.readonlyByDefault.keywordFalse.ts @@ -0,0 +1,12 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: false +} diff --git a/test/e2e/readonlyTuple.readonlyByDefault.keywordTrue.ts b/test/e2e/readonlyTuple.readonlyByDefault.keywordTrue.ts new file mode 100644 index 00000000..03ac663f --- /dev/null +++ b/test/e2e/readonlyTuple.readonlyByDefault.keywordTrue.ts @@ -0,0 +1,12 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + } +} + +export const options = { + readonlyByDefault: true, + readonlyKeyword: true +} diff --git a/test/e2e/readonlyTuple.readonlyByDefault.keywordUnspecified.ts b/test/e2e/readonlyTuple.readonlyByDefault.keywordUnspecified.ts new file mode 100644 index 00000000..b785bf0e --- /dev/null +++ b/test/e2e/readonlyTuple.readonlyByDefault.keywordUnspecified.ts @@ -0,0 +1,11 @@ +export const input = { + type: 'array', + minItems: 1, + items: { + type: 'string' + } +} + +export const options = { + readonlyByDefault: true +} diff --git a/test/testCLI.ts b/test/testCLI.ts index a31568d8..51008d2c 100644 --- a/test/testCLI.ts +++ b/test/testCLI.ts @@ -3,6 +3,7 @@ import {execSync} from 'child_process' import {readFileSync, unlinkSync, readdirSync, existsSync, lstatSync} from 'fs' import {resolve, join} from 'path' import rimraf = require('rimraf') +import {forcePosixLikePath} from '../src/utils' export function run() { test('pipe in, pipe out', t => { @@ -84,7 +85,7 @@ export function run() { }) test('files in (-i), files out (-o)', t => { - execSync("node dist/src/cli.js -i './test/resources/MultiSchema/**/*.json' -o ./test/resources/MultiSchema/out") + execSync("node dist/src/cli.js -i ./test/resources/MultiSchema/**/*.json -o ./test/resources/MultiSchema/out") readdirSync('./test/resources/MultiSchema/out').forEach(f => { const path = `./test/resources/MultiSchema/out/${f}` @@ -96,12 +97,12 @@ export function run() { }) test('files in (-i), pipe out', t => { - t.snapshot(execSync("node dist/src/cli.js -i './test/resources/MultiSchema/**/*.json'").toString()) + t.snapshot(execSync("node dist/src/cli.js -i ./test/resources/MultiSchema/**/*.json").toString()) }) test('files in (-i), files out (-o) nested dir does not exist', t => { execSync( - "node dist/src/cli.js -i './test/resources/MultiSchema/**/*.json' -o ./test/resources/MultiSchema/foo/bar/out" + "node dist/src/cli.js -i ./test/resources/MultiSchema/**/*.json -o ./test/resources/MultiSchema/foo/bar/out" ) readdirSync('./test/resources/MultiSchema/foo/bar/out').forEach(f => { const path = `./test/resources/MultiSchema/foo/bar/out/${f}` @@ -114,9 +115,10 @@ export function run() { test('files in (-i), files out (-o) matching nested dir', t => { execSync( - "node dist/src/cli.js -i './test/resources/../../test/resources/MultiSchema2/' -o ./test/resources/MultiSchema2/out" + "node dist/src/cli.js -i ./test/resources/../../test/resources/MultiSchema2/ -o ./test/resources/MultiSchema2/out" ) - getPaths('./test/resources/MultiSchema2/out').forEach(file => { + // Need to make sure file ordering is the same on Windows and Unix-like OSs + getPaths('./test/resources/MultiSchema2/out').sort(compareByCodePoint).forEach(file => { t.snapshot(file) t.snapshot(readFileSync(file, 'utf-8')) unlinkSync(file) @@ -129,8 +131,25 @@ function getPaths(path: string, paths: string[] = []) { if (existsSync(path) && lstatSync(path).isDirectory()) { readdirSync(resolve(path)).forEach(item => getPaths(join(path, item), paths)) } else { - paths.push(path) + // Need to make sure path strings are the same on Windows and Unix-like OSs + paths.push(forcePosixLikePath(path)) } return paths } + +function compareByCodePoint (a: string, b: string) { + const minLength = Math.min(a.length, b.length) + for (let i = 0; i < minLength; i++) { + const cmp = (a?.codePointAt(i) ?? a.charCodeAt(i)) - (b.codePointAt(i) ?? b.charCodeAt(i)) + if (cmp !== 0) { + return cmp + } + } + if (a.length < b.length) { + return -1 + } else if (a.length > b.length) { + return 1 + } + return 0 +}