Example #1
0
function genAssignmentCode (value: string, assignment: string): string {
  const modelRs = parseModel(value)
  if (modelRs.idx === null) {
    return `${value}=${assignment}`
  } else {
    return `var $$exp = ${modelRs.exp}, $$idx = ${modelRs.idx};` +
      `if (!Array.isArray($$exp)){` +
        `${value}=${assignment}}` +
      `else{$$exp.splice($$idx, 1, ${assignment})}`
  }
}
Example #2
0
 it('parse string in brackets', () => {
   const res = parseModel('a["b"][c]')
   expect(res.exp).toBe('a["b"]')
   expect(res.idx).toBe('c')
 })
Example #3
0
 it('parse object dot notation', () => {
   const res = parseModel('a.b.c')
   expect(res.exp).toBe('a.b.c')
   expect(res.idx).toBe(null)
 })
Example #4
0
 it('combined', () => {
   const res = parseModel('test.xxx.a["asa"][test1[idx]]')
   expect(res.exp).toBe('test.xxx.a["asa"]')
   expect(res.idx).toBe('test1[idx]')
 })
Example #5
0
 it('parse nested brackets', () => {
   const res = parseModel('a[i[c]]')
   expect(res.exp).toBe('a')
   expect(res.idx).toBe('i[c]')
 })
Example #6
0
 it('parse brackets with object dot notation', () => {
   const res = parseModel('a["b"][c].xxx')
   expect(res.exp).toBe('a["b"][c].xxx')
   expect(res.idx).toBe(null)
 })