I am writing simple CLI scripts for react-native project. But I am not available to import class from typescript to javascript. It throw me following error.
import { TestResult } from './src/lib/modules/test-result';
SyntaxError: Unexpected token {...
package.json
...
"script": {
...
"formular:convert": "node convertor.js"
...
}
...
convertor.js
import {TestResult} from './src/lib/models/test-result';
...
test-result.ts
import uuid from 'uuid/v4';
import { Exception } from '../../errors';
import { OilTypes, RawMaterialTypes } from '../oils';
import { CalculatedResult } from './calculated-result';
import { DeviceSettings } from './device-settings';
import { DeviceStatus } from './device-status';
import { DisplayedResult } from './displayed-result';
import { Measurement } from './measurement';
import { PhoneInfo } from './phone-info';
import { PrimaryCompound } from './primary-compound';
export class TestResult {
constructor(
public id: string = uuid(),
public createdAt: Date = new Date(),
public updatedAt: Date = new Date(),
public errors: Exception[] = [],
public alias: string = '',
public analyteTemp: number = 75,
public flowerWeight: number = 0,
public hidden: boolean = false,
public note: string = '',
public oilType: OilTypes = OilTypes.OliveOil,
public primaryCompound: PrimaryCompound = PrimaryCompound.UNDEFINED,
public units: string = '',
public user: string = '',
public air310Meas: Measurement = new Measurement(),
public air280Meas: Measurement = new Measurement(),
public analyte310Meas: Measurement = new Measurement(),
public analyte280Meas: Measurement = new Measurement(),
public calculated: CalculatedResult = new CalculatedResult(),
public displayed: DisplayedResult = new DisplayedResult(),
public status: DeviceStatus = new DeviceStatus(),
public settings: DeviceSettings = new DeviceSettings(),
public phoneInfo: PhoneInfo = new PhoneInfo(),
public rawMaterialType: RawMaterialTypes = RawMaterialTypes.Isolate,
) {
}
}
tsconfig.json
{
"compilerOptions": {
/* Basic Options */
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
// "lib": [], /* 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": "react", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
/* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
"removeComments": true, /* Do not emit comments to output. */
"noEmit": true, /* Do not emit outputs. */
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
/* 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. */
"types": [ /* Type declaration files to be included in compilation. */
"jest",
"mocha",
"detox"
],
"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'. */
/* Experimental Options */
"experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
"emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
"skipLibCheck": true, /* Skip type checking of declaration files. Requires TypeScript version 2.0 or later. */
"forceConsistentCasingInFileNames": true,/* Disallow inconsistently-cased references to the same file. */
"resolveJsonModule": true /* Include modules imported with '.json' extension. Requires TypeScript version 2.9 or later. */
},
"exclude": [
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js"
]
}
I stuggled to find the solution, and found some answers here and there, but all of them doesn't work.
Thanks for your help.