Skip to content

Commit

Permalink
add missing file
Browse files Browse the repository at this point in the history
  • Loading branch information
ailisp committed Sep 7, 2022
1 parent feac209 commit c2d098c
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 0 deletions.
7 changes: 7 additions & 0 deletions lib/build-tools/include-bytes.d.ts

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

30 changes: 30 additions & 0 deletions lib/build-tools/include-bytes.js

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

37 changes: 37 additions & 0 deletions src/build-tools/include-bytes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import fs from 'fs'
import path from 'path'
export default function ({ types: t }) {
return {
visitor: {
CallExpression(p, state) {
let name = p.node.callee.name
let args = p.node.arguments

if (name === 'includeBytes') {
// Get the path of file
var filename = this.file.opts.filename

// User settings
let root = state.opts.root || path.dirname(filename)

// Read binary file into bytes, so encoding is 'latin1' (each byte is 0-255, become one character)
const encoding = 'latin1'

// Require first arg to be string
t.assertStringLiteral(args[0])

// Error if filename is not found
if (filename === undefined || filename === 'unknown')
throw new Error('`includeBytes` function called outside of file')

// Generate and locate the file
let fileRelPath = args[0].value // Get literal string value
let filePath = path.join(root, fileRelPath)
let fileSrc = fs.readFileSync(filePath, { encoding }).toString(encoding)

p.replaceWith(t.stringLiteral(fileSrc))
}
},
},
}
}

0 comments on commit c2d098c

Please sign in to comment.