{"version":3,"file":"ngx-signal-store-query-core.mjs","sources":["../../../../libs/ngx-signal-store-query/src/utils.ts","../../../../libs/ngx-signal-store-query/src/with-mutation.ts","../../../../libs/ngx-signal-store-query/src/with-query.ts","../../../../libs/ngx-signal-store-query/src/public-api.ts","../../../../libs/ngx-signal-store-query/src/ngx-signal-store-query-core.ts"],"sourcesContent":["export const lowerFirst = <T extends string>(value: T): Uncapitalize<T> => {\n  if (typeof value !== 'string') {\n    return value;\n  }\n\n  const trimmed = value.trim();\n\n  const first: string = trimmed.charAt(0).toLowerCase();\n  const rest: string = trimmed.slice(1);\n\n  return `${first}${rest}` as Uncapitalize<T>;\n};\n","import { inject, Injector, runInInjectionContext } from '@angular/core';\n\nimport { type SignalStoreFeatureResult, withProps } from '@ngrx/signals';\nimport { type CreateMutationResult, injectMutation } from '@tanstack/angular-query-experimental';\n\nimport { type CreateMutationFn, type MutationProp } from './types';\nimport { lowerFirst } from './utils';\n\nexport const withMutation = <\n  Name extends string,\n  TData = unknown,\n  TError = Error,\n  TVariables = void,\n  TContext = unknown,\n  Input extends SignalStoreFeatureResult = SignalStoreFeatureResult,\n  Props extends object = Record<MutationProp<Name>, CreateMutationResult<TData, TError, TVariables, TContext>>,\n>(\n  name: Name,\n  createMutationFn: CreateMutationFn<Name, TData, TError, TVariables, TContext, Input>,\n) => {\n  const prop: MutationProp<Name> = `${lowerFirst(name)}Mutation`;\n\n  return withProps<Input, Props>((store) => {\n    const injector = inject(Injector);\n    const mutation = injectMutation((...args) => {\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      return runInInjectionContext(injector, () => createMutationFn(store as any)(...args));\n    });\n\n    return { [prop]: mutation } as Props;\n  });\n};\n","import { inject, Injector, runInInjectionContext } from '@angular/core';\n\nimport { type SignalStoreFeatureResult, withProps } from '@ngrx/signals';\nimport { type CreateQueryResult, injectQuery, type QueryKey } from '@tanstack/angular-query-experimental';\n\nimport { type CreateQueryFn, type QueryProp } from './types';\nimport { lowerFirst } from './utils';\n\nexport const withQuery = <\n  Name extends string,\n  TDataFn = unknown,\n  TError = Error,\n  TData = TDataFn,\n  TQueryKey extends QueryKey = QueryKey,\n  Input extends SignalStoreFeatureResult = SignalStoreFeatureResult,\n  Props extends object = Record<QueryProp<Name>, CreateQueryResult<TData, TError>>,\n>(\n  name: Name,\n  createQueryFn: CreateQueryFn<Name, TDataFn, TError, TData, TQueryKey, Input>,\n) => {\n  const prop: QueryProp<Name> = `${lowerFirst(name)}Query`;\n\n  return withProps<Input, Props>((store) => {\n    const injector = inject(Injector);\n    const query = injectQuery((...args) => {\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      return runInInjectionContext(injector, () => createQueryFn(store as any)(...args));\n    });\n\n    return { [prop]: query } as Props;\n  });\n};\n","/*\n * Public API Surface of @ngx-signal-store-query/core\n */\n\nexport { withMutation } from './with-mutation';\nexport { withQuery } from './with-query';\n\nexport type { CreateMutationFn, CreateQueryFn } from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAO,MAAM,UAAU,GAAG,CAAmB,KAAQ,KAAqB;AACxE,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;;AAGd,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;IAE5B,MAAM,KAAK,GAAW,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;IACrD,MAAM,IAAI,GAAW,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAErC,IAAA,OAAO,CAAG,EAAA,KAAK,CAAG,EAAA,IAAI,EAAqB;AAC7C,CAAC;;MCHY,YAAY,GAAG,CAS1B,IAAU,EACV,gBAAoF,KAClF;IACF,MAAM,IAAI,GAAuB,CAAG,EAAA,UAAU,CAAC,IAAI,CAAC,UAAU;AAE9D,IAAA,OAAO,SAAS,CAAe,CAAC,KAAK,KAAI;AACvC,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,GAAG,IAAI,KAAI;;AAE1C,YAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAM,gBAAgB,CAAC,KAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACvF,SAAC,CAAC;AAEF,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,QAAQ,EAAW;AACtC,KAAC,CAAC;AACJ;;MCvBa,SAAS,GAAG,CASvB,IAAU,EACV,aAA4E,KAC1E;IACF,MAAM,IAAI,GAAoB,CAAG,EAAA,UAAU,CAAC,IAAI,CAAC,OAAO;AAExD,IAAA,OAAO,SAAS,CAAe,CAAC,KAAK,KAAI;AACvC,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI,KAAI;;AAEpC,YAAA,OAAO,qBAAqB,CAAC,QAAQ,EAAE,MAAM,aAAa,CAAC,KAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACpF,SAAC,CAAC;AAEF,QAAA,OAAO,EAAE,CAAC,IAAI,GAAG,KAAK,EAAW;AACnC,KAAC,CAAC;AACJ;;AC/BA;;AAEG;;ACFH;;AAEG;;;;"}