Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions packages/plugin-tools/src/lib.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,46 @@ describe("zipPluginDistribution", () => {
const entries = zip.getEntries().map(e => e.entryName)
expect(entries).toContain("index.js")
expect(entries).toContain("index.html")
expect(entries).toContain("framer-plugin-packed.txt")

const jsContent = zip.readAsText("index.js")
expect(jsContent).toBe("console.log('hello')")

const packedContent = zip.readAsText("framer-plugin-packed.txt")
expect(packedContent).toBe("true")
})

it("injects framer-plugin-packed.txt with contents 'true'", () => {
const distDir = path.join(tmpDir, "dist")
fs.mkdirSync(distDir)
fs.writeFileSync(path.join(distDir, "index.js"), "")

zipPluginDistribution({
cwd: tmpDir,
distPath: "dist",
zipFileName: "plugin.zip",
})

const zip = new AdmZip(path.join(tmpDir, "plugin.zip"))
expect(zip.readAsText("framer-plugin-packed.txt")).toBe("true")
})

it("overwrites dist framer-plugin-packed.txt with injected marker", () => {
const distDir = path.join(tmpDir, "dist")
fs.mkdirSync(distDir)
fs.writeFileSync(path.join(distDir, "framer-plugin-packed.txt"), "false or custom")
fs.writeFileSync(path.join(distDir, "index.js"), "")

zipPluginDistribution({
cwd: tmpDir,
distPath: "dist",
zipFileName: "plugin.zip",
})

const zip = new AdmZip(path.join(tmpDir, "plugin.zip"))
const entriesWithSameName = zip.getEntries().filter(e => e.entryName === "framer-plugin-packed.txt")
expect(entriesWithSameName).toHaveLength(1)
expect(zip.readAsText("framer-plugin-packed.txt")).toBe("true")
})

it("throws error when dist directory does not exist", () => {
Expand Down
4 changes: 4 additions & 0 deletions packages/plugin-tools/src/lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import { exec } from "child_process"
import fs from "fs"
import path from "path"

const markerFileName = "framer-plugin-packed.txt"

/**
* Naive package manager detection by checking for lock files in the current directory and parent directories.
* @param cwd - The current working directory.
Expand Down Expand Up @@ -50,6 +52,8 @@ export function zipPluginDistribution(options: ZipPluginDistributionOptions): st

const zip = new AdmZip()
zip.addLocalFolder(distPath)
zip.deleteFile(markerFileName)
zip.addFile(markerFileName, Buffer.from("true", "utf-8"))
zip.writeZip(zipFilePath)

return zipFilePath
Expand Down
Loading