Skip to content

Latest commit

Β 

History

History
662 lines (492 loc) Β· 22.9 KB

test-result.5.0.0-dev.20230103.md

File metadata and controls

662 lines (492 loc) Β· 22.9 KB

TypeScript Module System Demo

TypeScript: 5.0.0-dev.20230103

Legends

  • 🟒: both compile and runtime are working correctly
  • 🟑: for compile, it means there is an error, but can be suppressed (e.g. with skipLibCheck)
    for runtime, it means the compile fails, but runtime is working
  • πŸ”΄: compile and/or runtime fails
  • ❌: compile success, but runtime fails. Potentially a TypeScript bug.
  • βž–: invalid usage in this test configuration

Import Syntax:

  • default as: import { default as m } from 'm'
  • default: import m from 'm'
  • * as: import * as m from 'm'
  • named: import { something } from 'm'

Test Results

module Package Type import: default as import: default import: * as import: { named }
commonjs assert πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
assertron πŸ’» compile 🟑 TS1479-t 🟑 TS1479-t 🟑 TS1479-t βž–
πŸƒ runtime πŸ”΄ type πŸ”΄ type πŸ”΄ type βž–
cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime ❌ type-not-fn ❌ type-not-fn πŸ”΄ type-not-fn-1 βž–
color-map πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
es-cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime ❌ type-not-fn-2 ❌ type-not-fn-2 πŸ”΄ type-not-fn-1 βž–
esm πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime ❌ Error ❌ Error-1 ❌ Error-2 βž–
esm-cjs πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime ❌ Error-3 ❌ Error-4 ❌ Error-5 βž–
named-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime ❌ type-1 ❌ type-1 🟒 🟒
named-es-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime ❌ type-1 ❌ type-1 🟒 🟒
named-esm πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
named-esm-cjs πŸ’» compile πŸ”΄ TS2305 πŸ”΄ TS1192 🟒 🟒
πŸƒ runtime πŸ”΄ type-1 πŸ”΄ type-1 🟒 🟒
param-case πŸ’» compile 🟒 🟒 πŸ”΄ TS2497-e βž–
πŸƒ runtime 🟒 🟒 πŸ”΄ type-not-fn-3 βž–
es2015 assert πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
assertron πŸ’» compile 🟑 TS1479-t 🟑 TS1479-t 🟑 TS1479-t βž–
πŸƒ runtime 🟑 🟑 🟑 βž–
cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
color-map πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
es-cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
esm πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
esm-cjs πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
named-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-es-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-esm πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
named-esm-cjs πŸ’» compile πŸ”΄ TS2305 πŸ”΄ TS1192 🟒 🟒
πŸƒ runtime πŸ”΄ syntax πŸ”΄ syntax 🟒 🟒
param-case πŸ’» compile 🟒 🟒 πŸ”΄ TS2497-a βž–
πŸƒ runtime 🟒 🟒 πŸ”΄ type-not-fn-3 βž–
es2020 assert πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
assertron πŸ’» compile 🟑 TS1479-t 🟑 TS1479-t 🟑 TS1479-t βž–
πŸƒ runtime 🟑 🟑 🟑 βž–
cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
color-map πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
es-cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
esm πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
esm-cjs πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
named-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-es-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-esm πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
named-esm-cjs πŸ’» compile πŸ”΄ TS2305 πŸ”΄ TS1192 🟒 🟒
πŸƒ runtime πŸ”΄ syntax πŸ”΄ syntax 🟒 🟒
param-case πŸ’» compile 🟒 🟒 πŸ”΄ TS2497-a βž–
πŸƒ runtime 🟒 🟒 πŸ”΄ type-not-fn-3 βž–
es2022 assert πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
assertron πŸ’» compile 🟑 TS1479-t 🟑 TS1479-t 🟑 TS1479-t βž–
πŸƒ runtime 🟑 🟑 🟑 βž–
cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
color-map πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
es-cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
esm πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
esm-cjs πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
named-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-es-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-esm πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
named-esm-cjs πŸ’» compile πŸ”΄ TS2305 πŸ”΄ TS1192 🟒 🟒
πŸƒ runtime πŸ”΄ syntax πŸ”΄ syntax 🟒 🟒
param-case πŸ’» compile 🟒 🟒 πŸ”΄ TS2497-a βž–
πŸƒ runtime 🟒 🟒 πŸ”΄ type-not-fn-3 βž–
esnext assert πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
assertron πŸ’» compile 🟑 TS1479-t 🟑 TS1479-t 🟑 TS1479-t βž–
πŸƒ runtime 🟑 🟑 🟑 βž–
cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
color-map πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
es-cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
esm πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
esm-cjs πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
named-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-es-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-esm πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
named-esm-cjs πŸ’» compile πŸ”΄ TS2305 πŸ”΄ TS1192 🟒 🟒
πŸƒ runtime πŸ”΄ syntax πŸ”΄ syntax 🟒 🟒
param-case πŸ’» compile 🟒 🟒 πŸ”΄ TS2497-a βž–
πŸƒ runtime 🟒 🟒 πŸ”΄ type-not-fn-3 βž–
node16 assert πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
assertron πŸ’» compile 🟑 TS1479-t 🟑 TS1479-t 🟑 TS1479-t βž–
πŸƒ runtime 🟑 🟑 🟑 βž–
cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
color-map πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
es-cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
esm πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
esm-cjs πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
named-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-es-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-esm πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
named-esm-cjs πŸ’» compile πŸ”΄ TS2305 πŸ”΄ TS1192 🟒 🟒
πŸƒ runtime πŸ”΄ syntax πŸ”΄ syntax 🟒 🟒
param-case πŸ’» compile 🟒 🟒 πŸ”΄ TS2497-a βž–
πŸƒ runtime 🟒 🟒 πŸ”΄ type-not-fn-3 βž–
nodenext assert πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
assertron πŸ’» compile 🟑 TS1479-t 🟑 TS1479-t 🟑 TS1479-t βž–
πŸƒ runtime 🟑 🟑 🟑 βž–
cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
color-map πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
es-cjs πŸ’» compile 🟒 🟒 πŸ”΄ TS2554 βž–
πŸƒ runtime 🟒 🟒 🟑 βž–
esm πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
esm-cjs πŸ’» compile 🟒 🟒 🟒 βž–
πŸƒ runtime 🟒 🟒 🟒 βž–
named-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-es-cjs πŸ’» compile 🟒 🟒 🟒 🟒
πŸƒ runtime 🟒 🟒 🟒 🟒
named-esm πŸ’» compile βž– βž– βž– βž–
πŸƒ runtime βž– βž– βž– βž–
named-esm-cjs πŸ’» compile πŸ”΄ TS2305 πŸ”΄ TS1192 🟒 🟒
πŸƒ runtime πŸ”΄ syntax πŸ”΄ syntax 🟒 🟒
param-case πŸ’» compile 🟒 🟒 πŸ”΄ TS2497-a βž–
πŸƒ runtime 🟒 🟒 πŸ”΄ type-not-fn-3 βž–
  • TS1192: Module '"/home/homa/code/cyberuni/ts-esm-interop/packages/named-esm-cjs/node16/index"' has no default export.
  • TS1479-t: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("tersify")' call instead.
  • TS2305: Module '"named-esm-cjs"' has no exported member 'default'.
  • TS2497-a: This module can only be referenced with ECMAScript imports/exports by turning on the 'allowSyntheticDefaultImports' flag and referencing its default export.
  • TS2497-e: This module can only be referenced with ECMAScript imports/exports by turning on the 'esModuleInterop' flag and referencing its default export.
  • TS2554: Expected 0 arguments, but got 1.
  • Error: `Command failed: node esm.default-as.all.js node:internal/modules/cjs/loader:535 throw e; ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm.default-as.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }

Node.js v18.12.1 `

  • Error-1: `Command failed: node esm.default.all.js node:internal/modules/cjs/loader:535 throw e; ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm.default.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }

Node.js v18.12.1 `

  • Error-2: `Command failed: node esm.star.all.js node:internal/modules/cjs/loader:535 throw e; ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm.star.all.js:26:24) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }

Node.js v18.12.1 `

  • Error-3: `Command failed: node esm-cjs.default-as.all.js node:internal/modules/cjs/loader:535 throw e; ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm-cjs.default-as.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }

Node.js v18.12.1 `

  • Error-4: `Command failed: node esm-cjs.default.all.js node:internal/modules/cjs/loader:535 throw e; ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm-cjs.default.all.js:6:35) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }

Node.js v18.12.1 `

  • Error-5: `Command failed: node esm-cjs.star.all.js node:internal/modules/cjs/loader:535 throw e; ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/node_modules/esm-cjs/package.json at new NodeError (node:internal/errors:393:5) at throwExportsNotFound (node:internal/modules/esm/resolve:358:9) at packageExportsResolve (node:internal/modules/esm/resolve:612:7) at resolveExports (node:internal/modules/cjs/loader:529:36) at Module._findPath (node:internal/modules/cjs/loader:569:31) at Module._resolveFilename (node:internal/modules/cjs/loader:981:27) at Module._load (node:internal/modules/cjs/loader:841:27) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object. (/home/homa/code/cyberuni/ts-esm-interop/tests/node16-es/commonjs/esm-cjs.star.all.js:26:24) { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' }

Node.js v18.12.1 `

  • syntax: The requested module 'named-esm-cjs' does not provide an export named 'default'
  • type: Cannot read properties of undefined (reading 'truthy')
  • type-1: Cannot read properties of undefined (reading 'greet')
  • type-not-fn: cjs_1.default.default is not a function
  • type-not-fn-1: m.default.default is not a function
  • type-not-fn-2: es_cjs_1.default.default is not a function
  • type-not-fn-3: paramCase is not a function

Test Subjects

Depends on the test configuration, the way to consume a module are different.

In this section we describe each module and how they are consumed within this configuration.

assert.default-as.all.ts:

import { default as assert } from 'assert'

assert(true)

assert.default.all.ts:

import assert from 'assert'

assert(true)

assert.star.all.ts:

import * as assert from 'assert'

assert.default(true)

assertron.default-as.all.ts:

import { default as assertron } from 'assertron'

assertron.default.truthy(true)

assertron.default.all.ts:

import assertron from 'assertron'

assertron.default.truthy(true)

assertron.star.all.ts:

import * as assertron from 'assertron'

assertron.default.default.truthy(true)

cjs.default-as.all.ts:

import { default as m } from 'cjs'

m.default()

cjs.default.all.ts:

import m from 'cjs'

m.default()

cjs.star.all.ts:

import * as m from 'cjs'

m.default.default(1)

es-cjs.default-as.all.ts:

import { default as m } from 'es-cjs'

m.default()

es-cjs.default.all.ts:

import m from 'es-cjs'

m.default()

es-cjs.star.all.ts:

import * as m from 'es-cjs'

m.default.default(1)

esm.default-as.all.ts:

import { default as m } from 'esm-cjs'

m()

esm.default.all.ts:

import m from 'esm-cjs'

m()

esm.star.all.ts:

import * as m from 'esm-cjs'

m.default()

esm-cjs.default-as.all.ts:

import { default as m } from 'esm-cjs'

m()

esm-cjs.default.all.ts:

import m from 'esm-cjs'

m()

esm-cjs.star.all.ts:

import * as m from 'esm-cjs'

m.default()

named-cjs.default-as.all.ts:

import { default as m } from 'named-cjs'

m.greet()

named-cjs.default.all.ts:

import m from 'named-cjs'

m.greet()

named-cjs.named.all.ts:

import { greet } from 'named-cjs'

greet()

named-cjs.star.all.ts:

import * as m from 'named-cjs'

m.greet()

named-es-cjs.default-as.all.ts:

import { default as m } from 'named-es-cjs'

m.greet()

named-es-cjs.default.all.ts:

import m from 'named-es-cjs'

m.greet()

named-es-cjs.named.all.ts:

import { greet } from 'named-es-cjs'

greet()

named-es-cjs.star.all.ts:

import * as m from 'named-es-cjs'

m.greet()

named-esm-cjs.default-as.all.ts:

import { default as m } from 'named-esm-cjs'

m.greet()

named-esm-cjs.default.all.ts:

import m from 'named-esm-cjs'

m.greet()

named-esm-cjs.named.all.ts:

import { greet } from 'named-esm-cjs'

greet()

named-esm-cjs.star.all.ts:

import * as m from 'named-esm-cjs'

m.greet()

param-case.default-as.all.ts:

import { default as paramCase } from 'param-case'

paramCase('hello world')

param-case.default.all.ts:

import paramCase from 'param-case'

paramCase('hello world')

param-case.star.all.ts:

import * as paramCase from 'param-case'

paramCase('hello world')