diff --git a/.babelrc b/.babelrc index 0d11e9ccbb..94da2334c4 100644 --- a/.babelrc +++ b/.babelrc @@ -1,7 +1,8 @@ { "presets": [ "@babel/preset-react", - "@babel/preset-env" + "@babel/preset-env", + "@babel/preset-typescript" ], "plugins": [ "@babel/plugin-proposal-object-rest-spread", diff --git a/babel-register.js b/babel-register.js new file mode 100644 index 0000000000..6b72a65ee5 --- /dev/null +++ b/babel-register.js @@ -0,0 +1 @@ +require("@babel/register")({ extensions: ['.js', '.jsx', '.ts', '.tsx'] }); \ No newline at end of file diff --git a/docs/advanced-customization.md b/docs/advanced-customization.md index 0390c7458c..13f190df6f 100644 --- a/docs/advanced-customization.md +++ b/docs/advanced-customization.md @@ -108,7 +108,7 @@ render(( ), document.getElementById("app")); ``` -Please see [customArray.js](https://github.com/mozilla-services/react-jsonschema-form/blob/master/playground/samples/customArray.js) for a better example. +Please see [customArray.tsx](https://github.com/mozilla-services/react-jsonschema-form/blob/master/playground/samples/customArray.tsx) for a better example. The following props are passed to each `ArrayFieldTemplate`: @@ -182,7 +182,7 @@ render(( ), document.getElementById("app")); ``` -Please see [customObject.js](https://github.com/mozilla-services/react-jsonschema-form/blob/master/playground/samples/customObject.js) for a better example. +Please see [customObject.tsx](https://github.com/mozilla-services/react-jsonschema-form/blob/master/playground/samples/customObject.tsx) for a better example. The following props are passed to each `ObjectFieldTemplate`: diff --git a/package-lock.json b/package-lock.json index 90756ce414..97bede1d14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1997,6 +1997,15 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-syntax-typescript": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz", + "integrity": "sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, "@babel/plugin-transform-arrow-functions": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", @@ -2450,6 +2459,134 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-transform-typescript": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz", + "integrity": "sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.5.5", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-typescript": "^7.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", + "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz", + "integrity": "sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.5.5", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5", + "@babel/helper-split-export-declaration": "^7.4.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", + "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", + "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.5.5", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "dev": true + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", + "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "@babel/plugin-transform-unicode-regex": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", @@ -2609,6 +2746,16 @@ "@babel/plugin-transform-react-jsx-source": "^7.0.0" } }, + "@babel/preset-typescript": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.3.3.tgz", + "integrity": "sha512-mzMVuIP4lqtn4du2ynEfdO0+RYcslwrZiJHXu4MGaC1ctJiW2fyaeDrtjJGs7R/KebZ1sgowcIoWf4uRpEfKEg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.3.2" + } + }, "@babel/register": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.4.4.tgz", @@ -7388,6 +7535,12 @@ } } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, "json-loader": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", diff --git a/package.json b/package.json index eb4d614bad..94da7c82dc 100644 --- a/package.json +++ b/package.json @@ -16,10 +16,10 @@ "publish-to-npm": "npm run dist && npm publish", "preversion": "npm run build:playground && npm run dist && npm run cs-check && npm run lint", "start": "node devServer.js", - "tdd": "cross-env NODE_ENV=test mocha --require @babel/register --watch --require ./test/setup-jsdom.js test/**/*_test.js", - "test": "cross-env NODE_ENV=test mocha --require @babel/register --require ./test/setup-jsdom.js test/**/*_test.js", - "test-coverage": "cross-env NODE_ENV=test nyc --reporter=lcov mocha --require @babel/register --require ./test/setup-jsdom.js test/**/*_test.js", - "test-debug": "cross-env NODE_ENV=test mocha --require @babel/register --require ./test/setup-jsdom.js --debug-brk --inspect test/Form_test.js" + "tdd": "cross-env NODE_ENV=test mocha --require ./babel-register.js --watch --require ./test/setup-jsdom.js test/**/*_test.js", + "test": "cross-env NODE_ENV=test mocha --require ./babel-register.js --require ./test/setup-jsdom.js test/**/*_test.js", + "test-coverage": "cross-env NODE_ENV=test nyc --reporter=lcov mocha --require ./babel-register.js --require ./test/setup-jsdom.js test/**/*_test.js", + "test-debug": "cross-env NODE_ENV=test mocha --require ./babel-register.js --require ./test/setup-jsdom.js --debug-brk --inspect test/Form_test.js" }, "prettierOptions": "--jsx-bracket-same-line --trailing-comma es5 --semi --tab-width 2", "lint-staged": { @@ -61,6 +61,7 @@ "@babel/plugin-transform-runtime": "^7.4.4", "@babel/preset-env": "^7.4.5", "@babel/preset-react": "^7.0.0", + "@babel/preset-typescript": "^7.3.3", "@babel/register": "^7.4.4", "atob": "^2.0.3", "babel-eslint": "^10.0.1", diff --git a/playground/app.js b/playground/app.tsx similarity index 100% rename from playground/app.js rename to playground/app.tsx diff --git a/playground/samples/additionalProperties.js b/playground/samples/additionalProperties.tsx similarity index 100% rename from playground/samples/additionalProperties.js rename to playground/samples/additionalProperties.tsx diff --git a/playground/samples/alternatives.js b/playground/samples/alternatives.tsx similarity index 100% rename from playground/samples/alternatives.js rename to playground/samples/alternatives.tsx diff --git a/playground/samples/anyOf.js b/playground/samples/anyOf.tsx similarity index 100% rename from playground/samples/anyOf.js rename to playground/samples/anyOf.tsx diff --git a/playground/samples/arrays.js b/playground/samples/arrays.tsx similarity index 100% rename from playground/samples/arrays.js rename to playground/samples/arrays.tsx diff --git a/playground/samples/custom.js b/playground/samples/custom.tsx similarity index 100% rename from playground/samples/custom.js rename to playground/samples/custom.tsx diff --git a/playground/samples/customArray.js b/playground/samples/customArray.tsx similarity index 100% rename from playground/samples/customArray.js rename to playground/samples/customArray.tsx diff --git a/playground/samples/customObject.js b/playground/samples/customObject.tsx similarity index 100% rename from playground/samples/customObject.js rename to playground/samples/customObject.tsx diff --git a/playground/samples/date.js b/playground/samples/date.tsx similarity index 100% rename from playground/samples/date.js rename to playground/samples/date.tsx diff --git a/playground/samples/errors.js b/playground/samples/errors.tsx similarity index 100% rename from playground/samples/errors.js rename to playground/samples/errors.tsx diff --git a/playground/samples/files.js b/playground/samples/files.tsx similarity index 100% rename from playground/samples/files.js rename to playground/samples/files.tsx diff --git a/playground/samples/index.js b/playground/samples/index.tsx similarity index 100% rename from playground/samples/index.js rename to playground/samples/index.tsx diff --git a/playground/samples/large.js b/playground/samples/large.tsx similarity index 100% rename from playground/samples/large.js rename to playground/samples/large.tsx diff --git a/playground/samples/nested.js b/playground/samples/nested.tsx similarity index 100% rename from playground/samples/nested.js rename to playground/samples/nested.tsx diff --git a/playground/samples/null.js b/playground/samples/null.tsx similarity index 100% rename from playground/samples/null.js rename to playground/samples/null.tsx diff --git a/playground/samples/nullable.js b/playground/samples/nullable.tsx similarity index 100% rename from playground/samples/nullable.js rename to playground/samples/nullable.tsx diff --git a/playground/samples/numbers.js b/playground/samples/numbers.tsx similarity index 100% rename from playground/samples/numbers.js rename to playground/samples/numbers.tsx diff --git a/playground/samples/oneOf.js b/playground/samples/oneOf.tsx similarity index 100% rename from playground/samples/oneOf.js rename to playground/samples/oneOf.tsx diff --git a/playground/samples/ordering.js b/playground/samples/ordering.tsx similarity index 100% rename from playground/samples/ordering.js rename to playground/samples/ordering.tsx diff --git a/playground/samples/propertyDependencies.js b/playground/samples/propertyDependencies.tsx similarity index 100% rename from playground/samples/propertyDependencies.js rename to playground/samples/propertyDependencies.tsx diff --git a/playground/samples/references.js b/playground/samples/references.tsx similarity index 100% rename from playground/samples/references.js rename to playground/samples/references.tsx diff --git a/playground/samples/schemaDependencies.js b/playground/samples/schemaDependencies.tsx similarity index 100% rename from playground/samples/schemaDependencies.js rename to playground/samples/schemaDependencies.tsx diff --git a/playground/samples/simple.js b/playground/samples/simple.tsx similarity index 100% rename from playground/samples/simple.js rename to playground/samples/simple.tsx diff --git a/playground/samples/single.js b/playground/samples/single.tsx similarity index 100% rename from playground/samples/single.js rename to playground/samples/single.tsx diff --git a/playground/samples/validation.js b/playground/samples/validation.tsx similarity index 100% rename from playground/samples/validation.js rename to playground/samples/validation.tsx diff --git a/playground/samples/widgets.js b/playground/samples/widgets.tsx similarity index 100% rename from playground/samples/widgets.js rename to playground/samples/widgets.tsx diff --git a/src/components/AddButton.js b/src/components/AddButton.tsx similarity index 100% rename from src/components/AddButton.js rename to src/components/AddButton.tsx diff --git a/src/components/ErrorList.js b/src/components/ErrorList.tsx similarity index 100% rename from src/components/ErrorList.js rename to src/components/ErrorList.tsx diff --git a/src/components/Form.js b/src/components/Form.tsx similarity index 98% rename from src/components/Form.js rename to src/components/Form.tsx index cb448d80fd..de7afeab4d 100644 --- a/src/components/Form.js +++ b/src/components/Form.tsx @@ -18,7 +18,12 @@ import { } from "../utils"; import validateFormData, { toErrorList } from "../validate"; -export default class Form extends Component { +interface IFormProps { + [x: string]: any, + formElement: any +} + +export default class Form extends Component { static defaultProps = { uiSchema: {}, noValidate: false, diff --git a/src/components/IconButton.js b/src/components/IconButton.tsx similarity index 100% rename from src/components/IconButton.js rename to src/components/IconButton.tsx diff --git a/src/components/fields/ArrayField.js b/src/components/fields/ArrayField.tsx similarity index 100% rename from src/components/fields/ArrayField.js rename to src/components/fields/ArrayField.tsx diff --git a/src/components/fields/BooleanField.js b/src/components/fields/BooleanField.tsx similarity index 100% rename from src/components/fields/BooleanField.js rename to src/components/fields/BooleanField.tsx diff --git a/src/components/fields/DescriptionField.js b/src/components/fields/DescriptionField.tsx similarity index 100% rename from src/components/fields/DescriptionField.js rename to src/components/fields/DescriptionField.tsx diff --git a/src/components/fields/MultiSchemaField.js b/src/components/fields/MultiSchemaField.tsx similarity index 100% rename from src/components/fields/MultiSchemaField.js rename to src/components/fields/MultiSchemaField.tsx diff --git a/src/components/fields/NullField.js b/src/components/fields/NullField.tsx similarity index 100% rename from src/components/fields/NullField.js rename to src/components/fields/NullField.tsx diff --git a/src/components/fields/NumberField.js b/src/components/fields/NumberField.tsx similarity index 100% rename from src/components/fields/NumberField.js rename to src/components/fields/NumberField.tsx diff --git a/src/components/fields/ObjectField.js b/src/components/fields/ObjectField.tsx similarity index 100% rename from src/components/fields/ObjectField.js rename to src/components/fields/ObjectField.tsx diff --git a/src/components/fields/SchemaField.js b/src/components/fields/SchemaField.tsx similarity index 100% rename from src/components/fields/SchemaField.js rename to src/components/fields/SchemaField.tsx diff --git a/src/components/fields/StringField.js b/src/components/fields/StringField.tsx similarity index 100% rename from src/components/fields/StringField.js rename to src/components/fields/StringField.tsx diff --git a/src/components/fields/TitleField.js b/src/components/fields/TitleField.tsx similarity index 100% rename from src/components/fields/TitleField.js rename to src/components/fields/TitleField.tsx diff --git a/src/components/fields/UnsupportedField.js b/src/components/fields/UnsupportedField.tsx similarity index 100% rename from src/components/fields/UnsupportedField.js rename to src/components/fields/UnsupportedField.tsx diff --git a/src/components/fields/index.js b/src/components/fields/index.tsx similarity index 100% rename from src/components/fields/index.js rename to src/components/fields/index.tsx diff --git a/src/components/widgets/AltDateTimeWidget.js b/src/components/widgets/AltDateTimeWidget.tsx similarity index 100% rename from src/components/widgets/AltDateTimeWidget.js rename to src/components/widgets/AltDateTimeWidget.tsx diff --git a/src/components/widgets/AltDateWidget.js b/src/components/widgets/AltDateWidget.tsx similarity index 100% rename from src/components/widgets/AltDateWidget.js rename to src/components/widgets/AltDateWidget.tsx diff --git a/src/components/widgets/BaseInput.js b/src/components/widgets/BaseInput.tsx similarity index 100% rename from src/components/widgets/BaseInput.js rename to src/components/widgets/BaseInput.tsx diff --git a/src/components/widgets/CheckboxWidget.js b/src/components/widgets/CheckboxWidget.tsx similarity index 100% rename from src/components/widgets/CheckboxWidget.js rename to src/components/widgets/CheckboxWidget.tsx diff --git a/src/components/widgets/CheckboxesWidget.js b/src/components/widgets/CheckboxesWidget.tsx similarity index 100% rename from src/components/widgets/CheckboxesWidget.js rename to src/components/widgets/CheckboxesWidget.tsx diff --git a/src/components/widgets/ColorWidget.js b/src/components/widgets/ColorWidget.tsx similarity index 100% rename from src/components/widgets/ColorWidget.js rename to src/components/widgets/ColorWidget.tsx diff --git a/src/components/widgets/DateTimeWidget.js b/src/components/widgets/DateTimeWidget.tsx similarity index 100% rename from src/components/widgets/DateTimeWidget.js rename to src/components/widgets/DateTimeWidget.tsx diff --git a/src/components/widgets/DateWidget.js b/src/components/widgets/DateWidget.tsx similarity index 100% rename from src/components/widgets/DateWidget.js rename to src/components/widgets/DateWidget.tsx diff --git a/src/components/widgets/EmailWidget.js b/src/components/widgets/EmailWidget.tsx similarity index 100% rename from src/components/widgets/EmailWidget.js rename to src/components/widgets/EmailWidget.tsx diff --git a/src/components/widgets/FileWidget.js b/src/components/widgets/FileWidget.tsx similarity index 100% rename from src/components/widgets/FileWidget.js rename to src/components/widgets/FileWidget.tsx diff --git a/src/components/widgets/HiddenWidget.js b/src/components/widgets/HiddenWidget.tsx similarity index 100% rename from src/components/widgets/HiddenWidget.js rename to src/components/widgets/HiddenWidget.tsx diff --git a/src/components/widgets/PasswordWidget.js b/src/components/widgets/PasswordWidget.tsx similarity index 100% rename from src/components/widgets/PasswordWidget.js rename to src/components/widgets/PasswordWidget.tsx diff --git a/src/components/widgets/RadioWidget.js b/src/components/widgets/RadioWidget.tsx similarity index 100% rename from src/components/widgets/RadioWidget.js rename to src/components/widgets/RadioWidget.tsx diff --git a/src/components/widgets/RangeWidget.js b/src/components/widgets/RangeWidget.tsx similarity index 100% rename from src/components/widgets/RangeWidget.js rename to src/components/widgets/RangeWidget.tsx diff --git a/src/components/widgets/SelectWidget.js b/src/components/widgets/SelectWidget.tsx similarity index 100% rename from src/components/widgets/SelectWidget.js rename to src/components/widgets/SelectWidget.tsx diff --git a/src/components/widgets/TextWidget.js b/src/components/widgets/TextWidget.tsx similarity index 100% rename from src/components/widgets/TextWidget.js rename to src/components/widgets/TextWidget.tsx diff --git a/src/components/widgets/TextareaWidget.js b/src/components/widgets/TextareaWidget.tsx similarity index 100% rename from src/components/widgets/TextareaWidget.js rename to src/components/widgets/TextareaWidget.tsx diff --git a/src/components/widgets/URLWidget.js b/src/components/widgets/URLWidget.tsx similarity index 100% rename from src/components/widgets/URLWidget.js rename to src/components/widgets/URLWidget.tsx diff --git a/src/components/widgets/UpDownWidget.js b/src/components/widgets/UpDownWidget.tsx similarity index 100% rename from src/components/widgets/UpDownWidget.js rename to src/components/widgets/UpDownWidget.tsx diff --git a/src/components/widgets/index.js b/src/components/widgets/index.tsx similarity index 100% rename from src/components/widgets/index.js rename to src/components/widgets/index.tsx diff --git a/src/index.js b/src/index.tsx similarity index 100% rename from src/index.js rename to src/index.tsx diff --git a/src/types.js b/src/types.tsx similarity index 100% rename from src/types.js rename to src/types.tsx diff --git a/src/utils.js b/src/utils.tsx similarity index 100% rename from src/utils.js rename to src/utils.tsx diff --git a/src/validate.js b/src/validate.tsx similarity index 100% rename from src/validate.js rename to src/validate.tsx diff --git a/src/withTheme.js b/src/withTheme.tsx similarity index 100% rename from src/withTheme.js rename to src/withTheme.tsx diff --git a/test/ArrayFieldTemplate_test.js b/test/ArrayFieldTemplate_test.tsx similarity index 100% rename from test/ArrayFieldTemplate_test.js rename to test/ArrayFieldTemplate_test.tsx diff --git a/test/ArrayField_test.js b/test/ArrayField_test.tsx similarity index 100% rename from test/ArrayField_test.js rename to test/ArrayField_test.tsx diff --git a/test/BooleanField_test.js b/test/BooleanField_test.tsx similarity index 100% rename from test/BooleanField_test.js rename to test/BooleanField_test.tsx diff --git a/test/DescriptionField_test.js b/test/DescriptionField_test.tsx similarity index 100% rename from test/DescriptionField_test.js rename to test/DescriptionField_test.tsx diff --git a/test/FieldTemplate_test.js b/test/FieldTemplate_test.tsx similarity index 100% rename from test/FieldTemplate_test.js rename to test/FieldTemplate_test.tsx diff --git a/test/FormContext_test.js b/test/FormContext_test.tsx similarity index 100% rename from test/FormContext_test.js rename to test/FormContext_test.tsx diff --git a/test/Form_test.js b/test/Form_test.tsx similarity index 100% rename from test/Form_test.js rename to test/Form_test.tsx diff --git a/test/NullField_test.js b/test/NullField_test.tsx similarity index 100% rename from test/NullField_test.js rename to test/NullField_test.tsx diff --git a/test/NumberField_test.js b/test/NumberField_test.tsx similarity index 100% rename from test/NumberField_test.js rename to test/NumberField_test.tsx diff --git a/test/ObjectFieldTemplate_test.js b/test/ObjectFieldTemplate_test.tsx similarity index 100% rename from test/ObjectFieldTemplate_test.js rename to test/ObjectFieldTemplate_test.tsx diff --git a/test/ObjectField_test.js b/test/ObjectField_test.tsx similarity index 100% rename from test/ObjectField_test.js rename to test/ObjectField_test.tsx diff --git a/test/SchemaField_test.js b/test/SchemaField_test.tsx similarity index 100% rename from test/SchemaField_test.js rename to test/SchemaField_test.tsx diff --git a/test/StringField_test.js b/test/StringField_test.tsx similarity index 100% rename from test/StringField_test.js rename to test/StringField_test.tsx diff --git a/test/TitleField_test.js b/test/TitleField_test.tsx similarity index 100% rename from test/TitleField_test.js rename to test/TitleField_test.tsx diff --git a/test/anyOf_test.js b/test/anyOf_test.tsx similarity index 100% rename from test/anyOf_test.js rename to test/anyOf_test.tsx diff --git a/test/const_test.js b/test/const_test.tsx similarity index 100% rename from test/const_test.js rename to test/const_test.tsx diff --git a/test/oneOf_test.js b/test/oneOf_test.tsx similarity index 100% rename from test/oneOf_test.js rename to test/oneOf_test.tsx diff --git a/test/performance_test.js b/test/performance_test.tsx similarity index 100% rename from test/performance_test.js rename to test/performance_test.tsx diff --git a/test/setup-jsdom.js b/test/setup-jsdom.tsx similarity index 100% rename from test/setup-jsdom.js rename to test/setup-jsdom.tsx diff --git a/test/test_utils.js b/test/test_utils.tsx similarity index 100% rename from test/test_utils.js rename to test/test_utils.tsx diff --git a/test/uiSchema_test.js b/test/uiSchema_test.tsx similarity index 100% rename from test/uiSchema_test.js rename to test/uiSchema_test.tsx diff --git a/test/utils_test.js b/test/utils_test.tsx similarity index 100% rename from test/utils_test.js rename to test/utils_test.tsx diff --git a/test/validate_test.js b/test/validate_test.tsx similarity index 100% rename from test/validate_test.js rename to test/validate_test.tsx diff --git a/test/withTheme_test.js b/test/withTheme_test.tsx similarity index 100% rename from test/withTheme_test.js rename to test/withTheme_test.tsx diff --git a/webpack.config.dev.js b/webpack.config.dev.js index 853733f93d..ed884ef421 100644 --- a/webpack.config.dev.js +++ b/webpack.config.dev.js @@ -20,10 +20,13 @@ module.exports = { }), new webpack.HotModuleReplacementPlugin(), ], + resolve: { + extensions: [".js", ".jsx", ".ts", ".tsx", ".css"] + }, module: { rules: [ { - test: /\.jsx?$/, + test: /\.(js|jsx|ts|tsx)$/, use: [ "babel-loader", ], diff --git a/webpack.config.dist.js b/webpack.config.dist.js index 37d1f7d218..8786c7b14e 100644 --- a/webpack.config.dist.js +++ b/webpack.config.dist.js @@ -40,10 +40,13 @@ module.exports = { umd: 'react-dom', } }, + resolve: { + extensions: [".js", ".jsx", ".ts", ".tsx", ".css"] + }, module: { rules: [ { - test: /\.js$/, + test: /\.(js|jsx|ts|tsx)$/, use: [ "babel-loader", ], diff --git a/webpack.config.prod.js b/webpack.config.prod.js index 8a4b3eaafe..7753cbbd4a 100644 --- a/webpack.config.prod.js +++ b/webpack.config.prod.js @@ -24,12 +24,12 @@ module.exports = { }) ], resolve: { - extensions: [".js", ".jsx", ".css"] + extensions: [".js", ".jsx", ".ts", ".tsx", ".css"] }, module: { rules: [ { - test: /\.jsx?$/, + test: /\.(js|jsx|ts|tsx)$/, use: [ "babel-loader", ],