此插件通过工作表级别动作在工作表中记录 .
事件类型 :
listener.on('job:ready')
嵌入Flatfile时,该插件应被部署在服务器侧听器中. 学多点
参数
jobOperation - 说吧 string - (必须)
这个 jobOperation 参数指定要匹配的任务操作的名称.
opt.on - 说吧 string
这个 on 参数指定要匹配的字段密钥.
opt.keep - 说吧 'first' | 'last'
这个 keep 选项允许您选择是保留第一个还是最后一个重复记录.
opt.custom - 说吧 function()
这个 custom 参数接受自定义去dupe函数。 这将覆盖 keep 参数.
opt.debug - 说吧 boolean
这个 debug 参数允许您为开发目的切换或关闭帮助调试消息.
API 调用
api.records.getapi.jobs.ackapi.records.deleteapi.jobs.failapi.jobs.complete
使用量
必须在工作表上配置“ dedupe- email” 操作名的动作, 以启动插件 .
npm i @flatfile/plugin-dedupe
import { dedupePlugin } from "@flatfile/plugin-dedupe";
import { Flatfile } from '@flatfile/api'
export const contactsSheet: Flatfile.SheetConfig = {
name: 'Contacts',
slug: 'contacts',
fields: [
{
key: 'firstName',
type: 'string',
label: 'First Name',
},
{
key: 'lastName',
type: 'string',
label: 'Last Name',
},
{
key: 'email',
type: 'string',
label: 'Email',
}
],
// Add a Sheet-level action here for the dedupe plugin
actions: [
{
operation: "dedupe-email",
mode: "background",
label: "Dedupe emails",
description: "Remove duplicate emails"
}
]
}
Java 脚本
听众.js
// common usage
// Keep the last record encountered (from top to bottom) based on the`email` field key.
// Must have a Sheet-level action specified with the operation name `dedupe-email`
listener.use(
dedupePlugin("dedupe-email", {
on: "email",
keep: "last",
})
);
// user specified dedupe function must return a list a record id's for deletion
listener.use(
dedupePlugin("dedupe-email", {
custom: (records) => {
let uniques = new Set();
let toDelete = [];
records.forEach(record => {
const { value } = record.values["email"];
if (uniques.has(value)) {
toDelete.push(record.id);
} else {
uniques.add(value);
}
});
return toDelete;
},
})
);
类型脚本
监听器
// common usage
// Keep the last record encountered (from top to bottom) based on the`email` field key.
// Must have a Sheet-level action specified with the operation name `dedupe-email`
listener.use(
dedupePlugin("dedupe-email", {
on: "email",
keep: "last",
})
);
// user specified dedupe function must return a list a record id's for deletion
listener.use(
dedupePlugin("dedupe-email", {
custom: (records: Flatfile.RecordsWithLinks) => {
let uniques = new Set();
let toDelete = [];
records.forEach(record => {
const { value } = record.values["email"];
if (uniques.has(value)) {
toDelete.push(record.id);
} else {
uniques.add(value);
}
});
return toDelete;
},
})
);