Repository: harttle/liquidjs
Pull request #731 (2024-08-15 14:46:08)

chore: check node@14 on pipeline, #728


Patch:
diff --git a/.eslintrc.json b/.eslintrc.json
index 66b32c6ce..1438fa772 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -23,6 +23,7 @@
     "prefer-const": 2,
     "no-unused-vars": "off",
     "indent": "off",
+    "no-mixed-operators": "off",
     "no-dupe-class-members": "off",
     "no-useless-constructor": "off",
     "@typescript-eslint/indent": ["error", 2],
diff --git a/rollup.config.mjs b/rollup.config.mjs
index 87b6edbce..7c32fa495 100644
--- a/rollup.config.mjs
+++ b/rollup.config.mjs
@@ -50,6 +50,10 @@ const browserStream = {
   delimiters: ['', ''],
   './streamed-emitter': '../build/streamed-emitter-browser'
 }
+const browserPerf = {
+  include: ['./src/context/context.ts', './src/render/render.ts'],
+  'node:perf_hooks': '../build/perf_hooks-browser'
+}
 const esmRequire = {
   include: './src/fs/node.ts',
   delimiters: ['', ''],
@@ -95,6 +99,7 @@ const browserEsm = {
     versionInjection,
     replace(browserFS),
     replace(browserStream),
+    replace(browserPerf),
     typescript(tsconfig('es6'))
   ],
   treeshake,
@@ -113,6 +118,7 @@ const browserUmd = {
     versionInjection,
     replace(browserFS),
     replace(browserStream),
+    replace(browserPerf),
     typescript(tsconfig('es5'))
   ],
   treeshake,
@@ -131,6 +137,7 @@ const browserMin = {
     versionInjection,
     replace(browserFS),
     replace(browserStream),
+    replace(browserPerf),
     typescript(tsconfig('es5')),
     uglify()
   ],
diff --git a/src/build/perf_hooks-browser.ts b/src/build/perf_hooks-browser.ts
new file mode 100644
index 000000000..d68935436
--- /dev/null
+++ b/src/build/perf_hooks-browser.ts
@@ -0,0 +1,5 @@
+const polyfill = {
+  now: () => Date.now()
+}
+
+export const performance = typeof window === 'object' && window.performance || polyfill
diff --git a/src/parser/parser.spec.ts b/src/parser/parser.spec.ts
new file mode 100644
index 000000000..ca436338f
--- /dev/null
+++ b/src/parser/parser.spec.ts
@@ -0,0 +1,19 @@
+import { Parser } from './parser'
+import { Liquid, TokenKind } from '..'
+
+describe('Parser', () => {
+  it('should coerce input to string', () => {
+    const parser = new Parser(new Liquid())
+    const templates = parser.parse({} as any)
+    expect(templates.length).toEqual(1)
+    expect(templates[0]).toMatchObject({
+      str: '[object Object]',
+      token: {
+        kind: TokenKind.HTML,
+        input: '[object Object]',
+        begin: 0,
+        end: 15
+      }
+    })
+  })
+})


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 4d9ed10b8..8c3ef8f97 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -5,8 +5,19 @@ jobs:
     name: Test
     strategy:
       matrix:
-        os: [ubuntu-latest, macos-latest]
+        os: [ubuntu-latest]
         timezone: [Etc/GMT, Asia/Shanghai, America/New_York]
+        node-version: [22]
+        include:
+          - os: macos-latest
+            timezone: America/New_York
+            node-versoin: 22
+          - os: ubuntu-latest
+            timezone: Etc/GMT
+            node-version: 16
+          - os: ubuntu-latest
+            timezone: Asia/Shanghai
+            node-version: 14
     runs-on: ${{ matrix.os }}
     steps:
       - name: Checkout
@@ -16,7 +27,7 @@ jobs:
       - name: Setup Node.js
         uses: actions/setup-node@v3
         with:
-          node-version: '20'
+          node-version: ${{ matrix.node-version }}
       - name: Install dependencies
         run: npm ci
       - name: Download artifacts
diff --git a/test/e2e/drop.spec.ts b/test/e2e/drop.spec.ts
index c1950ba60..d60b425a5 100644
--- a/test/e2e/drop.spec.ts
+++ b/test/e2e/drop.spec.ts
@@ -1,8 +1,7 @@
-import { Liquid } from '../../src/liquid'
-import { Drop } from '../../src/drop/drop'
+import { Drop, Liquid } from '../..'
 
 class SettingsDrop extends Drop {
-  private foo = 'FOO'
+  public foo = 'FOO'
   public bar () {
     return 'BAR'
   }