Skip to content

Commit 0b9dc44

Browse files
committed
hm, i dunno if i like this
1 parent 4d73288 commit 0b9dc44

2 files changed

Lines changed: 140 additions & 0 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: "@glimmer/syntax Prettier Smoke Test"
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- beta
8+
- release
9+
- release*
10+
- lts*
11+
paths:
12+
- 'packages/@glimmer/syntax/**'
13+
- 'packages/@glimmer/interfaces/**'
14+
- 'packages/@glimmer/util/**'
15+
- 'packages/@glimmer/wire-format/**'
16+
- 'packages/@handlebars/parser/**'
17+
pull_request:
18+
paths:
19+
- 'packages/@glimmer/syntax/**'
20+
- 'packages/@glimmer/interfaces/**'
21+
- 'packages/@glimmer/util/**'
22+
- 'packages/@glimmer/wire-format/**'
23+
- 'packages/@handlebars/parser/**'
24+
workflow_dispatch:
25+
26+
permissions:
27+
contents: read
28+
29+
jobs:
30+
prettier-smoke-test:
31+
name: Prettier handlebars smoke test
32+
runs-on: ubuntu-latest
33+
steps:
34+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
35+
36+
- name: Setup Node.js and pnpm
37+
uses: ./.github/actions/setup
38+
39+
- name: Build @glimmer/syntax
40+
working-directory: packages/@glimmer/syntax
41+
run: pnpm exec rollup -c rollup.config.mjs
42+
43+
- name: Pack @glimmer/syntax
44+
working-directory: packages/@glimmer/syntax
45+
run: pnpm pack --ignore-scripts --out ${{ github.workspace }}/glimmer-syntax.tgz
46+
47+
- name: Checkout prettier/prettier
48+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
49+
with:
50+
repository: prettier/prettier
51+
path: prettier-repo
52+
53+
- name: Enable corepack (yarn 4)
54+
run: corepack enable
55+
56+
- name: Install prettier dependencies
57+
working-directory: prettier-repo
58+
run: yarn install
59+
60+
- name: Install local @glimmer/syntax into prettier
61+
working-directory: prettier-repo
62+
run: yarn add "@glimmer/syntax@file:${{ github.workspace }}/glimmer-syntax.tgz"
63+
64+
- name: Run prettier handlebars tests
65+
working-directory: prettier-repo
66+
run: yarn jest tests/format/handlebars
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import { dirname, resolve } from 'node:path';
2+
import { existsSync } from 'node:fs';
3+
import { fileURLToPath } from 'node:url';
4+
import { babel } from '@rollup/plugin-babel';
5+
import {
6+
exposedDependencies,
7+
hiddenDependencies,
8+
externalizePackages,
9+
} from '../../rollup.config.mjs';
10+
11+
// @glimmer/syntax has known internal circular dependencies.
12+
function onLog(level, log, handler) {
13+
if (log.code === 'CIRCULAR_DEPENDENCY') {
14+
return;
15+
}
16+
handler(level, log);
17+
}
18+
19+
// Mirrors the resolveTS() helper in the root rollup config.
20+
function resolveTS() {
21+
return {
22+
name: 'resolve-ts',
23+
async resolveId(source, importer) {
24+
let result = await this.resolve(source, importer);
25+
if (result === null && importer) {
26+
let stem = resolve(dirname(importer), source);
27+
for (let candidate of ['.ts', '/index.ts']) {
28+
let fullPath = stem + candidate;
29+
if (existsSync(fullPath)) {
30+
return fullPath;
31+
}
32+
}
33+
}
34+
return result;
35+
},
36+
};
37+
}
38+
39+
const plugins = [
40+
babel({
41+
babelHelpers: 'bundled',
42+
extensions: ['.js', '.ts'],
43+
configFile: false,
44+
plugins: [['@babel/plugin-transform-typescript', { allowDeclareFields: true }]],
45+
}),
46+
resolveTS(),
47+
externalizePackages({ ...exposedDependencies(), ...hiddenDependencies() }),
48+
];
49+
50+
const sharedOutput = {
51+
hoistTransitiveImports: false,
52+
generatedCode: 'es2015',
53+
};
54+
55+
export default [
56+
{
57+
onLog,
58+
input: './index.ts',
59+
output: { ...sharedOutput, format: 'es', file: './dist/prod/index.js' },
60+
plugins,
61+
},
62+
{
63+
onLog,
64+
input: './index.ts',
65+
output: { ...sharedOutput, format: 'es', file: './dist/dev/index.js' },
66+
plugins,
67+
},
68+
{
69+
onLog,
70+
input: './index.ts',
71+
output: { ...sharedOutput, format: 'cjs', file: './dist/dev/index.cjs' },
72+
plugins,
73+
},
74+
];

0 commit comments

Comments
 (0)