{
  "compilerOptions": {
    /* Basic Options */
    "target": "ESNext"
    /* 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": [
      "ESNEXT"
    ],
    "allowJs": true
    /* Allow javascript files to be compiled. */,
    "jsx": "react-native"
    /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */,
    "noEmit": true
    /* Do not emit outputs. */,
    "isolatedModules": true
    /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "useDefineForClassFields": true,
    /* Strict Type-Checking Options */
    "strict": true
    /* Enable all strict type-checking options. */,
    "types": [
      "reflect-metadata"
    ],
    /* 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": {
      // ui
      "assets/*": [
        "src/ui/assets/*"
      ],
      "icons/*": [
        "src/ui/assets/icons/*"
      ],
      "atoms/*": [
        "src/ui/components/atoms/*"
      ],
      "molecules/*": [
        "src/ui/components/molecules/*"
      ],
      "organisms/*": [
        "src/ui/components/organisms/*"
      ],
      "templates/*": [
        "src/ui/components/templates/*"
      ],
      "screens/*": [
        "src/ui/screens/*"
      ],
      "navigations/*": [
        "src/ui/navigations/*"
      ],
      // instruments
      "hooks/*": [
        "src/instruments/hooks/*"
      ],
      "repositories/*": [
        "src/instruments/repositories/*"
      ],
      "services/*": [
        "src/instruments/services/*"
      ],
      "types/*": [
        "src/instruments/types/*"
      ],
      "base/*": [
        "src/instruments/base/*"
      ],
      // Business Logic
      "blms/*": [
        "src/blms/*"
      ],
      // Configs
      "configs/*": [
        "src/configs/*"
      ]
    },
    "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'. */,
    "skipLibCheck": true
    /* Skip type checking of declaration files. */,
    "resolveJsonModule": true
    /* Allows importing modules with a ‘.json’ extension, which is a common practice in node projects. */
  },
  "exclude": [
    "node_modules",
    "babel.config.js",
    "metro.config.js",
    "jest.config.js",
    "commands",
    "commands_old"
  ],
  "typeRoots": [
    "./src/instruments/types"
  ]
}
