Skip to content

Commit

Permalink
feat(examples): add esbuild demo
Browse files Browse the repository at this point in the history
  • Loading branch information
sxzz committed Jun 4, 2023
1 parent 82d7fbb commit fe3b0f0
Show file tree
Hide file tree
Showing 9 changed files with 96 additions and 1 deletion.
14 changes: 14 additions & 0 deletions examples/esbuild/build.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/* eslint-disable no-console */

import { build } from 'esbuild'
import Macros from '../../src/esbuild'

build({
entryPoints: ['src/main.ts'],
bundle: true,
outfile: 'dist/main.js',
plugins: [Macros()],
format: 'esm',
})

console.log('Success')
18 changes: 18 additions & 0 deletions examples/esbuild/dev.mts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* eslint-disable no-console */

import { context } from 'esbuild'
import Macros from '../../src/esbuild'

const ctx = await context({
entryPoints: ['src/main.ts'],
bundle: true,
outdir: 'dist',
plugins: [((Macros as any).default as any as typeof Macros)()],
format: 'esm',
})

const { host, port } = await ctx.serve({
servedir: 'dist',
})

console.log(`http://${host}:${port}`)
12 changes: 12 additions & 0 deletions examples/esbuild/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": "1.0.0",
"scripts": {
"build": "tsx build.ts",
"watch": "tsx watch build.ts",
"dev": "tsx watch dev.mts"
},
"devDependencies": {
"esbuild": "^0.17.19",
"tsx": "^3.12.7"
}
}
7 changes: 7 additions & 0 deletions examples/esbuild/src/macros.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export function getStartupTime() {
return Date.now()
}

export function rand() {
return Math.random()
}
7 changes: 7 additions & 0 deletions examples/esbuild/src/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/* eslint-disable no-console */

import { getStartupTime, rand } from './macros' assert { type: 'macro' }

console.log('Hello, world!')
console.log('startup time', getStartupTime())
console.log('rand', rand())
23 changes: 23 additions & 0 deletions examples/esbuild/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"skipLibCheck": true,

/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,

/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["src", "*"]
}
4 changes: 4 additions & 0 deletions examples/vite/src/macros.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
export function getStartupTime() {
return Date.now()
}

export function rand() {
return Math.random()
}
3 changes: 2 additions & 1 deletion examples/vite/src/main.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* eslint-disable no-console */

import { getStartupTime } from './macros' assert { type: 'macro' }
import { getStartupTime, rand } from './macros' assert { type: 'macro' }

console.log('Hello, world!')
console.log('startup time', getStartupTime())
console.log('rand', rand())
9 changes: 9 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit fe3b0f0

Please sign in to comment.