@tanstack/table-core 8.5.16 → 8.5.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/core/column.js +3 -0
- package/build/cjs/core/column.js.map +1 -1
- package/build/esm/index.js +3 -0
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +310 -310
- package/build/umd/index.development.js +3 -0
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core/column.ts +5 -0
package/build/cjs/core/column.js
CHANGED
|
@@ -32,6 +32,9 @@ function createColumn(table, columnDef, depth, parent) {
|
|
|
32
32
|
let result = originalRow;
|
|
33
33
|
for (const key of accessorKey.split('.')) {
|
|
34
34
|
result = result[key];
|
|
35
|
+
if (process.env.NODE_ENV !== 'production' && result === undefined) {
|
|
36
|
+
throw new Error(`"${key}" in deeply nested key "${accessorKey}" returned undefined.`);
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
return result;
|
|
37
40
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import { TaggedTemplateExpression } from '@babel/types'\nimport {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":";;;;;;;;;;;;;;;;AAwBO,SAASA,YAAY,CAC1BC,KAAmB,EACnBC,SAAmC,EACnCC,KAAa,EACbC,MAA8B,EAC9B;AACA,EAAA,MAAMC,aAAa,GAAGJ,KAAK,CAACK,oBAAoB,EAAE,CAAA;AAElD,EAAA,MAAMC,iBAAiB,GAAG;AACxB,IAAA,GAAGF,aAAa;IAChB,GAAGH,SAAAA;GACwB,CAAA;AAE7B,EAAA,MAAMM,WAAW,GAAGD,iBAAiB,CAACC,WAAW,CAAA;AAEjD,EAAA,IAAIC,EAAE,GACJF,iBAAiB,CAACE,EAAE,KACnBD,WAAW,GAAGA,WAAW,CAACE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAGC,SAAS,CAAC,KACxD,OAAOJ,iBAAiB,CAACK,MAAM,KAAK,QAAQ,GACzCL,iBAAiB,CAACK,MAAM,GACxBD,SAAS,CAAC,CAAA;AAEhB,EAAA,IAAIE,UAAyC,CAAA;EAE7C,IAAIN,iBAAiB,CAACM,UAAU,EAAE;IAChCA,UAAU,GAAGN,iBAAiB,CAACM,UAAU,CAAA;GAC1C,MAAM,IAAIL,WAAW,EAAE;AACtB;AACA,IAAA,IAAIA,WAAW,CAACM,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC7BD,UAAU,GAAIE,WAAkB,IAAK;QACnC,IAAIC,MAAM,GAAGD,WAAkC,CAAA;QAE/C,KAAK,MAAME,GAAG,IAAIT,WAAW,CAACU,KAAK,CAAC,GAAG,CAAC,EAAE;AACxCF,UAAAA,MAAM,GAAGA,MAAM,CAACC,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import { TaggedTemplateExpression } from '@babel/types'\nimport {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n ColumnDefResolved,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData, TValue>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData, TValue>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as ColumnDefResolved<TData>\n\n const accessorKey = resolvedColumnDef.accessorKey\n\n let id =\n resolvedColumnDef.id ??\n (accessorKey ? accessorKey.replace('.', '_') : undefined) ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = (originalRow: TData) => {\n let result = originalRow as Record<string, any>\n\n for (const key of accessorKey.split('.')) {\n result = result[key]\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n throw new Error(\n `\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`\n )\n }\n }\n\n return result\n }\n } else {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData, any>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","accessorKey","id","replace","undefined","header","accessorFn","includes","originalRow","result","key","split","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -103,6 +103,9 @@ function createColumn(table, columnDef, depth, parent) {
|
|
|
103
103
|
let result = originalRow;
|
|
104
104
|
for (const key of accessorKey.split('.')) {
|
|
105
105
|
result = result[key];
|
|
106
|
+
if (process.env.NODE_ENV !== 'production' && result === undefined) {
|
|
107
|
+
throw new Error(`"${key}" in deeply nested key "${accessorKey}" returned undefined.`);
|
|
108
|
+
}
|
|
106
109
|
}
|
|
107
110
|
return result;
|
|
108
111
|
};
|