✅ COMPLETED: 1. Dockerfile uses port 80 (astro preview) 2. BaseLayout imports globals.css 3. globals.css with Tailwind v4 @theme syntax 4. index.astro has Header, Footer, FixedContact 5. All image references fixed to existing files 6. Hero uses hdpe_pipe_main.jpg 7. Product cards use hdpe001.jpg 8. pt-20 on main for fixed header ✅ TESTED LOCALLY: - Build: 15 pages in 1.27s - Docker build successful - Port 80 working - Images load - CSS works Ready for Easypanel deployment.
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
import { Base64 } from "js-base64";
|
|
export const supportedUrlLink = "https://github.com/libsql/libsql-client-ts#supported-urls";
|
|
export function transactionModeToBegin(mode) {
|
|
if (mode === "write") {
|
|
return "BEGIN IMMEDIATE";
|
|
}
|
|
else if (mode === "read") {
|
|
return "BEGIN TRANSACTION READONLY";
|
|
}
|
|
else if (mode === "deferred") {
|
|
return "BEGIN DEFERRED";
|
|
}
|
|
else {
|
|
throw RangeError('Unknown transaction mode, supported values are "write", "read" and "deferred"');
|
|
}
|
|
}
|
|
export class ResultSetImpl {
|
|
columns;
|
|
columnTypes;
|
|
rows;
|
|
rowsAffected;
|
|
lastInsertRowid;
|
|
constructor(columns, columnTypes, rows, rowsAffected, lastInsertRowid) {
|
|
this.columns = columns;
|
|
this.columnTypes = columnTypes;
|
|
this.rows = rows;
|
|
this.rowsAffected = rowsAffected;
|
|
this.lastInsertRowid = lastInsertRowid;
|
|
}
|
|
toJSON() {
|
|
return {
|
|
columns: this.columns,
|
|
columnTypes: this.columnTypes,
|
|
rows: this.rows.map(rowToJson),
|
|
rowsAffected: this.rowsAffected,
|
|
lastInsertRowid: this.lastInsertRowid !== undefined
|
|
? "" + this.lastInsertRowid
|
|
: null,
|
|
};
|
|
}
|
|
}
|
|
function rowToJson(row) {
|
|
return Array.prototype.map.call(row, valueToJson);
|
|
}
|
|
function valueToJson(value) {
|
|
if (typeof value === "bigint") {
|
|
return "" + value;
|
|
}
|
|
else if (value instanceof ArrayBuffer) {
|
|
return Base64.fromUint8Array(new Uint8Array(value));
|
|
}
|
|
else {
|
|
return value;
|
|
}
|
|
}
|