Skip to content

Commit

Permalink
Use typescript 3.7 to emit types from js code
Browse files Browse the repository at this point in the history
  • Loading branch information
Bnaya committed Oct 14, 2019
1 parent 46e97e6 commit 9793413
Show file tree
Hide file tree
Showing 73 changed files with 571 additions and 254 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ examples/**/static
examples/**/dist
cypress/videos
cypress/screenshots
lib-composite
.tsbuildinfo
base.tsBuildInfoFile
.tsbuildinfoEsm
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
}
70 changes: 11 additions & 59 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,70 +23,18 @@ build-demo: ## compile the demo example to static js
run-graphql-demo: ## run the demo example
@yarn -s run-graphql-demo

build-ra-core:
@echo "Transpiling ra-core files...";
@cd ./packages/ra-core && yarn -s build
build-composite:
@echo "Build composite project";
@yarn build

build-ra-ui-materialui:
@echo "Transpiling ra-ui-materialui files...";
@cd ./packages/ra-ui-materialui && yarn -s build

build-react-admin:
@echo "Transpiling react-admin files...";
copy-docs-react-admin:
@echo "Copy docs react-admin";
@rm -rf ./packages/react-admin/docs
@cd ./packages/react-admin && yarn -s build
@cd ./packages/react-admin
@mkdir packages/react-admin/docs
@cp docs/*.md packages/react-admin/docs

build-ra-data-fakerest:
@echo "Transpiling ra-data-fakerest files...";
@cd ./packages/ra-data-fakerest && yarn -s build

build-ra-data-json-server:
@echo "Transpiling ra-data-json-server files...";
@cd ./packages/ra-data-json-server && yarn -s build

build-ra-data-simple-rest:
@echo "Transpiling ra-data-simple-rest files...";
@cd ./packages/ra-data-simple-rest && yarn -s build

build-ra-data-graphql:
@echo "Transpiling ra-data-graphql files...";
@cd ./packages/ra-data-graphql && yarn -s build

build-ra-data-graphcool:
@echo "Transpiling ra-data-graphcool files...";
@cd ./packages/ra-data-graphcool && yarn -s build

build-ra-data-graphql-simple:
@echo "Transpiling ra-data-graphql-simple files...";
@cd ./packages/ra-data-graphql-simple && yarn -s build

build-ra-i18n-polyglot:
@echo "Transpiling ra-i18n-polyglot files...";
@cd ./packages/ra-i18n-polyglot && yarn -s build

build-ra-input-rich-text:
@echo "Transpiling ra-input-rich-text files...";
@cd ./packages/ra-input-rich-text && yarn -s build

build-ra-realtime:
@echo "Transpiling ra-realtime files...";
@cd ./packages/ra-realtime && yarn -s build

build-ra-tree-core:
@echo "Transpiling ra-tree-core files...";
@cd ./packages/ra-tree-core && yarn -s build

build-ra-tree-ui-materialui:
@echo "Transpiling ra-tree-ui-materialui files...";
@cd ./packages/ra-tree-ui-materialui && yarn -s build

build-data-generator:
@echo "Transpiling data-generator files...";
@cd ./examples/data-generator && yarn -s build

build: build-ra-core build-ra-ui-materialui build-ra-data-fakerest build-ra-data-json-server build-ra-data-simple-rest build-ra-data-graphql build-ra-data-graphcool build-ra-data-graphql-simple build-ra-i18n-polyglot build-ra-input-rich-text build-ra-realtime build-ra-tree-core build-ra-tree-ui-materialui build-data-generator build-react-admin ## compile ES6 files to JS
build: build-composite copy-docs-react-admin

doc: ## compile doc as html and launch doc web server
@yarn -s doc
Expand Down Expand Up @@ -136,3 +84,7 @@ test-e2e: ## launch end-to-end tests
test-e2e-local: ## launch end-to-end tests for development
@echo 'Starting e2e tests environment. Ensure you started the simple example first (make run-simple)'
@cd cypress && yarn -s start

declarations-test:
@echo 'declarations-test'
@yarn validate-emitted-declarations
14 changes: 14 additions & 0 deletions declarationsSanityTest/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import {} from 'ra-core';
import {} from 'ra-data-fakerest';
import {} from 'ra-data-graphcool';
import {} from 'ra-data-graphql';
import {} from 'ra-data-graphql-simple';
import {} from 'ra-data-json-server';
import {} from 'ra-data-simple-rest';
import {} from 'ra-i18n-polyglot';
import {} from 'ra-input-rich-text';
import {} from 'ra-realtime';
import {} from 'ra-tree-core';
import {} from 'ra-tree-ui-materialui';
import {} from 'ra-ui-materialui';
import {} from 'react-admin';
67 changes: 67 additions & 0 deletions declarationsSanityTest/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{
"compilerOptions": {
/* Basic Options */
// "incremental": true, /* Enable incremental compilation */
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"lib": ["esnext"], /* Specify library files to be included in the compilation. */
// "allowJs": true, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
// "declaration": true, /* Generates corresponding '.d.ts' file. */
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
// "sourceMap": true, /* Generates corresponding '.map' file. */
// "outFile": "./", /* Concatenate and emit output to single file. */
// "outDir": "./", /* Redirect output structure to the directory. */
// "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
// "composite": true, /* Enable project compilation */
// "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
// "removeComments": true, /* Do not emit comments to output. */
"noEmit": true, /* Do not emit outputs. */
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */

/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* Enable strict null checks. */
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
// "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */

/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": true, /* Report errors on unused parameters. */
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */

/* Module Resolution Options */
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
"types": ["react", "prop-types", "@types/prop-types"], /* Type declaration files to be included in compilation. */
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */

/* Source Map Options */
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */

/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */

/* Advanced Options */
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
},
"include": ["index.ts"]
}
3 changes: 3 additions & 0 deletions examples/data-generator/tsconfig.esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "./tsconfig"
}
2 changes: 1 addition & 1 deletion examples/data-generator/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../tsconfig.json",
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "lib",
"rootDir": "src"
Expand Down
15 changes: 11 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"private": true,
"name": "react-admin-lerna",
"scripts": {
"build": "lerna run build",
"build": "yarn build-with-composite",
"build-demo": "cd examples/demo && cross-env REACT_APP_DATA_PROVIDER=rest yarn -s build",
"test-unit": "cross-env NODE_ENV=test cross-env BABEL_ENV=cjs NODE_ICU_DATA=node_modules/full-icu jest",
"test-unit-ci": "cross-env NODE_ENV=test cross-env BABEL_ENV=cjs NODE_ICU_DATA=node_modules/full-icu jest --runInBand",
Expand All @@ -15,7 +15,13 @@
"run-simple": "cd examples/simple && yarn -s start",
"run-tutorial": "yarn run -s build && cd examples/tutorial && yarn -s start",
"run-demo": "cd examples/demo && cross-env REACT_APP_DATA_PROVIDER=rest yarn -s start",
"run-graphql-demo": "cd examples/demo && cross-env REACT_APP_DATA_PROVIDER=graphql yarn -s start"
"run-graphql-demo": "cd examples/demo && cross-env REACT_APP_DATA_PROVIDER=graphql yarn -s start",
"build-with-composite": "yarn tsc --build tsconfig.build-all.all.json",
"watch-with-composite": "yarn tsc --build tsconfig.build-all.all.json --incremental --watch",
"cleanup": "lerna exec --parallel \"rm -fr lib && rm -fr esm\"",
"validate-emitted-declarations": "tsc -p declarationsSanityTest/tsconfig.json",
"validate-project-refs": "yarn cleanup && yarn lerna exec --no-bail --concurrency 1 \"cd ../../ yarn cleanup && cd - && tsc --build tsconfig.json\"",
"validate-project-refs-esm": "yarn cleanup && yarn lerna exec --no-bail --concurrency 1 \"cd ../../ yarn cleanup && cd - && tsc --build tsconfig.esm.json\""
},
"jest": {
"setupFilesAfterEnv": [
Expand All @@ -33,7 +39,8 @@
],
"globals": {
"ts-jest": {
"isolatedModules": true
"isolatedModules": true,
"tsConfig": "tsconfig.base.json"
}
}
},
Expand Down Expand Up @@ -76,6 +83,6 @@
"cypress"
],
"dependencies": {
"typescript": "^3.5.3"
"typescript": "^3.7.0-dev.20191011"
}
}
3 changes: 1 addition & 2 deletions packages/ra-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@
"esm",
"src"
],
"main": "lib/index",
"main": "lib/index.js",
"module": "esm/index.js",
"types": "esm/index.d.ts",
"sideEffects": false,
"authors": [
"François Zaninotto",
Expand Down
11 changes: 11 additions & 0 deletions packages/ra-core/tsconfig.esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"extends": "../../tsconfig.base.esm.json",
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"tsBuildInfoFile": "./esm/.tsbuildinfo"
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"],
"references": []
}
12 changes: 6 additions & 6 deletions packages/ra-core/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"extends": "../../tsconfig.json",
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "lib",
"rootDir": "src",
"declaration": true,
"allowJs": false
"outDir": "./lib",
"rootDir": "./src",
"tsBuildInfoFile": "./lib/.tsbuildinfo"
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"]
"include": ["src"],
"references": []
}
13 changes: 13 additions & 0 deletions packages/ra-data-fakerest/tsconfig.esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"extends": "../../tsconfig.base.esm.json",
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"tsBuildInfoFile": "./esm/.tsbuildinfo"
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"],
"references": [
{ "path": "../ra-core/" },
]
}
14 changes: 8 additions & 6 deletions packages/ra-data-fakerest/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
{
"extends": "../../tsconfig.json",
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "lib",
"rootDir": "src",
"declaration": true,
"allowJs": false
"outDir": "./lib",
"rootDir": "./src",
"tsBuildInfoFile": "./lib/.tsbuildinfo"
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"]
"include": ["src"],
"references": [
{ "path": "../ra-core/tsconfig.json" },
]
}
14 changes: 14 additions & 0 deletions packages/ra-data-graphcool/tsconfig.esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": "../../tsconfig.base.esm.json",
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"tsBuildInfoFile": "./esm/.tsbuildinfo",
"checkJs": false
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"],
"references": [
{ "path": "../ra-core/" },
]
}
13 changes: 9 additions & 4 deletions packages/ra-data-graphcool/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
{
"extends": "../../tsconfig.json",
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "lib",
"rootDir": "src"
"outDir": "./lib",
"rootDir": "./src",
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"checkJs": false
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"]
"include": ["src"],
"references": [
{ "path": "../ra-core/tsconfig.json" },
]
}
14 changes: 14 additions & 0 deletions packages/ra-data-graphql-simple/tsconfig.esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": "../../tsconfig.base.esm.json",
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"tsBuildInfoFile": "./esm/.tsbuildinfo",
"checkJs": false
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"],
"references": [
{ "path": "../ra-core/" },
]
}
13 changes: 9 additions & 4 deletions packages/ra-data-graphql-simple/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
{
"extends": "../../tsconfig.json",
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "lib",
"rootDir": "src"
"outDir": "./lib",
"rootDir": "./src",
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"checkJs": false
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"]
"include": ["src"],
"references": [
{ "path": "../ra-core/tsconfig.json" },
]
}
14 changes: 14 additions & 0 deletions packages/ra-data-graphql/tsconfig.esm.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": "../../tsconfig.base.esm.json",
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"tsBuildInfoFile": "./esm/.tsbuildinfo",
"checkJs": false
},
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js"],
"include": ["src"],
"references": [
{ "path": "../ra-core/" },
]
}
Loading

0 comments on commit 9793413

Please sign in to comment.