@uxf/data-grid
Advanced tools
Comparing version 11.1.1 to 11.2.3
@@ -11,4 +11,5 @@ const { argv, env } = require("process"); | ||
}) | ||
.option("s", { alias: "schemaDirectory" }) | ||
.option("o", { alias: "outputDirectory" }) | ||
.option("s", { alias: "schemaDirectory", type: "string" }) | ||
.option("o", { alias: "outputDirectory", type: "string" }) | ||
.option("l", { alias: "requiredLoader", type: "boolean" }) | ||
.option("h", { alias: "help", group: "Options" }) | ||
@@ -19,3 +20,3 @@ .strict(false) | ||
try { | ||
const { help, schemaDirectory, outputDirectory } = cli.parse(argv.slice(2)); | ||
const { help, schemaDirectory, outputDirectory, requiredLoader } = cli.parse(argv.slice(2)); | ||
@@ -26,3 +27,3 @@ if (Boolean(help)) { | ||
await require("./index")(schemaDirectory, outputDirectory); | ||
await require("./index")(schemaDirectory, outputDirectory, requiredLoader); | ||
} catch (e) { | ||
@@ -29,0 +30,0 @@ console.error(e); |
@@ -24,3 +24,79 @@ const { globSync } = require("fast-glob"); | ||
function generate(jsonSchema, filename, outputDirectory) { | ||
function generateUseDataGridControl(gridName) { | ||
return `import { useDataGridControl, UseDataGridControlConfig } from "@uxf/data-grid/use-data-grid-control"; | ||
import { dataGridSchema_${camelize(gridName)} as schema } from "./schema"; | ||
export function useDataGridControl_${camelize(gridName)}(config: Omit<UseDataGridControlConfig, "schema">) { | ||
return useDataGridControl({ | ||
schema, | ||
...config, | ||
}); | ||
} | ||
`; | ||
} | ||
function generateUseDataGridFetching(gridName, isLoaderRequired) { | ||
return `import { Loader } from "@uxf/data-grid/types/core"; | ||
import { useDataGridFetching, UseDataGridFetchingConfig } from "@uxf/data-grid/use-data-grid-fetching"; | ||
import { dataGridSchema_${camelize(gridName)} as schema } from "./schema"; | ||
export function useDataGridFetching_${camelize(gridName)}( | ||
config: Omit<UseDataGridFetchingConfig, "gridName" | "loader" | "schema"> & { loader${ | ||
isLoaderRequired ? "" : "?" | ||
}: Loader }, | ||
) { | ||
return useDataGridFetching({ gridName: "${gridName}", schema, ...config }); | ||
} | ||
`; | ||
} | ||
function generateDataGridFile(gridName, isLoaderRequired) { | ||
return `import { Nullish } from "@uxf/core/types"; | ||
import { DataGrid, DataGridProps, DataGridUserConfig, Loader, Request } from "@uxf/data-grid"; | ||
import { useDataGridControl } from "@uxf/data-grid/use-data-grid-control"; | ||
import { useDataGridFetching } from "@uxf/data-grid/use-data-grid-fetching"; | ||
import React from "react"; | ||
import { dataGridSchema_${camelize(gridName)} as schema } from "./schema"; | ||
type Props = Omit< | ||
DataGridProps<any, any>, | ||
"gridName" | "schema" | "state" | "actions" | "data" | "isLoading" | "onReload" | ||
> & { | ||
loader${isLoaderRequired ? "" : "?"}: Loader; | ||
initialUserConfig?: DataGridUserConfig | Nullish; | ||
initialState?: Request | string | Nullish; | ||
}; | ||
export function DataGrid_${camelize(gridName)}(props: Props) { | ||
const { state, actions } = useDataGridControl({ | ||
schema, | ||
initialState: props.initialState, | ||
initialUserConfig: props.initialUserConfig, | ||
}); | ||
const { data, error, onReload, isLoading } = useDataGridFetching({ | ||
gridName: "${gridName}", | ||
schema, | ||
state, | ||
loader: props.loader, | ||
}); | ||
return ( | ||
<DataGrid<any> | ||
state={state} | ||
actions={actions} | ||
data={data} | ||
isLoading={isLoading} | ||
error={error} | ||
onReload={onReload} | ||
{...props} | ||
gridName="admin-club" | ||
schema={schema} | ||
/> | ||
); | ||
} | ||
`; | ||
} | ||
function generate(jsonSchema, filename, outputDirectory, isLoaderRequired) { | ||
const gridName = parse(filename).name; | ||
@@ -35,8 +111,12 @@ const generatedPath = join(process.cwd(), outputDirectory, gridName); | ||
); | ||
writeFile(`${generatedPath}/data-grid.tsx`, generateDataGridFile(gridName, isLoaderRequired)); | ||
writeFile(`${generatedPath}/use-data-grid-control.ts`, generateUseDataGridControl(gridName)); | ||
writeFile(`${generatedPath}/use-data-grid-fetching.ts`, generateUseDataGridFetching(gridName, isLoaderRequired)); | ||
} | ||
module.exports = (schemaDirectory, outputDirectory) => { | ||
module.exports = (schemaDirectory, outputDirectory, requiredLoader) => { | ||
globSync(schemaDirectory + "/*.json") | ||
.map((path) => process.cwd() + "/" + path) | ||
.forEach((filename) => generate(readFileSync(filename), filename, outputDirectory)); | ||
.forEach((filename) => generate(readFileSync(filename), filename, outputDirectory, requiredLoader)); | ||
}; |
{ | ||
"name": "@uxf/data-grid", | ||
"version": "11.1.1", | ||
"version": "11.2.3", | ||
"description": "UXF DataGrid", | ||
@@ -28,2 +28,3 @@ "homepage": "https://gitlab.com/uxf-npm/data-grid#readme", | ||
"gen:icons": "icons-gen", | ||
"gen:data-grid": "node bin/uxf-data-grid-generator.js -s _generator/test/data-grid-schema -o _generator/test/data-grid --requiredLoader", | ||
"lint": "./node_modules/.bin/eslint -c .eslintrc.js \"./**/*.ts*\"", | ||
@@ -37,2 +38,3 @@ "test": "npm run-script typecheck", | ||
"fast-glob": "^3.3.2", | ||
"qs": "6.11.2", | ||
"react-data-grid": "7.0.0-beta.39", | ||
@@ -39,0 +41,0 @@ "yargs": "^17.7.2" |
@@ -5,3 +5,3 @@ import { Nullish } from "@uxf/core/types"; | ||
import { DataGridUserConfig } from "../types/state"; | ||
interface Config { | ||
export interface UseDataGridControlConfig { | ||
schema: Schema<any>; | ||
@@ -12,3 +12,3 @@ initialState?: Request | string | Nullish; | ||
} | ||
export declare function useDataGridControl(config: Config): { | ||
export declare function useDataGridControl(config: UseDataGridControlConfig): { | ||
state: import("../types/state").DataGridState; | ||
@@ -29,2 +29,1 @@ actions: { | ||
export type DataGridControl = ReturnType<typeof useDataGridControl>; | ||
export {}; |
@@ -15,4 +15,4 @@ import { Loader } from "../types/core"; | ||
} | ||
interface Config { | ||
loader: Loader; | ||
export interface UseDataGridFetchingConfig { | ||
loader?: Loader; | ||
schema: Schema<any>; | ||
@@ -22,3 +22,3 @@ gridName: string; | ||
} | ||
export declare function useDataGridFetching(config: Config): DataGridFetchingResult<any>; | ||
export declare function useDataGridFetching(config: UseDataGridFetchingConfig): DataGridFetchingResult<any>; | ||
export {}; |
@@ -6,4 +6,5 @@ "use strict"; | ||
const utils_1 = require("../utils"); | ||
const loader_1 = require("./loader"); | ||
function useDataGridFetching(config) { | ||
const { state, schema, loader, gridName } = config; | ||
const { state, schema, loader = loader_1.dataGridLoader, gridName } = config; | ||
const [isLoading, setIsLoading] = (0, react_1.useState)(false); | ||
@@ -10,0 +11,0 @@ const [error, setError] = (0, react_1.useState)(null); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
173346
204
3867
8
1
+ Addedqs@6.11.2
+ Addedcall-bind@1.0.7(transitive)
+ Addeddefine-data-property@1.1.4(transitive)
+ Addedes-define-property@1.0.0(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.2.4(transitive)
+ Addedgopd@1.0.1(transitive)
+ Addedhas-property-descriptors@1.0.2(transitive)
+ Addedhas-proto@1.0.3(transitive)
+ Addedhas-symbols@1.0.3(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedobject-inspect@1.13.2(transitive)
+ Addedqs@6.11.2(transitive)
+ Addedset-function-length@1.2.2(transitive)
+ Addedside-channel@1.0.6(transitive)