This commit is contained in:
2025-12-29 15:30:30 +08:00
commit 6ba2e23a77
7 changed files with 557 additions and 0 deletions

55
test/example.ts Normal file
View File

@@ -0,0 +1,55 @@
import { filter } from '../src/index.ts';
const users = [
{
metadata: {
tags: ['premium', 'active'],
type: 'user',
region: 'beijing',
created_at: '2024-03-15T10:00:00Z'
}
},
{
metadata: {
tags: ['free'],
type: 'admin',
region: 'shanghai',
created_at: '2024-01-10T09:00:00Z'
}
},
{
metadata: {
tags: ['enterprise', 'premium'],
type: 'user',
region: 'guangzhou',
created_at: '2024-04-05T12:00:00Z'
}
}
];
console.log('=== 方式1: users.filter(createFilter("...")) ===');
console.log('\n=== premium 用户 ===');
console.log(filter(users, "WHERE metadata.tags CONTAINS 'premium'"));
console.log('\n=== 北京用户 ===');
console.log(filter(users, "WHERE metadata.region = 'beijing'"));
console.log('\n=== user 类型用户 ===');
console.log(filter(users, "WHERE metadata.type = 'user'"));
console.log('\n=== premium 且 user 类型 ===');
console.log(filter(users, "WHERE metadata.tags CONTAINS 'premium' AND metadata.type = 'user'"));
console.log('\n=== 北京或上海用户 ===');
console.log(filter(users, "WHERE metadata.region IN ['beijing', 'shanghai']"));
console.log('\n=== 方式2: filter(users, "...") (支持 ORDER BY 和 LIMIT) ===');
console.log('\n=== 北京用户,按时间倒序 ===');
console.log(filter(users, "WHERE metadata.region = 'beijing' ORDER BY metadata.created_at DESC"));
console.log('\n=== 前2个用户按时间倒序 ===');
const limitResult = filter(users, "ORDER BY metadata.created_at DESC LIMIT 2");
console.log('Limit result length:', limitResult.length);
console.log(limitResult);