Skip to content

Commit

Permalink
fix(dattables): pin dt versions and add overrides to package.json file
Browse files Browse the repository at this point in the history
  • Loading branch information
BayBreezy committed Feb 25, 2024
1 parent 2432d0a commit ccc295b
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 10 deletions.
25 changes: 21 additions & 4 deletions src/commands/add.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import path from "node:path";
import { Command } from "commander";
import { consola } from "consola";
import { defu } from "defu";
import { readFileSync } from "fs-extra";
import kleur from "kleur";
import _ from "lodash";
import prompts from "prompts";
Expand Down Expand Up @@ -159,24 +161,39 @@ export const add = new Command()
cfg.defaultExport.app.head.script ||= [];
const scriptOneExists = cfg.defaultExport.app.head.script.find(
(i: any) =>
i.src === "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"
i.src === "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.9/pdfmake.min.js"
);
if (!scriptOneExists) {
cfg.defaultExport.app.head.script.push({
src: "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js",
src: "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.9/pdfmake.min.js",
defer: true,
});
}
const scriptTwoExists = cfg.defaultExport.app.head.script.find(
(i: any) =>
i.src === "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.min.js"
i.src === "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.9/vfs_fonts.min.js"
);
if (!scriptTwoExists) {
cfg.defaultExport.app.head.script.push({
src: "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.min.js",
src: "https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.9/vfs_fonts.min.js",
defer: true,
});
}
// Get package.json and add the overrides
const packageJson = readFileSync(path.join(currentDirectory, "package.json"), "utf-8");
// if no package.json file, do nothing
if (packageJson) {
const parsedPackageJson = JSON.parse(packageJson);
parsedPackageJson.overrides = defu(
{},
parsedPackageJson.overrides,
component.overrides
);
await writeFile(
path.join(currentDirectory, "package.json"),
JSON.stringify(parsedPackageJson, null, 2)
);
}
}

// add utils attached to the component
Expand Down
16 changes: 10 additions & 6 deletions src/comps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -660,19 +660,23 @@ export default [
name: "DataTables.net",
value: "datatable",
deps: [
"datatables.net-buttons-dt",
"datatables.net-responsive-dt",
"datatables.net-searchbuilder-dt",
"datatables.net-select-dt",
"datatables.net-vue3",
"datatables.net-buttons-dt@^2.4.3",
"datatables.net-responsive-dt@^2.5.1",
"datatables.net-searchbuilder-dt@^1.7.0",
"datatables.net-select-dt@^1.7.1",
"datatables.net-vue3@^2.1.3",
"jszip",
],
overrides: {
"datatables.net": "1.13.10",
"datatables.net-dt": "1.13.10",
},
plugins: [
{
fileName: "datatables.client.ts",
dirPath: "plugins",
fileContent:
'import DataTablesCore from "datatables.net";\nimport DataTable from "datatables.net-vue3";\nimport JSZip from "jszip";\n\nimport "datatables.net-buttons-dt";\nimport "datatables.net-buttons/js/buttons.colVis.mjs";\nimport "datatables.net-buttons/js/buttons.html5.mjs";\nimport "datatables.net-buttons/js/buttons.print.mjs";\nimport "datatables.net-responsive-dt";\nimport "datatables.net-searchbuilder-dt";\nimport "datatables.net-select-dt";\n\n// @ts-ignore\nwindow.JSZip = JSZip;\n\nDataTable.use(DataTablesCore);\n\nexport default defineNuxtPlugin((nuxtApp) => {\n nuxtApp.vueApp.component("DataTable", DataTable);\n});\n',
'import DataTablesCore from "datatables.net";\nimport DataTable from "datatables.net-vue3";\nimport JSZip from "jszip";\n\nimport "datatables.net-buttons";\nimport "datatables.net-buttons-dt";\nimport "datatables.net-buttons/js/buttons.colVis.mjs";\nimport "datatables.net-buttons/js/buttons.html5.mjs";\nimport "datatables.net-buttons/js/buttons.print.mjs";\nimport "datatables.net-responsive-dt";\nimport "datatables.net-searchbuilder-dt";\nimport "datatables.net-select-dt";\n\n// @ts-ignore\nwindow.JSZip = JSZip;\n\nDataTable.use(DataTablesCore);\n\nexport default defineNuxtPlugin((nuxtApp) => {\n nuxtApp.vueApp.component("DataTable", DataTable);\n});\n',
},
],
files: [
Expand Down
1 change: 1 addition & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export type Component = {
plugins: Composable[];
components?: string[];
askValidator?: boolean;
overrides?: Record<string, any>;
};

export type Composable = {
Expand Down

0 comments on commit ccc295b

Please sign in to comment.