Configure typescript support for jets

This commit is contained in:
Paulo Gustavo Veiga
2021-12-28 17:34:24 -08:00
parent e32836c430
commit 45ad796c3b
10 changed files with 156 additions and 43 deletions

View File

@ -7,8 +7,12 @@
"targets": {
"esmodules": true
}
}
},
"@babel/preset-typescript"
]
],
"plugins": [
"@babel/plugin-proposal-class-properties"
],
"sourceType": "module"
}

View File

@ -1,23 +1,11 @@
// Sync object
/** @type {import('@jest/types').Config.InitialOptions} */
const config = {
testEnvironment: 'jsdom',
verbose: true,
moduleFileExtensions: ['js'],
preset: 'ts-jest',
moduleFileExtensions: ['js', 'ts'],
transform: {
'^.+\\.js?$': 'babel-jest',
},
moduleNameMapper: {
'^@libraries(.*)$': '<rootDir>../../libraries$1',
'^@commands(.*)$': '<rootDir>/src/components/commands$1',
'^@layout(.*)$': '<rootDir>/src/components/layout$1',
'^@libs(.*)$': '<rootDir>/src/components/libraries$1',
'^@model(.*)$': '<rootDir>/src/components/model$1',
'^@persistence(.*)$': '<rootDir>/src/components/persistence$1',
'^@util(.*)$': '<rootDir>/src/components/util$1',
'^@widget(.*)$': '<rootDir>/src/components/widget$1',
'^@components(.*)$': '<rootDir>/src/components$1',
},
};
module.exports = config;

View File

@ -26,7 +26,7 @@
"lint": "eslint src",
"playground": "webpack serve --config webpack.playground.js",
"cy:run": "cypress run",
"test:unit": "jest ./test/unit/*.js",
"test:unit": "jest ./test/unit/*.ts ./test/unit/*.js",
"test:integration": "start-server-and-test playground http-get://localhost:8081 cy:run",
"test": "yarn test:unit && yarn test:integration"
},
@ -41,7 +41,9 @@
"devDependencies": {
"@babel/core": "^7.14.6",
"@babel/preset-env": "^7.14.7",
"@babel/preset-typescript": "^7.16.5",
"@babel/register": "^7.16.0",
"@types/jest": "^27.0.3",
"babel-loader": "^8.2.2",
"clean-webpack-plugin": "^4.0.0-alpha.0",
"compression-webpack-plugin": "^9.2.0",
@ -62,6 +64,8 @@
"mocha": "^9.1.3",
"nodemon": "^2.0.12",
"start-server-and-test": "^1.14.0",
"ts-jest": "^27.1.2",
"ts-loader": "^9.2.6",
"webpack": "^5.44.0",
"webpack-bundle-analyzer": "^4.5.0",
"webpack-cli": "^4.7.2",

View File

@ -0,0 +1,7 @@
import Mindmap from '../model/Mindmap';
interface Exporter {
export(mindplot: Mindmap): string;
}
export default Exporter;

View File

@ -0,0 +1,13 @@
import Exporter from "src/components/export/Exporter";
import Mindmap from "src/components/model/Mindmap";
class TextExporter implements Exporter {
export(mindplot: Mindmap): string {
throw new Error("Method not implemented.");
}
}
export default TextExporter;

View File

@ -0,0 +1,5 @@
import TxtExporter from '../../src/components/export/TxtExporter';
test('adds 1 + 2 to equal 3', () => {
});

View File

@ -0,0 +1,12 @@
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": false,
"module": "es6",
"target": "es6",
"allowJs": true,
"esModuleInterop": true
},
"exclude": ["node_modules"]
}

View File

@ -22,11 +22,17 @@ module.exports = {
module: {
rules: [
{
use: ['babel-loader'],
test: /.(js$)/,
use: ['babel-loader'],
exclude: [
/node_modules/,
],
enforce: 'pre',
},
{
test: /\.(ts)$/,
use: 'ts-loader',
exclude: '/node_modules/',
},
{
test: /\.(png|svg|jpg|jpeg|gif)$/i,
@ -38,7 +44,7 @@ module.exports = {
alias: {
'@libraries': path.resolve(__dirname, '../../libraries/'),
},
extensions: ['.js', '.json'],
extensions: ['.js', '.ts', '.json'],
},
plugins: [new CleanWebpackPlugin()],
};

View File

@ -8,7 +8,7 @@ const prodConfig = {
},
plugins: [
new CompressionPlugin({
test: /\.js(\?.*)?$/i
test: /\.js(\?.*)?$/i,
}),
],
};