snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
This commit is contained in:
51
web/tests/lib/handlebars.cjs
Normal file
51
web/tests/lib/handlebars.cjs
Normal file
@@ -0,0 +1,51 @@
|
||||
"use strict";
|
||||
|
||||
const fs = require("node:fs");
|
||||
const path = require("node:path");
|
||||
|
||||
const Handlebars = require("handlebars");
|
||||
const {SourceMapConsumer, SourceNode} = require("source-map");
|
||||
|
||||
const hb = Handlebars.create();
|
||||
|
||||
class ZJavaScriptCompiler extends hb.JavaScriptCompiler {
|
||||
nameLookup(parent, name, type) {
|
||||
// Auto-register partials with relative paths, like handlebars-loader.
|
||||
if (type === "partial" && name !== "@partial-block") {
|
||||
const filename = path.resolve(path.dirname(this.options.srcName), name + ".hbs");
|
||||
return ["require(", JSON.stringify(filename), ")"];
|
||||
}
|
||||
return super.nameLookup(parent, name, type);
|
||||
}
|
||||
}
|
||||
|
||||
ZJavaScriptCompiler.prototype.compiler = ZJavaScriptCompiler;
|
||||
hb.JavaScriptCompiler = ZJavaScriptCompiler;
|
||||
|
||||
function compile_hbs(module, filename) {
|
||||
const code = fs.readFileSync(filename, "utf8");
|
||||
const pc = hb.precompile(code, {
|
||||
preventIndent: true,
|
||||
srcName: filename,
|
||||
strict: true,
|
||||
explicitPartialContext: true,
|
||||
});
|
||||
const node = new SourceNode();
|
||||
node.add([
|
||||
'const Handlebars = require("handlebars/runtime.js");\n',
|
||||
"module.exports = Handlebars.template(",
|
||||
SourceNode.fromStringWithSourceMap(pc.code, new SourceMapConsumer(pc.map)),
|
||||
");\n",
|
||||
]);
|
||||
const out = node.toStringWithSourceMap();
|
||||
module._compile(
|
||||
out.code +
|
||||
"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64," +
|
||||
Buffer.from(out.map.toString()).toString("base64"),
|
||||
filename,
|
||||
);
|
||||
}
|
||||
|
||||
exports.hook_require = () => {
|
||||
require.extensions[".hbs"] = compile_hbs;
|
||||
};
|
||||
Reference in New Issue
Block a user