From 599eefde558aff1f42c15180ad0f5cbc80f76f8a Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Oct 2025 17:11:57 -0400 Subject: [PATCH 1/2] Add JS app configured with TypeScript and tsconfig --- .../js-template-imports-app/.gitignore | 1 + .../js-template-imports-app/package.json | 36 +++++++++++++++++++ .../js-template-imports-app/src/Greeting.gjs | 17 +++++++++ .../src/NoTemplate.gjs | 6 ++++ .../js-template-imports-app/src/augmented.gjs | 6 ++++ .../src/empty-fixture.gjs | 6 ++++ .../src/empty-fixture2.gjs | 1 + .../js-template-imports-app/src/index.gjs | 5 +++ .../js-template-imports-app/src/other.js | 1 + .../js-template-imports-app/tsconfig.json | 11 ++++++ .../js-template-imports-app/types/index.d.ts | 15 ++++++++ 11 files changed, 105 insertions(+) create mode 100644 test-packages/js-template-imports-app/.gitignore create mode 100644 test-packages/js-template-imports-app/package.json create mode 100644 test-packages/js-template-imports-app/src/Greeting.gjs create mode 100644 test-packages/js-template-imports-app/src/NoTemplate.gjs create mode 100644 test-packages/js-template-imports-app/src/augmented.gjs create mode 100644 test-packages/js-template-imports-app/src/empty-fixture.gjs create mode 100644 test-packages/js-template-imports-app/src/empty-fixture2.gjs create mode 100644 test-packages/js-template-imports-app/src/index.gjs create mode 100644 test-packages/js-template-imports-app/src/other.js create mode 100644 test-packages/js-template-imports-app/tsconfig.json create mode 100644 test-packages/js-template-imports-app/types/index.d.ts diff --git a/test-packages/js-template-imports-app/.gitignore b/test-packages/js-template-imports-app/.gitignore new file mode 100644 index 000000000..cc1b7f164 --- /dev/null +++ b/test-packages/js-template-imports-app/.gitignore @@ -0,0 +1 @@ +tsconfig.tsbuildinfo diff --git a/test-packages/js-template-imports-app/package.json b/test-packages/js-template-imports-app/package.json new file mode 100644 index 000000000..52b52f9d8 --- /dev/null +++ b/test-packages/js-template-imports-app/package.json @@ -0,0 +1,36 @@ +{ + "name": "js-template-imports-app", + "version": "0.0.0", + "private": true, + "license": "MIT", + "scripts": { + "test": "echo 'no standalone test within this project'", + "test:typecheck": "ember-tsc", + "test:tsc": "echo 'no standalone tsc within this project'" + }, + "dependenciesMeta": { + "@glint/template": { + "injected": true + }, + "@glint/ember-tsc": { + "injected": true + }, + "@glint/tsserver-plugin": { + "injected": true + } + }, + "devDependencies": { + "@glimmer/component": "^2.0.0", + "@glint/template": "workspace:*", + "@glint/ember-tsc": "workspace:*", + "@types/rsvp": "^4.0.9", + "@glint/tsserver-plugin": "workspace:*", + "@tsconfig/ember": "^3.0.9", + "ember-modifier": "^4.0.0", + "ember-source": "^6.2.0", + "typescript": ">=5.6.0" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/test-packages/js-template-imports-app/src/Greeting.gjs b/test-packages/js-template-imports-app/src/Greeting.gjs new file mode 100644 index 000000000..305b7bb69 --- /dev/null +++ b/test-packages/js-template-imports-app/src/Greeting.gjs @@ -0,0 +1,17 @@ +import Component from '@glimmer/component'; + +export default class Greeting extends Component { + message = 'Hello'; + + +} + +function repeat(value, times) { + return Array(times).fill(value).join(''); +} + +const Bang = diff --git a/test-packages/js-template-imports-app/src/NoTemplate.gjs b/test-packages/js-template-imports-app/src/NoTemplate.gjs new file mode 100644 index 000000000..2d756d874 --- /dev/null +++ b/test-packages/js-template-imports-app/src/NoTemplate.gjs @@ -0,0 +1,6 @@ +/*NoTemplate*/ +import { Other } from './other'; + +export class Foo {} + +export const O = Other; diff --git a/test-packages/js-template-imports-app/src/augmented.gjs b/test-packages/js-template-imports-app/src/augmented.gjs new file mode 100644 index 000000000..2c0714373 --- /dev/null +++ b/test-packages/js-template-imports-app/src/augmented.gjs @@ -0,0 +1,6 @@ + diff --git a/test-packages/js-template-imports-app/src/empty-fixture.gjs b/test-packages/js-template-imports-app/src/empty-fixture.gjs new file mode 100644 index 000000000..b36cfee1f --- /dev/null +++ b/test-packages/js-template-imports-app/src/empty-fixture.gjs @@ -0,0 +1,6 @@ +// This file is intentionally empty. +// It exists as a hack to get around some issues when testing our TS Plugin +// within tsserver harness where, even though many of our tests are only +// updating tsserver's in-memory content for a file, tsserver still needs +// the file to exist in the file system in order for things like References +// and other language features to work properly. diff --git a/test-packages/js-template-imports-app/src/empty-fixture2.gjs b/test-packages/js-template-imports-app/src/empty-fixture2.gjs new file mode 100644 index 000000000..83245e5eb --- /dev/null +++ b/test-packages/js-template-imports-app/src/empty-fixture2.gjs @@ -0,0 +1 @@ +// See ./empty-fixture.ts for why this exists. diff --git a/test-packages/js-template-imports-app/src/index.gjs b/test-packages/js-template-imports-app/src/index.gjs new file mode 100644 index 000000000..f479dee5f --- /dev/null +++ b/test-packages/js-template-imports-app/src/index.gjs @@ -0,0 +1,5 @@ +import Greeting from './Greeting'; + +export default diff --git a/test-packages/js-template-imports-app/src/other.js b/test-packages/js-template-imports-app/src/other.js new file mode 100644 index 000000000..4bf93fdbb --- /dev/null +++ b/test-packages/js-template-imports-app/src/other.js @@ -0,0 +1 @@ +export class Other {} diff --git a/test-packages/js-template-imports-app/tsconfig.json b/test-packages/js-template-imports-app/tsconfig.json new file mode 100644 index 000000000..860614a02 --- /dev/null +++ b/test-packages/js-template-imports-app/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@tsconfig/ember", + "compilerOptions": { + "baseUrl": ".", + "types": ["ember-source/types"] + }, + "include": ["src", "types"], + "glint": { + "additionalGlobals": ["t"] + } +} diff --git a/test-packages/js-template-imports-app/types/index.d.ts b/test-packages/js-template-imports-app/types/index.d.ts new file mode 100644 index 000000000..1ce64102a --- /dev/null +++ b/test-packages/js-template-imports-app/types/index.d.ts @@ -0,0 +1,15 @@ +import '@glint/ember-tsc/types'; + +import { HelperLike } from '@glint/template'; + +declare module '@glint/ember-tsc/globals' { + export default interface Globals { + t: HelperLike<{ + Args: { + Positional: string[]; + Named: Record; + }; + Return: string; + }>; + } +} From 78d424474ca4b7bfee2f8fe81ac471366769d2e1 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Oct 2025 17:17:51 -0400 Subject: [PATCH 2/2] Lockfile --- pnpm-lock.yaml | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be3e596a4..d0c4848e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -321,6 +321,43 @@ importers: specifier: ^0.5.0 version: 0.5.5 + test-packages/js-template-imports-app: + dependenciesMeta: + '@glint/ember-tsc': + injected: true + '@glint/template': + injected: true + '@glint/tsserver-plugin': + injected: true + devDependencies: + '@glimmer/component': + specifier: ^2.0.0 + version: 2.0.0 + '@glint/ember-tsc': + specifier: workspace:* + version: file:packages/core(typescript@5.9.3) + '@glint/template': + specifier: workspace:* + version: file:packages/template + '@glint/tsserver-plugin': + specifier: workspace:* + version: file:packages/tsserver-plugin + '@tsconfig/ember': + specifier: ^3.0.9 + version: 3.0.9 + '@types/rsvp': + specifier: ^4.0.9 + version: 4.0.9 + ember-modifier: + specifier: ^4.0.0 + version: 4.2.0(a66e9d3f366a4b96fc9f9ab816a4c768) + ember-source: + specifier: ^6.2.0 + version: 6.7.0(@glimmer/component@2.0.0) + typescript: + specifier: '>=5.6.0' + version: 5.9.3 + test-packages/package-test-core: devDependencies: '@glimmer/component': @@ -10892,6 +10929,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@glint/ember-tsc@file:packages/core(typescript@5.9.3)': + dependencies: + '@glimmer/syntax': 0.95.0 + '@glint/template': link:packages/template + '@volar/kit': 2.4.23(typescript@5.9.3) + '@volar/language-core': 2.4.23 + '@volar/language-server': 2.4.23 + '@volar/language-service': 2.4.23 + '@volar/source-map': 2.4.23 + '@volar/test-utils': 2.4.23 + '@volar/typescript': 2.4.23 + computeds: 0.0.1 + content-tag: 3.1.2 + escape-string-regexp: 4.0.0 + semver: 7.7.1 + silent-error: 1.1.1 + typescript: 5.9.3 + uuid: 8.3.2 + volar-service-html: 0.0.64(@volar/language-service@2.4.23) + volar-service-typescript: 0.0.65(@volar/language-service@2.4.23) + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + '@glint/template@file:packages/template': {} '@glint/tsserver-plugin@file:packages/tsserver-plugin': @@ -11714,6 +11778,15 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 + '@volar/kit@2.4.23(typescript@5.9.3)': + dependencies: + '@volar/language-service': 2.4.23 + '@volar/typescript': 2.4.23 + typesafe-path: 0.2.2 + typescript: 5.9.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + '@volar/language-core@2.4.23': dependencies: '@volar/source-map': 2.4.23 @@ -13503,6 +13576,18 @@ snapshots: - '@babel/core' - supports-color + ember-modifier@4.2.0(a66e9d3f366a4b96fc9f9ab816a4c768): + dependencies: + '@embroider/addon-shim': 1.9.0 + decorator-transforms: 2.3.0 + ember-cli-normalize-entity-name: 1.0.0 + ember-cli-string-utils: 1.1.0 + optionalDependencies: + ember-source: 6.7.0(@glimmer/component@2.0.0) + transitivePeerDependencies: + - '@babel/core' + - supports-color + ember-modifier@4.2.0(bf9a32874a386a74ea54ee4d49caf0ab): dependencies: '@embroider/addon-shim': 1.9.0