Skip to content

Commit 732c8e2

Browse files
committed
fix: remove lodash from mc-populated-blank controller
Replace lodash-based empty checks with native object guards and align package exports to load the controller from the dedicated ./controller entrypoint so ESM output remains lean. Made-with: Cursor
1 parent e62c5d0 commit 732c8e2

4 files changed

Lines changed: 13 additions & 9 deletions

File tree

packages/elements-svelte/mc-populated-blank/package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
{
22
"name": "@pie-element/mc-populated-blank",
3-
"version": "0.2.4",
3+
"version": "0.2.7",
44
"description": "Multiple-choice option populates an inline blank in a sentence template (Svelte 5 PIE element)",
55
"type": "module",
66
"main": "./dist/index.js",
77
"types": "./dist/index.d.ts",
8+
"pie": {
9+
"controller": "@pie-element/mc-populated-blank/controller"
10+
},
811
"exports": {
912
".": {
1013
"development": "./src/index.ts",
@@ -43,15 +46,13 @@
4346
"clean": "rm -rf dist tsconfig.tsbuildinfo"
4447
},
4548
"dependencies": {
46-
"@pie-lib/styling-svelte": "workspace:*",
47-
"lodash-es": "^4.17.21"
49+
"@pie-lib/styling-svelte": "workspace:*"
4850
},
4951
"peerDependencies": {
5052
"svelte": "^5.0.0"
5153
},
5254
"devDependencies": {
5355
"@sveltejs/vite-plugin-svelte": "^7.0.0",
54-
"@types/lodash-es": "^4.17.12",
5556
"svelte": "^5.54.0",
5657
"typescript": "^5.9.3",
5758
"vite": "^8.0.1"

packages/elements-svelte/mc-populated-blank/src/controller/index.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
import { isEmpty } from 'lodash-es';
21
import defaults, { BLANK_TOKEN, DEFAULT_LAYOUT_LIMITS } from './defaults';
32

3+
const isEmptyObject = (value: unknown): boolean =>
4+
!!value &&
5+
typeof value === 'object' &&
6+
!Array.isArray(value) &&
7+
Object.keys(value as Record<string, unknown>).length === 0;
8+
49
export function countBlankTokens(template: string): number {
510
if (!template) return 0;
611
const re = /\{\{blank\}\}/g;
@@ -19,7 +24,7 @@ export const getCorrectness = (question: any, session: any) => {
1924
};
2025

2126
export const getPartialScore = (_question: any, session: any) => {
22-
if (!session || isEmpty(session) || !session.choiceId) {
27+
if (!session || isEmptyObject(session) || !session.choiceId) {
2328
return 0;
2429
}
2530
return 1;
@@ -41,7 +46,7 @@ export const isComplete = (question: any, session: any, audioComplete = false) =
4146

4247
export const outcome = (question: any, session: any, env: any) =>
4348
new Promise((resolve) => {
44-
if (!session || isEmpty(session)) {
49+
if (!session || isEmptyObject(session)) {
4550
resolve({
4651
score: 0,
4752
empty: true,
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
export { default } from './delivery/index';
2-
export * as controller from './controller/index';

packages/elements-svelte/mc-populated-blank/vite.controller.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ export default defineConfig({
1515
minify: false,
1616
sourcemap: true,
1717
rollupOptions: {
18-
external: ['lodash-es'],
1918
output: {
2019
format: 'es',
2120
},

0 commit comments

Comments
 (0)